关系数据库
关系数据结构及其定义
域和笛卡尔积
三个域:
D1=导师集合={刘老根,范德彪}
D2=专业集合={播种,浇水,松土}
D3=学生集合={张三,李四}
D1×D2×D3的笛卡尔积:
D1×D2×D3={
(刘老根,播种,张三),(刘老根,播种,李四),
(刘老根,浇水,张三),(刘老根,浇水,李四),
(刘老根,松土,张三),(刘老根,松土,李四),
(范德彪,播种,张三),(范德彪,播种,李四),
(范德彪,浇水,张三),(范德彪,浇水,李四),
(范德彪,松土,张三),(范德彪,松土,李四),
}
其中,(刘老根,播种,张三)
,(刘老根,播种,李四)
等是元组;刘老根
,浇水
,李四
等是分量。
关系
关系是笛卡尔积的有限子集,是一个二维表,表中的每一行称为元组(记录),表中的每一列称为属性。
- 候选码(关键字):能够唯一地标识一个元组的属性或属性组合
- 主码:候选码多于一个时,选其中之一。
- 主属性:候选码中的属性。
基本关系具有的性质:
(1)不同的列可出自同一个域
(2)行、列的次序可任意交换
(4)任意两个元组不能完全相同
(5)每个分量必须是不可分的数据项
关系模式的定义:R(U, D, DOM, F)
- R:关系名
- U:组成关系的属性集合
- D:属性集U所来自的域
- DOM:属性向域的映象集合
- F:属性间数据的依赖关系集合
简记为:R(U, F)或R(U)
关系操作
(红色为基本操作)
关系的完整性
实体完整性
规则:若属性A是关系R的主属性,则A不能取空值(即不确定的值)
作用:用于标识实体的存在性(非空)与实体的可区分性(主码值唯一)
例:学生表中学号属性不能为空且取值唯一
参照完整性
外码:设F是关系R的一组属性,但不是R的码,若F与关系S的主码Ks相对应,则称F是关系R的外码。
规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值要么取空值(F中每个属性值均空),要么等于S中某个元组的主码值。
用户定义完整性
用于表达应用系统的特殊约束与语义要求
例:学生成绩A∈[0,100]、职工年龄B∈[18,60]
关系代数
关系代数运算符
集合运算
关系运算
选择运算(Selection)
含义:从关系中找出满足给定条件的元组构成新关系。
图解:
举例:
投影运算(Projection)
含义:从关系中挑选符合条件的属性组成新关系
图解:
举例:
连接运算(Join):
θ连接
等值连接:
自然连接是一种特殊的等值连接,两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉。
外连接:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。
左外连接:如果只把左边关系R中要舍弃的元组保留就叫做左外连接。
右外连接:如果只把右边关系S中要舍弃的元组保留就叫做右外连接。
除运算(Division)
含义:R的元组在X上分量值x的象集Yx包含S在Y上投影的集合。
举例:
R和S共有的属性是B、C,R有但S没有的属性是A。
S在B、C上的投影:
B | C |
---|---|
b1 | c1 |
b2 | c1 |
b2 | c3 |
R中A的取值里,a1对应的象集:
B | C |
---|---|
b1 | c1 |
b2 | c1 |
b2 | c3 |
a2对应的象集:
B | C |
---|---|
b3 | c7 |
b2 | c3 |
a3对应的象集:
B | C |
---|---|
b4 | c6 |
a4对应的象集:
B | C |
---|---|
b6 | c6 |
只有a1对应的象集包含S的投影,所以R➗S为:
A |
---|
a1 |
(遇到全部、所有、包含字眼的,用除运算)