第一章绪论
一、数据库系统概述
1. 数据库的4个基本概念
1.数据:数据库中存储的基本对象,描述事物的符号记录。
2.数据库:长期储存在计算机内、有组织的、可共享的大量数据的集合。较小的冗余度、较高的数据独立性、易扩展性
3.数据库管理系统:位于用户与操作系统之间的一层数据管理软件。
数据定义功能,数据组织、存储和管理,数据操纵功能,数据库的事务管理和运行管理,数据库的建立和维护功能,其他功能
4.数据库系统:数据库、数据库管理系统、应用程序和数据库管理员。
好处:提高应用开发的效率,不必考虑数据管理的细节;数据与程序之间的独立性,只修改逻辑结构,不必修改应用程序;减轻管理人员维护系统的负担
2. 数据管理技术的产生和发展
1.人工管理阶段:无直接存取设备,没有操作系统,批处理,某一应用程序,无共享独立
2.文件系统阶段:磁盘、磁鼓,文件系统(是操作系统的一部分),联机实时处理、批处理,某一应用,共享独立差,临时数据
3.数据库系统阶段:独立于操作系统、现实世界,安全,完整,并发,恢复
二、数据模型
1.分类
概念模型
逻辑和物理模型:层次、网状、关系、面向对象数据、对象关系数据、半结构化数据
关系模型优点:
1.建立在严格的数学概念基础上;
2.概念单一,联系都用关系来表示。数据结构简单,清晰,用户易懂易用;
3.存取路径对用户透明,独立保密。
缺点:由于存取路径对用户透明,查询效率不如格式化数据模型。DBMS进行优化。
2. 组成要素
数据结构、数据操作、数据的完整性约束
3. 数据库系统的三级模式
模式:所有用户的公共数据视图;
外模式:用户模式,模式的子图;
内模式:存储模式,只有一个。
数据与程序的物理独立性:当数据库的存储结构改变,管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变。
数据与程序的逻辑独立性:当模式改变时,管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的。
第二章关系数据库
一、关系数据结构及形式化定义
1.关系
域:具有相同数据类型的值的集合
关系:是笛卡尔积D1*D2*...*Dn的子集。候选码:唯一标识一个元组,选定其中一个为主码。候选码的诸属性为主属性,不包含在任何候选码中的属性为非主属性。
2.关系模式
型,对关系的描述。R(U,D,DOM,F)R为关系名,U为组成关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间的依赖关系集合。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。
二、关系操作
1. 基本操作
查询:select、project、join、divide、union、except、intersection、Cartesian Product
插入、删除、修改操作。
2. 关系数据语言的分类
关系代数语言:基本运算 并、差、笛卡尔积、投影、选择 (交、连接、除均可用5种基本运算来表达)
关系演算语言(元组、域)
具有关系代数和关系演算双重特点的语言
三、关系的完整性
1. 实体完整性
主属性不能取空
2. 参照完整性
外码与主码之间的引用规则。关系R在外码F上的值必须取空值,或者等于S中某个元组的主码值。
(在参照完整性中,外码属性值可以为空,它表示该属性的值尚未确定,但前提条件是该外码属性不是其所在参照关系的主属性。)
3.用户定义完整性
四、关系运算符
1.传统集合运算
并、差、交、笛卡尔积
2.专门的关系运算
选择、投影、连接(自然连接是一种特殊的等值连接)、除运算(给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。)
示例:至少用了供应商S1所供应的全部零件的工程项目代码
解释:有关系:R(x,y) S(y,z)
R S
A B C B C D
a1 b1 c2 b1 c2 d1
a1 b2 c3 b2 c1 d1
a1 b2 c1 b2 c3 d2
R÷S的结果为a1
x相当于A y 相当于B,C z相当于D
按照除运算规则规则,我们不必关注D
只需比较B,C当S关系中的B,C所有的组合(b1,c2)(b2,c3)(b2,c1)都出现在R关系中时,结果才为A
Yx:x在R中的象集,x = tr[X]
a1的象集为:{(b1,c2),(b2,c3),(b2,c1)}
a2的象集为:{(b3,c7),(b2,c3)}
a3的象集为:{(b4,c6)}
a4的象集为:{(b6,c6)}
S在(B,C)上的投影为{(b1,c2),(b2,c3),(b2,c1)}。
显然只有R的象集a1包含S在(B,C)属性组上的投影,所以R÷S={a1}。
除操作是同时从行和列角度进行运算
五、关系演算
1. 元组关系演算语言ALPHA
GET、PUT、HOLD、UPDATE、DELETE、DROP