首页 > 代码库 > 关系模型的三种完整性【转】

关系模型的三种完整性【转】

 

关系模型的完整性

关系模型中的完整性是指数据库中数据的正确性和一致性。

数据完整性由数据完整性规则来维护,包括实体完整性规则和参照完整性规则。

当然任何给定数据库中还要包括与应用有关的完整性规则。这类完整性规则并不是关系模型特有的,将其称为用户定义的完整性规则。

 

1.实体完整性规则

实体完整性:关系的主属性,即主键的组成不能为空,也就是关系的主属性不能是空值。

实体完整性是针对基本表的。

  •   在机器上实际存储数据的表称为基本表。除此之外,查询结果表是临时表;视图是虚表,是不实际存储数据的表。
  •   具体地讲,实体完成性是指在实际存储数据的基本表中,主属性不能取空值。

 

2.参照完整性规则

参照完整性:如果基本关系R2的属性中,包含于另一个基本关系R1的主键K相对应的属性组F,那么F则称为外键。对R2每个元组在F上的取值只能允许两种可能:一是空值,二是等于R1中的某个元组的主键值。

实体完整性与参照完整性是由系统自动支持的,即:在建立关系(表)时只要说明了“谁是主键”,“谁参照于谁”,系统将自动进行此类完整性检查。

参照完整性反映了相关联的两个表之间的约束。

例如:如果在学生表Student和选课成绩表SC之间用“学号”字段建立关联,学生表Student是主表,选课表SC是从表,那么,在向从表SC中输入一条记录时,系统要检查记录的学好是否在主表Student中已存在。如果存在,则允许执行输入操作;否则拒绝输入。这就是参照完整性。

参照完整性还体现在:对主表的删除和更新操作。

  •   级联删除:如果删除主表中的一条记录,则从表中凡是外键的值与主表的主键值相同的记录也会被同时删除。
  •   级联更新:如果更新主表中主键的值,则从表中相应记录的外键值也随之更新。

 

3.用户定义的完整性规则

用户定义的完整性规则:是针对某一应用环境的完整性约束条件,它反映了某一具体应用所涉及的数据应满足的要求。

系统提供定义和检查这类完整性规则的机制,其目的是用统一的方式由系统来处理它们,不再由应用程序来完整这项工作。

  •   在实际系统中,这类完整性规则一般在建立库表的同时进行定义,应用程序开发人员不需要再做考虑。
  •   如果某些约束条件没有建立在库表一级,则应用程序开发人员应在各模块的具体编程中通过程序进行检查和控制。

 

关系模型的三种完整性【转】