第2章_002_关系数据库_ 关系的码与关系的完整性
一. 关系的码 ===》
1. 码: 所谓码就是能唯一标识实体的属性,它是整个实体集的性质,而不是单个实体的性质。
2. 超码: 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。
3. 候选码: 候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。所以候选码就具有如下两个性质 ===》
--(1). 唯一性: 不同元组在关系的候选码这个取值上是唯一的;
--(2). 最小性: 候选码是最小的超码,即去掉任何候选码集合当中的一个属性后就不能称之为候选码;
补充: 全码 在候选码中存在着这样一种特殊的码——全码。全码是指所有属性的组合是关系的候选码。
4. 主码: 从多个候选码中选择一个作为查询、插入或删除元素的操作变量,被选用的候选码称为主关系码(主键,主码,关键键,关键字)。在主码这个概念中有如下2个属性 ===》
--(1). 主属性: 包含在主码中的各个属性称为主属性;
--(2). 非主属性: 不包含在任何候选码中的属性称为非主属性;
注意: 事件"属性∈主属性"与事件"属性∈非主属性"并不是对立事件,它们只是互斥事件。
5. 外码: 如果关系R2中的一个或一组属性X不是R2的主码,而是另一个关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码,并称R2为参照关系(Referingcing Relation),关系R1称为被参照关系(Reference Relation)。
注意: 被参照关系的主码和参照关系的外码必须定义在同一个域上。
二. 关系的完整性 ===》
1. 关系完整性的概述 ===》
为了维护关系数据库中的数据域现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这些约束条件实际上是现实世界的要求。任何关系在任何时刻都要满足这些语义约束,这些语义约束大致分为3类完整性约束: (1). 实体完整性; (2). 参照完整性; (3). 用户自定义完整性; 其中(1)和(2)都是必须满足的性质,二自定义完整性是在具体领域具体业务的一个语义约束,比如规定某一个域。
2. 实体完整性 ===》
定义: 主码的值不能为空或者部分为空。
原因 ===》

3. 参照完整性 ===》
定义: 如果R2的外码X与关系R1的主码相同,则X中的每一个值 = "R1主码的某一个值" / "空值"。
4. 用户自定义完整性 ===》
定义: 针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系的模型应该提供定义和检验用户自定义完整性的机制,从而能够用统一的、系统的方法来处理它们,而不应该由应用程序来承担这一功能。

浙公网安备 33010602011771号