数据库系统概论PPT第5章.ppt

上传人:资****亨 文档编号:125530458 上传时间:2020-03-18 格式:PPT 页数:82 大小:475.50KB
返回 下载 相关 举报
数据库系统概论PPT第5章.ppt_第1页
第1页 / 共82页
数据库系统概论PPT第5章.ppt_第2页
第2页 / 共82页
数据库系统概论PPT第5章.ppt_第3页
第3页 / 共82页
数据库系统概论PPT第5章.ppt_第4页
第4页 / 共82页
数据库系统概论PPT第5章.ppt_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《数据库系统概论PPT第5章.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论PPT第5章.ppt(82页珍藏版)》请在金锄头文库上搜索。

1、数据库系统概论 An Introduction to Database System 第五章 数据库完整性 An Introduction to Database System 数据库完整性 v 数据库的完整性 数据的正确性和相容性 v 数据的完整性和安全性是两个不同概念 数据的完整性 防止数据库中存在不符合语义的数据 也就是防止数据库中存在不正确的数据 防范对象 不合语义的 不正确的数据 数据的安全性 保护数据库防止恶意的破坏和非法的存取 防范对象 非法用户和非法操作 An Introduction to Database System 数据库完整性 续 为维护数据库的完整性 DBMS必须

2、n1 提供定义完整性约束条件的机制 n2 提供完整性检查的方法 n3 违约处理 An Introduction to Database System 一 完整性约约束条件 完整性约束条件作用的对象 v 列 对属性的取值类型 范围 精度等的约束条件 v 元组 对元组中各个属性列间的联系的约束 v 关系 对若干元组间 关系集合上以及关系之间的 联系的约束 An Introduction to Database System 完整性约约束条件 续续 v静态 对静态对 象的约束是反映数据库状态合 理性的约束 v动态 对动态对 象的约束是反映数据库状态变 迁的约束 An Introduction to

3、Database System 完整性约约束条件分类类 六类完整性约束条件 v 静态列级约束 v 静态元组约束 v 静态关系约束 v 动态列级约束 v 动态元组约束 v 动态关系约束 An Introduction to Database System 完整性约约束条件 续续 对象状态 动态列级约束 动态元组约束 动态关系约束 动态 静态列级约束 静态元组约束 静态关系约束 静态 列 元组 关系 对象粒度 An Introduction to Database System 完整性约约束条件 续续 1 静态列级约 束 v静态列级约束 对的取值域的说明 v最常见 最简单 最容易实现的一类完整性约

4、 束 An Introduction to Database System 完整性约约束条件 续续 v 五类静态列级约束 1 数据类型约束 数据的类型 长度 单位 精度等 例 学生姓名的数据类型为字符型 长度为8 2 对数据格式的约束 例 学号 前两位表示入学年份 后四位为顺 序编号 日期 YY MM DD An Introduction to Database System 完整性约约束条件 续续 3 取值范围或取值集合的约束 例 规定成绩的取值范围为 0 100 年龄的取值范围为 14 29 性别的取值集合为 男 女 4 对空值的约束 空值 未定义或未知的值 空值 与零值和空格不同 有的列

5、允许空值 有的则不允许 如成绩可为空值 5 其他约束 例 关于列的排序说明 组合列等 An Introduction to Database System 完整性约约束条件 续续 2 静态元组约 束 规定元组的各个列之间的约束关系 例 订货关系中发货量 700元 静态元组约 束只局限在元组上 An Introduction to Database System 完整性约约束条件 续续 3 静态关系约束 关系的各个元组之间或若干关系之间存在的各种联系或 约束 常见静态关系约束 1 实体完整性约束 2 参照完整性约束 3 函数依赖约 束 4 统计约 束 An Introduction to Dat

6、abase System 统计约统计约 束 v 定义某个字段值一个关系多个元组的统计值 之间的约束 关系 v 例 职工平均工资的2倍 部门经理的工资 原来工资 年龄只能增长 An Introduction to Database System 完整性约约束条件 续续 5 动态 元组约 束 修改元组值 各个字段之间要满足的约束条件 例 职工工资调 整不得低于其原来工资 工龄 1 5 An Introduction to Database System 完整性约约束条件 续续 6 动态 关系约束 关系变化前后状态 限制条件 例 事务一致性 原子性等约束条件 An Introduction to D

7、atabase System 完整性约约束条件小结结 粒 度 状态 列 级 元 组 级 关 系 级 静 态 列定义 类型 格式 值域 空值 元组值应满 足的 条件 实体完整性约束 参照完整性约束 函数依赖约束 统计约 束 动 态 改变列定 义或列值 元组新旧值之间应 满足的约束条件 关系新旧状态间应 满足的约束条件 An Introduction to Database System 二 DBMS的完整性控制机制 检查 功能 v立即执行的约束 Immediate constraints 语句执行完后立即检查 是否违背完整性约 束 v 延迟执行的约束 Deferred constrainsts

8、完整性检查延迟到整个事务执行结束后 进行 An Introduction to Database System DBMS的完整性控制机制 续续 例 银行数据库中 借贷总金额应平衡 的约束 就应该是延迟执行的约束 从账号A转一笔钱到账号B为一个事务 从账号A转出 去钱后账就不平了 必须等转入账号B后账才能重新 平衡 这时才能进行完整性检查 An Introduction to Database System 三 违约违约 反应应 拒绝该操作 其他处理方法 An Introduction to Database System DBMS的完整性控制机制 续续 完整性规则五元组表示 D O A C P

