○数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统。
数据(data)是描述事物的符号记录。
数据库(DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合,是存放数据的仓库。
数据库管理系统(DBMS)和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
数据库系统(DBS)是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。
○文件系统的优点:数据库长期保存;由文件系统管理数据。
缺点:数据共享性差,冗余度大;数据独立性差。
数据库系统优点:数据结构化;数据的共享性高、冗余度低、易扩充;数据独立性高;DBMS对数据进行统一的管理和控制。
缺点:容易加重程序员的负担,不利于结构的变动。
○数据的独立性包括物理独立性和逻辑独立性。
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。
○两种数据模型一是概念模型,二是逻辑模型和物理模型。
概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型,主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。
物理模型,是对数据最底层的抽象,它描述数据在系统内部的表示方式,或在磁盘上的存储方式或存取方法,是面向计算机系统的。
○实体:客观存在并可相互区别的事物
属性是实体集中所有实体所具有共同特性的抽象描述。
码唯一标识实体的属性集
实体集同一类型实体的集合
实体型用实体名及其属性名集合来抽象和刻画同类实体
联系在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体型内部的联系(各属性)和实体型之间的联系(各实体集)。有一对一,一对多,多对多等
由于有些属性集可有多个键,所以一般将满足键定义的属性集称为候选键。当实体集有多个候选键时,通常只选其中的一个,被选定的那个候选键称为主键。
○数据模型的组成三要素:
1. 数据结构。数据结构是描述数据库的组成对象以及对象之间的联系。数据结构反映了一个数据模型最基本的特性,数据结构是对静态特性的描述。
2. 数据操作。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则。数据库主要有查询和更新(包括插入、删除、修改)两大类操作。数据模型必需定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是岁系统动态特性的操作。
3. 数据的完整性约束条件。数据的完整性约束条件是一组完整性规则的集合。数据模型应该反映和规定本数据模型必需遵守的基本的通用的完整性约束条件。此外,数据模型还应提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的语义约束条件。
○常用的逻辑数据模型:层次模型,网状模型,关系模型。
层次模型的优点:1..数据结构比较简单清晰;2.查询效率高;3.提供了良好的完整性支持。 缺点:1.现实世界中很多联系是非层次性的,如结点之间具有多对多联系,不适合用层次模型表示。2.如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。对插入和删除操作限制比较多,因此应用程序的编写比较复杂。3.查询子女结点必需通过双亲结点。4.由于结构严谨,层次命令趋于程序化。
网状模型的优点:1.能够更为直接的描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。2.具有良好的性能,存取效率高。缺点:1.结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。2,网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,用户不容易掌握,不容易使用。3.由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加中了编写应用程序的负担。
关系模型的优点:1.关系模型与格式化模型不同,它是建立在严格的数据概念的基础上的。2.关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。3.关系模型的存储路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
缺点:由于存取路径对用户是隐藏的,查询效率往往不如格式化数据模型,为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。不过用户不必考虑这些系统内部的优化技术细节。
○三级模式:
外模式、模式和内模式。
模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。是数据库系统模式结构的中间层,是数据库数据在逻辑上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机的结合成一个逻辑主体。
外模式:也称子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的逻辑视图,是与某一应用有关的数据的逻辑表示。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
内模式:也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述就,是数据在数据库内部的组织方式。
○二级映射:外模式/模式映像和模式/内模式映像。保证了数据的逻辑独立性和物理独立性。
外模式/模式映像:定义了外模式与模式之间的关系。当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序时根据数据的外模式编写的,从而应用程序不必修改。保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像:唯一。定义了数据全局逻辑结构与存储及结构之间的对应关系。当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
○数据库系统的组成:一般由数据库、数据库管理系统、应用程序和数据库管理员构成。
○域:是一组具有相同数据类型的值的集合。笛卡尔积:是域上的一种集合运算。 关系:笛卡尔积的有限子集也是一张二维表,表的每行对应一个元组,每列对应一个域。 若关系中的某一属性值能唯一地标识一个元组,而起子集不能,则称该属性组为候选码。若一个关系有多个候选键,则选定其中一个为主键。候选码的诸属性称为主属性。
○关系的六大性质:
1. 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
2. 不同的列可以来自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
3. 关系中属性(列)的次序无所谓,即列的次序可以任意交换。
4. 任意两个元组的候选码不能取相同的值。
5. 关系中元祖(行)的次序是不重要的,即行的次序可以任意交换。
6. 分量必须取原子值,即每一个分量都必须是不可再分的数据项。
○关系模型的三类完整性约束?意义?
关系模型的完整性规则是对关系的某种约束条件。
关系的两个不变性:实体完整性和参照完整性是关系模型,必须满足的完整性约束条件,应该由关系系统自动支持。
1. 实体完整性
关系数据库中每个元组应该是可区分的,是唯一的。
实体完整性规则概述:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是“不知道”或“不存在”或“无意义”的值。所以,如果主码由若干属性组成,则所有这些主属性不能取空值。
2. 参照完整性
外码:设F是基本关系R的一个或一组属性,但不是关系R的码,K是基本关系S的主码。如果F与K相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。R和S不一定是不同的关系。目标关系S的主码K和参照关系R的外码F必须定义在同一个(或同一组)域上。
3. 用户定义的完整性
它是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
用户完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个非主属性不能取空值等。
○sql语句全称/特点 全称:结构化查询语言(Structured Query Language)
语言风格统一。
操作过程统一,高度非过程化。
面向集合的操作方式。
以同一种语法结构提供多种使用方式
语言简单,易学易用。
○视图是什么?视图和表有什么关系,以及视图优点
视图是从一个或几个基本表导出来的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据。这些数据仍存放在原来的基本表中。所以一旦基本表中的数据发生变化,从视图中查询出来的数据也就最之改变了。视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,视图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
视图的优点
① 能分割数据,简化观点。可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把注意力集中到所关心的数据列.进一步简化浏览数据工作
② 为数据提供一定的逻辑独立性。 如果为某一个基表定义一个视图,即使以后基本表的内容的发生改变了也不会影响“视图定义”所得到的数据
③ 提供自动的安全保护功能。 视图能像基本表一样授予或撤消访问许可权,给用户是表的一部分访问权限而不是全部。
④ 视图可以间接对表进行更新,因此视图的更新就是表的更新
⑤ 视图是用户能以多种角度看待同一数据。
○触发器的功能:触发器不仅可以用于数据库完整性检查,也可以用来实现数据库系统的其他功能,包括数据库安全性,以及更加广泛的应用系统的一些业务流程和控制流程、基于规则的数据和业务控制功能等。