第二章 关系数据库
2.1关系数据结构及形式化定义
2.1.1关系
- 关系模型中数据的逻辑结构是一张二维表。
- 域:域是一组具有相同数据类型的值的集合,比如{0,1}。
- 笛卡尔积:一组域D1、D2、D3···Dn,允许其中某些域是相同的,其笛卡尔积为: D1×D2×···×Dn={(d1,d2,···,dn)|di∈Di,i=1,2,···,n}
其中每个元素(d1,d2,···,dn)叫作一个n元组,简称元组。元组中每一个di叫做分量。
例如,D1=导师集合SUPERVISOR={张三,李四},D2=专业集合SPECIALITY={计算机专业、信息专业}
则D1、D2的笛卡尔积为
D1×D2={(张三,计算机专业),(张三,信息专业),(李四,信息专业),(李四,计算机专业)},其中(张三,计算机专业)等都是元组,张三、计算机专业等都是分量。 - 关系:D1×D2×···×Dn叫做在域D1、D2、D3···Dn上的关系,表示为R(D1,D2,···Dn),R表示关系名字。
n是关系的目或度,当n=1时,称关系为单元关系,n=2时,成为二元关系。
(1)候选码:某一属性组能唯一标识一个元组,而其子集不能,则称该属性组为候选码。当一个关系有多个候选码,选一个作为主码。候选码的诸属性是主属性,不包含在任何候选码中的属性称为非主属性/非码属性。
在最极端的情况下,关系模式的所有属性是这个关系的候选码,称为全码。
(2)基本关系具有的六条性质:
a. 每一列的份量都是同一类型的数据,来自同一个域;
b. 不同属性要给予不同的属性名
c. 列的顺序无所谓,插入新属性永远插至最后一列;
d. 任意两个候选码不能取相同的值;
e. 行的顺序无所谓;
d. 每一个分量都必须是不可分的数据项。
## 2.1.2关系模式
1.定义:关系的描述称为关系模式。形式化的表示:R(U,D,DOM,F),R是关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,F位数兴建数据的依赖关系集合。
2.2关系操作
2.2.1基本的关系操作
- 常用的关系操作:查询操作和插入、删除、修改操作两大部分。
- 查询操作:选择、投影、连接、处、并、差、交、笛卡尔积等。其中的基本操作:选择、投影、并、差、笛卡尔积。
- 关系操作的特点:集合操作方式。
## 2.2.2关系数据语言的分类
- 结构化查询语言SQL:是一种高度非过程化的语言。
2.3关系完整性
2.3.1 实体完整性
- 实体完整性:若属性A时基本关系R的主属性,则A不能取空值。所谓空值就是“不知道”或“不存在”或“无意义”的值。
2.3.2参照完整性
- 参照关系与被参照关系: F是关系R的一个或一组属性,但不是R的码,Ks是基本关系S的主码,若F与Ks相对应,则称F是R的外码,并称基本关系为参照关系,基本关系为被参照关系。
- 参照完整性规则:若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可相同),每个元组在F上的值必须:
· 或者取空值(F的每个属性均为空值)
·或者等于关系S某个元组的主码值。
## 2.3.3用户定义完整性
- 用户定义完整性是针对某一具体关系数据库的约束条件,反应某一具体应用所涉及到的数据必须满足地语义要求。
2.4关系代数
- 关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类
x
2.4.1传统的集合运算
- 并:R∪S
- 差:R-S
- 交:R∩S
- 笛卡尔积:R×S
s
2.4.2专门的关系运算
- 连接:假设由n目关系R,m目关系S,tr∈R,ts∈S,tr︵ts称为元组的连接(符号有误)或元组的串接。R连接S={ts︵tr|tr∈Rs∧ts∈S∧tr[A]θts[B]}
自然连接:要求连个关系中进行比较的分量必须是同名的属性组;
悬浮元组:在做自然连接时舍弃的元组;
外连接:悬浮元组保存在结果中,其他属性上填空值;
左外连接:只保留左边关系R的悬浮元组;
右外连接:只保留右边关系S的悬浮元组。 - 选择:σF®={t|t∈R∧F(t)=’真‘},F为选择条件,是一个逻辑表达式。
- 投影:ПA®={t[A]|t∈R},A为R中的属性列。
- 除:R÷S={tr[X]|tr∈R∧ПY(S)包含于Yx},得到新的关系P(X),P是R满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上的投影的集合。