9、 v D Data 约束作用的数据对象 v O Operation 触发完整性检查 的数据库操作 当用户发 出什么操作请求时需要检查该 完整性规则 是立即检查还 是延迟检查 v A Assertion 数据对象必须满 足的断言或语义约 束这是规则 的主体 v C Condition 选择 A作用的数据对象值的谓词 v P Procedure 违反完整性规则时 触发的过程 An Introduction to Database System DBMS的完整性控制机制 续续 例1 在 学号不能为空 的约束中 D 约束作用的对象为Sno属性 O 插入或修改Student 元组时 A Sno不能为空

10、C 无 A可作用于所有记录的Sno属性 P 拒绝执行该操作 An Introduction to Database System DBMS的完整性控制机制 续续 例2 在 教授工资不得低于1000元 的约束中 D 约束作用的对象为工资Sal属性 O 插入或修改职工元组时 A Sal不能小于1000 C 职称 教授 A仅作用于职称 教授 的记录 P 拒绝执 行该操作 An Introduction to Database System 关系系统统三类类完整性的实现实现 v 关系数据库系统都提供了定义和检查实 体完整性 参 照完整性和用户定义的完整性的功能 v 违反实体完整性规则和用户定义的完整性

11、规则的操 作 一般是拒绝执行 v 违反参照完整性的操作 拒绝执 行 接受这个操作 同时执 行一些附加的操作 以保证数据库的 状态正确 An Introduction to Database System 第五章 数据库完整性 5 1 实体完整性 5 2 参照完整性 5 3 用户定义的完整性 5 4 完整性约束命名字句 5 5 域中的完整性限制 5 6 触发器 5 7 小结 An Introduction to Database System 5 1 实体完整性 v5 1 1 实体完整性定义 v5 1 2 实体完整性检查和违约处理 An Introduction to Database Syst

12、em 5 1 1 实体完整性定义 v 关系模型的实体完整性 CREATE TABLE中用PRIMARY KEY定义 v 单属性构成的码有两种说明方法 定义为列级约束条件 定义为表级约束条件 v 对多个属性构成的码只有一种说明方法 定义为表级约束条件 An Introduction to Database System 实体完整性定义 续 例1 将Student表中的Sno属性定义为码 1 在列级定义主码 CREATE TABLE Student Sno CHAR 9 PRIMARY KEY Sname CHAR 20 NOT NULL Ssex CHAR 2 Sage SMALLINT Sde

13、pt CHAR 20 An Introduction to Database System 实体完整性定义 续 2 在表级定义主码 CREATE TABLE Student Sno CHAR 9 Sname CHAR 20 NOT NULL Ssex CHAR 2 Sage SMALLINT Sdept CHAR 20 PRIMARY KEY Sno An Introduction to Database System 实体完整性定义 续 例2 将SC表中的Sno Cno属性组定义为码 CREATE TABLE SC Sno CHAR 9 NOT NULL Cno CHAR 4 NOT NUL

14、L Grade SMALLINT PRIMARY KEY Sno Cno 只能在表级定义主码 An Introduction to Database System 5 1 实体完整性 v5 1 1 实体完整性定义 v5 1 2 实体完整性检查和违约处理 An Introduction to Database System 5 1 2 实体完整性检查和违约处理 v 插入或对主码列进行更新操作时 RDBMS按照实体完整 性规则自动进行检查 包括 1 检查主码值是否唯一 如果不唯一则拒绝插入或修改 2 检查主码的各个属性是否为空 只要有一个为空就拒绝插 入或修改 An Introduction to

15、 Database System 实体完整性检查和违约处理 续 v 检查记录中主码值是否唯一的一种方法是进行全表扫描 An Introduction to Database System 实体完整性检查和违约处理 续 v索引 An Introduction to Database System 第五章 数据库完整性 5 1 实体完整性 5 2 参照完整性 5 3 用户定义的完整性 5 4 完整性约束命名字句 5 5 域中的完整性限制 5 6 触发器 5 7 小结 An Introduction to Database System 5 2 参照完整性 v5 2 1 参照完整性定义 v5 2 2

16、 参照完整性检查和违约处理 An Introduction to Database System 5 2 1 参照完整性定义 v关系模型的参照完整性定义 在CREATE TABLE中用FOREIGN KEY短语定义哪些 列为外码 用REFERENCES短语指明这些外码参照哪些表的主码 An Introduction to Database System 参照完整性定义 续 例如 关系SC中一个元组表示一个学生选修的某门课程的成绩 Sno Cno 是主码 Sno Cno分别参照引用Student表的 主码和Course表的主码 例3 定义SC中的参照完整性 CREATE TABLE SC Sno CHAR 9 NOT NULL Cno CHAR 4 NOT NULL Grade SMALLINT PRIMARY KEY Sno Cno 在表级定义实体完整性 FOREIGN KEY Sno REFERENCES Student Sno 在表级定义参照完整性 FOREIGN KEY Cno REFERENCES Course Cno 在表级定义参照完整性 An Introduction to

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号