第2章 关系数据库
本文全部内容来自数据库系统概论(第5版)—王珊、萨师煊著
2.1 关系数据结构及形式化定义
2.1.1 关系
在关系模型中,现实世界的实体以及实体间的各种联系均用单一的数据结构类型—关系表示
1、域(domain)
域是一组具有相同数据类型的值的集合
例:自然数、整数、实数、长度小于25字节的字符串集合、{0,1}、{男,女}
2、笛卡尔积
笛卡尔积是在域上的一种集合运算
A=导师集合SUPERVISOR={小红,小明}
B=专业集合SPECIALITY={计算机,信息}
C=学生集合STUDENT={小黑,小白,小黄}
此时A,B,C的笛卡尔积为
(小红,计算机,小黑),(小红,计算机,小白),(小红,计算机,小黄),
(小红,信息,小黑),(小红,信息,小白),(小红,信息,小黄),
(小明,计算机,小黑),(小明,计算机,小白),(小明,计算机,小黑),
(小明,信息,小黑),(小明,信息,小白),(小明,信息,小黄)
元组:每一个(小红,计算机,小黑)都是元组
分量:小红、计算机、小黑,都是分量
基数:一个域允许的不同取值个数称为这个域的基数,此例中基数为 2x2x3=12
,共有12个元组
3、关系(relation)
D
1
∗
D
2
∗
.
.
.
∗
D
n
的
子
集
叫
做
在
域
D
1
,
D
2
,
.
.
.
,
D
n
上
的
关
系
,
表
示
为
R
(
D
1
,
D
2
,
.
.
.
,
D
n
)
D1*D2*...*Dn的子集叫做在域D1,D2,...,Dn上的关系,表示为R(D1,D2,...,Dn)
D1∗D2∗...∗Dn的子集叫做在域D1,D2,...,Dn上的关系,表示为R(D1,D2,...,Dn)
这里的R表示关系的名字,n是关系的目或度(degree)。关系中每个元素是关系中的元组,通常用t表示。关系是笛卡尔积的有限子集。
n目关系必有n个属性。
若关系中的某一属性组的值能够唯一地表示一个元组,而其子集不能,则称该属性组为候选码
若一个关系有多个候选码,则选定其中一个为主码(primary key),又称主键
关系可以有三种类型:
- 基本关系(基本表):实际存在的表,实际存储数据的逻辑表示
- 查询表:查询结果对应的表
- 视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
基本关系的性质:
- 列是同质的,即每一列中的分量是同一类型的数据。来自同一个域
- 不同的列可出自同一个域,称其中每一个列为一个属性,不同的属性要给予不同的属性名
- 列的次序可以任意交换
- 任意两个元组的候选码不能取相同的值
- 行的次序可以任意交换
- 分量必须取原子值,即每一个分量都是不可再分的数据项
关系的每一个分量必须是一个不可分的数据项
2.1.2 关系模式
R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F)
其中,R是关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。
简
记
为
:
R
(
U
)
或
R
(
A
1
,
A
2
,
A
3....
A
n
)
简记为:R(U)或R(A1,A2,A3....An)
简记为:R(U)或R(A1,A2,A3....An)
其中,R是关系名,A1,A2,…,An为属性名。域名及属性向域的映像常常直接说明为属性的类型、长度。
关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。
2.1.3 关系数据库
- 关系数据库的型也称为关系数据库模式,是对关系数据库的描述。
- 关系数据库的值是这些关系模式在某一时刻对应的关系的集合。
2.1.4 关系模型的存储结构
由操作系统完成
2.2 关系操作
2.2.1 基本的关系操作
1、查询(query)
查询是关系操作中最主要的部分。
查询操作又可分为:选择(select)、投影(project)、并(union)、差(except)、笛卡尔积、交(intersection)、连接(join)、除(divide)等。
关系操作的特点是集合操作方式,即操作的对象和结果都是集合。
2、插入(insert)
3、删除(delete)
4、修改(update)
2.2.2 关系数据语言的分类
- 关系代数
- 元组关系演算
- 域关系演算
以上三种语言在表达能力上都具备完备的表达能力
- 结构化查询语句(
SQL
):集查询、数据定义语言、数据操纵语言和数据控制语言于一体的关系数据语言
2.3 关系的完整性
三类完整性约束:实体完整性、参照完整性、用户定义完整性
关系的两个不变性:实体完整性、参照完整性
2.3.1 实体完整性
若属性A是基本关系R的主属性,则A不能取空值。主键不能取空
2.3.2 参照完整性
设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码(foreign key 外键),并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
外键不一定要与相应的主键同名,但是为了便于识别,一般使用相同的名称。
参照完整性规则:
2.3.3 用户定义完整性
2.4 关系代数
- 集合运算符:并、差、交、笛卡尔积
- 专门的关系运算符:选择、投影、连接、除
2.5 关系演算
- 元组关系演算
- 域关系演算