第章数据库完整性第版.ppt
文本预览下载声明
第五章 数据库完整性 什么是数据库的完整性? 数据的正确性和相容性 防止不合语义的数据进入数据库。 例: 学生的年龄必须是整数,取值范围为14--29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系; 完整性:是否真实地反映现实世界 完整性控制机制 1.完整性约束条件定义机制 2.完整性检查机制 3.违约反应 第五章 数据库完整性 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.6 触发器 5.7 小结 5.1实体完整性 5.1.1实体完整性定义 PRIMARY KEY定义,表级完整性约束或列级完整性约束 5.1.2实体完整性检查和违约处理 按照实体完整性规则,系统自动检查: 主码值是否唯一 主码各属性是否为空 5.2参照完整性 5.2.1参照完整性定义 创建表时,FOREIGN KEY定义 5.2.2参照完整性检查和违约处理 以SC和STUDENT为例,四种情况: SC中增加一个元组,而在student中找不到相应的元组 修改SC中的一个元组…… 从student删除一个元组…… 修改student中的一个元组…… 5.3用户定义的整性 5.3.1属性上的约束条件的定义 列值非空;列值唯一;CHECK短语 5.3.2属性上的约束条件检查和违约处理 5.3.3元组上的约束条件的定义 CHECK短语 5.3.4元组上的约束条件检查和违约处理 5.4完整性约束命名子句 1完整性约束命名子句 2修改表中的完整性限制 5.6触发器 5.6.1定义触发器 5.6.2激活触发器 5.6.3删除触发器 数据库完整性-小结 1、什么是数据库的完整性? 数据的正确性和相容性 防止不合语义的数据进入数据库。 例: 学生的年龄必须是整数,取值范围为14--29; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系; 完整性:否真实地反映现实世界 2、完整性控制机制 1.完整性约束条件定义机制 完整性约束条件:数据模型的组成部分约束数据库中数据的语义 DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中 2.完整性检查机制 检查用户发出的操作请求是否违背了完整性约束条件 3.违约反应 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 完整性约束条件 完整性约束条件作用的对象 列:对属性的取值类型、范围、精度等的约束条件 元组:对元组中各个属性列间的联系的约束 关系:对若干元组间、关系集合上以及关系之间的联系的约束 静态 对静态对象的约束是反映数据库状态合理性的约束 动态 对动态对象的约束是反映数据库状态变迁的约束 完整性约束条件分类 1) 数据类型约束:数据的类型、长度、单位、精度等 例:学生姓名的数据类型为字符型,长度为8 2) 对数据格式的约束 例: 学号:前两位表示入学年份,后四位为顺序编号 日期:YY.MM.DD。 3) 取值范围或取值集合的约束 例:规定成绩的取值范围为0-100 年龄的取值范围为14-29 性别的取值集合为[男,女] 函数依赖约束 2. 静态元组约束 规定元组的各个列之间的约束关系 例:订货关系中发货量=订货量 教师关系中教授的工资=700元 静态元组约束只局限在元组上 4. 动态列级约束 动态列级约束是修改列定义或列值时应满足的约束条件 1) 修改列定义时的约束 例:将原来允许空值的列改为不允许空值时: 该列目前已存在空值,则拒绝这种修改 2) 修改列值时的约束 修改列值时新旧值之间要满足的约束条件 例:职工工资调整 = 原来工资 例:年龄只能增长 5. 动态元组约束 修改元组值: 各个字段之间要满足的约束条件 例: 职工工资调整不得低于其原来工资 + 工龄*1.5 6. 动态关系约束 关系变化前后状态:限制条件 例:事务一致性、原子性等约束条件 完整性约束条件小结 3、DBMS的完整性控制机制 1. 定义功能 一个完善的完整性控制机制应该允许用户定义各类完整性约束条件。 2. 检查功能 立即执行的约束(Immediate constraints) 语句执行完后立即检查是否违背完整性约束 延迟执行的约束(Deferred constrainsts) 完整性检查延迟到整个事务执行结束后进行 例:银行数据库中“借
显示全部