关系的键
元祖(Tuple)
从结构方面来看,除第一行(表头)之外,构成二维表的每一行被称为关系的一个元祖。
在一个关系中不允许两个元祖的属性值完全相同。为了区分关系中的元祖,用“键”对元祖进行唯一性标识。
关系R的主键(Primary)是为R选定的用于唯一标识元祖的一个候选键。一个关系只能有一个主键。
关系数据库设计的一条原则是每个关系都指定一个主键,主键的选取非常重要,应注意以下两点:
1、人的姓名一般不作为主键,因为可能有重名的人,而身份证号码可以作为主键,因为两个人的身份证号码不可能相同。
2、应该选择那些从不或极少变化的属性作为主键。例如,一个人的住址不应该作为主键的一部分,因为它很可能变化。
完整性约束
关系模型的完整性约束是指对关系表中数据的某种约束规则,它们的存在保证了关系数据的正确性、有效性和一致性。关系模型定义了三类完整性约束:实体完整性、参照完整性和用户定义完整性。
1、实体完整性:每个关系R都必须具有主键A,主键A包含的属性值必须唯一且非空(Unique And Not Null)
主键是唯一标识。
2、参照完整性:数据库中,作为实体的关系之间往往会存在着这样一种联系:一个关系中某属性集的取值总是参照另一个关系中的某属性集的取值。
外键(Foreign Key):一个关系模式R中的某个属性或属性组是另一个关系模型S的主键,那么这个属性(组)就被称为关系模式R的外键。关系模式R被称为参照关系,S被称为参照关系。R和S也可以是同一个关系。
外键并不一定要与引用的主键同名。在实际的数据库设计中,为了增强可读性,当外键与引用的主键属于不同关系时,通常给他们取相同名称。
3、用户定义完整性:针对用户的需求中具体业务逻辑而定义的约束条件,它反映某一具体应用程序所涉及的数据必须满足的予以要求。
——节选自《数据库原理和实践教程 GBase 8t Based on informix剖析与应用》一书




