上QQ阅读APP看书,第一时间看更新
1.3.3 关系完整性约束
为了保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。完整性通常包括域完整性、实体完整性、参照完整性和用户定义完整性,其中域完整性、实体完整性和参照完整性是关系模型必须满足的完整性约束条件。
1.实体完整性
实体完整性是指关系的主关键字不能重复,也不能为空值。在关系模型中,以主关键字作为实体的唯一标识,如果主关键字中的属性为空值,则表明关系中存在着不可标识的实体;如果主关键字中的属性有重复,则主关键字就无法唯一标识实体了。
2.参照完整性
参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。
(1)插入规则:如果字段K是关系R的主键,K也是关系S的外键,那么在关系S中,K的取值只允许有两种可能:或为空值,或等于关系R中某个主键值,即在关系S中不能出现关系R中不存在的元组或记录。
(2)更新规则:如果字段K是关系R的主键,K也是关系S的外键,那么在关系S中修改字段K的数据时,必须修改为关系R字段K中已经有的数据,如修改为关系R字段K中没有的数据,则不能修改,即在关系S中不能出现关系R中不存在的元组或记录。
(3)删除规则:如果字段K是关系R的主键,K也是关系S的外键,那么在关系R中删除某一记录时,关系S中相应记录全部都会删除。
3.用户定义的完整性
用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应由关系模型提供定义并检验。用户定义完整性主要包括字段有效性约束和记录有效性,如某个属性的取值范围在0~100等。