完整性规则提供了一种手段来保证当授权用户对数据库做修改时不会破坏数据的一致性。因此,完整性规则防止的是对数据的意外破坏。关系模型的完整性规则是对关系的某种约束条件。例如,若某企业实验室管理员的基本薪资小于2000元,则可用完整性规则来进行约束。
关系的完整性约束共分为三类:实体完整性、参照完整性(也称引用完整性)和用户定义完整性。
(1)实体完整性(Entity Integrity):规定基本关系R的主属性/不能取空值。
(2)参照完整性(ReferentialIntegrity):现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系是用关系来描述的,这样自然就存在着关系与关系间的引用。
参照完整性规定:若F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系&和S不一定是不同的关系),则对于R中每个元组在F上的值或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。
注意:本教材若在关系模式主属性上加实下画线,通常表示该属性为主码属性;如果在关系模式属性上加虚下画线,通常表示该属性为外码属性。
(3)用户定义完整性(User defined Integrity):就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。例如,银行的用户账户规定必须大于等于100 000,小于999 999。