第五章 数据库完整性
数据库是否具备完整性关系到数据库能否真实的反映现实世界
DBMS的完整性控制机制
-
定义完整性约束条件
加在数据智商的语义约束条件,将作为模式的一部分存入数据库中。
-
完整性检查
检查用户发出的操作请求
-
违约处理
如果
以上三点对比关系完整性中的实体完整性、参照完整性、用户定义完整性。
检查功能的实现:
-
立即执行的约束:语句执行完后立即检查是否违背完整性约束
-
延迟执行的约束:完整性检查延迟到整个事宜结束后再执行。
违约反应的执行:
-
对于立即执行的约束,如果发现用户操作请求违背了完整性能约束条件,系统将拒绝该操作。
-
对于延迟执行的约束,系统将拒绝整个事务,把数据库恢复到实物执行之前的状态。
-
违反实体完整性规则和用户定义的完整性规则的操作时,一般是拒绝执行,
-
违反参照完整性的操作,并不都是简单的拒绝执行,有时候需要根据应用定义执行一些附加的操作,以保证数据库的正确性。(去找个例子哈)
//待补充
完整性检查是围绕完整性约束条件进行的,因此完整性控制机制的核心是完整性约束条件。
完整性约束条件作用的对象
- 列:对属性的取值类型、范围、精度等的约束条件
- 元组:对元组中的各个属性列的联系的约束
- 关系:对若干元组间、关系集合上以及关系之间的联系的约束。
完整性约束条件涉及到的三类数据对象所应满足的状态可以是静态的(最重要的约束)、也可以是动态的(从一种状态到另一种状态的应该满足的约束条件)