第五章 完整性约束与模式分解--概念

5.1 域约束
表5-1

概念

解释

域约束

在定义关系模式时要指明属性的域,这就是数据库中的域约束。

5.2 参照完整性
表5-2

概念

解释

参照完整性

假设关系r1(R1)和r2(R2)的主码分别为K1和K2。称R2的子集a为参照关系r1中K1的外码,是要求对r2中的任意元组t2,均存在r1中的元组t1,使得:t1[K1] = t2[a]。这种要求就称为参照完整性约束,或子集依赖。子集依赖也可以表示为∏a(r2)∏K1(r1)。

联系集

参见第一章“引言――概念”的表1-3。

实体集

参见第一章“引言――概念”的表1-3。

弱实体集

参见第二章“实体-联系模型――概念”的表2-6。

插入

参见第三章“关系模型――概念”的表3-5。

删除

参见第三章“关系模型――概念”的表3-5。

更新

参见第三章“关系模型――概念”的表3-5。

5.3 断言
表5-3

概念

解释

断言

所谓断言就是一个谓词,它表达了我们希望数据库总能满足的一个条件。

5.4 触发器
表5-4

概念

解释

触发器

所谓触发器(trigger)就是一系列SQL语句,当对数据库做修改(包括插入、删除和更新)时,它自动被系统执行。

5.5 函数依赖
表5-5

概念

解释

超码

参见第二章“实体-联系模型――概念”的表2-4。

函数依赖

令aR且bR,R存在函数依赖a→b(读作a函数确定b,或b函数依赖于a)是指对任意合法关系r(R)及r中任意两个元组t1和t2,总满足以下条件:若t1[a]=t2[a],则t1[b]=t2[b]。

完全函数依赖

如果关系模式R中存在函数依赖X®Y,并且对于X的任何一个真子集X’,都有X’→Y不成立,则称Y对X完全函数依赖。

部分函数依赖

如果关系模式R中存在函数依赖X®Y,并且存在X的一个真子集X’,使得X’→Y成立,则称Y对X部分函数依赖。

传递函数依赖

如果X→Y(且Y不是X的子集),Y→Z(且Y®X不成立),则称Z对X传递函数依赖。

平凡的函数依赖

一般来说,如果ba,则形如a→b的函数依赖是平凡的函数依赖。

非平凡的函数依赖

一般来说,如果a→b,而且ba不成立,则这样的函数依赖是非平凡的函数依赖。

逻辑蕴涵

如果给定函数依赖集F,可以证明其他某些函数依赖也成立,就称这些函数依赖被F逻辑蕴涵。

闭包

令F为一个函数依赖集,F的闭包是指被F逻辑蕴涵的所有函数依赖的集合,记为F。

5.6 码与范式
表5-6

概念

解释

超码

参见第二章“实体-联系模型――概念”的表2-4。

侯选码

参见第二章“实体-联系模型――概念”的表2-4。

主码

参见第二章“实体-联系模型――概念”的表2-4。

主属性

把包含在任何一个后选码中的属性叫做主属性。

非主属性

把不包含在任何侯选码中的属性叫做非主属性或非码属性。

第一范式(1NF)

对一个关系模式来说,如果它的每一个属性都是不可再分割的(原子的),这样的关系模式就属于第一范式,简称1NF。

第二范式(2NF)

若关系模式R属于1NF,且每一个非主属性都完全函数依赖于主码,则R属于第二范式,简称2NF。

第三范式(3NF)

对于关系模式R∈2NF来说,如果R中不存在这样的主码X、属性集Y及非主属性Z(ZY),使得X→Y、Y→Z成立,则R属于第三范式,简称3NF。

5.7 关系数据库设计
表5-7

概念

解释

   
5.8 视图
表5-8

概念

解释

无损连接分解

令R为关系模式,关系模式集{R1,R2,…,Rn}为R的一个分解,即:R = R1∪R2∪...∪Rn。令r是模式R上的关系,即r(R),而ri=∏Ri(r),于是总有:rr1 �� r2 �� … �� rn。令C表示数据库上的约束集。如果对模式R上满足C的所有合法关系r,均有:r=∏Ri(r) �� ∏Ri(r) �� … �� ∏Ri(r),那么,{R1,R2,…,Rn}就是关于R的无损连接分解。

规范化

所谓的规范化就是通过模式分解将一个低一级范式的关系模式转化为若干个高一级范式的关系模式的集合。