文档介绍:数据库的完整性概述
完整性约束条件
SQL中完整性约束
本章小结
数据库完整性
作业
P313 4,6
什么是数据库的完整性
数据的正确性、有效性和相容性,防止不合语义的数据进入数据库。
正确性:数据的合法性,如数值型数据不能是字符
有效性:数据是否属于所定义的有效范围
相容性:表示同一事实的两个数据应相同
1 . 数据库完整性概述
完整性控制机制功能
1. 完整性约束条件定义机制
完整性约束条件:数据模型的组成部分,约束数据库中数据的语义,有时称为完整性规则。
DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中
1 . 数据库完整性概述
检查用户发出的操作请求是否违背了完整性约束条件
立即执行的约束(Immediate constraints)
语句执行完后立即检查是否违背完整性约束
延迟执行的约束(Deferred constrainsts)
完整性检查延迟到整个事务执行结束后进行
如发现用户的操作使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
1 . 数据库完整性概述
完整性约束条件作用的对象
列:对属性的取值类型、范围、精度等的约束条件
元组:对元组中各个属性列间的联系的约束
关系:对若干元组间、关系集合上以及关系之间的联系的约束
2. 完整性约束条件
三类对象状态
静态约束是指数据库每一确定状态时的数据对象所满足的约束条件,它是反映数据库状态合理性的约束。
动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间所涉及的约束条件,它是反映数据库状态变迁的约束。
2. 完整性约束条件
静态列级约束:对列的取值域的约束
数据类型约束:数据的类型、长度、单位、精度等
对数据格式的约束:如学号前两位表示入学年份,后四位为顺序编号,日期:。
取值范围或取值集合的约束:如年龄的取值范围为14-29,性别的取值集合为[男,女]
对空值的约束等
2. 完整性约束条件
静态元组约束
对一个元组中各列值间联系的约束。
如:总额≥单价
工龄< 年龄
实发工资= 应发工资- 总扣款
静态元组约束只局限在元组上
2. 完整性约束条件
静态关系约束
关系的各个元组之间或若干关系之间存在的各种联系或约束, 常见静态关系约束:
实体完整性约束
参照完整性约束
函数依赖约束
统计约束:定义某个字段值与一个关系多个元组的统计值之间的约束关系,例:职工平均工资的2倍<=部门经理的工资<= 职工平均工资的5倍
2. 完整性约束条件
动态列级约束
是修改列定义或列值时应满足的约束条件
修改列定义时的约束
例:将原来允许空值的列改为不允许空值时:
该列目前已存在空值,则拒绝这种修改
修改列值时的约束
修改列值时新旧值之间要满足的约束条件
例:职工工资调整>= 原来工资
年龄只能增长
2. 完整性约束条件