80 likes | 239 Views
第五章 数据库完整性. 教学目标: 掌握三类完整性的实现方法 外码对参照表和被参照表的影响 难点 : 触发器 课时: 4. 含义:数据的正确性和相容性 安全性与完整性的区别 DBMS 的完整性控制有三个方面的功能: 定义功能 检查功能 违约处理:若操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 5.1 实体完整性 一 定义 primary key ( 主码 ) 二 检查 唯一 不能为空. 5.2 参照完整性 一 定义 foreign key ( 外码 ) references 被参照表 ( 属性 )
E N D
第五章 数据库完整性 • 教学目标: • 掌握三类完整性的实现方法 • 外码对参照表和被参照表的影响 • 难点: • 触发器 • 课时:4
含义:数据的正确性和相容性 • 安全性与完整性的区别 • DBMS 的完整性控制有三个方面的功能: • 定义功能 • 检查功能 • 违约处理:若操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 • 5.1 实体完整性 一 定义 primary key (主码) 二 检查 • 唯一 • 不能为空
5.2 参照完整性 • 一 定义 • foreign key (外码) references 被参照表(属性) • 二 检查、处理
学生 专业 • 学号 姓名 专业号 专业号 专业名 • 101 张琴 JSJ JSJ 计算机 • 102 王芹 JSJ SX 数学 • 103 张勇 WY 外语 • 104 刘廷 SX • 105 钱生 WY • 106 赵开 KK
1 在参照关系中插入元组 • 受限插入(默认) • 2 在参照关系中修改外码值 • 受限 • 3 被参照关系中删除元组 • 受限删除 (默认) • 级联删除 (ON delete cascade) • 置空删除 (极少使用) • 4 修改被参照表的主码 • 注意:修改参照表的主码不受限制 • 受限修改 (默认) • 级联修改 (on update cascade) • 置空修改
SC表的Sno是外码,参照Student表的 Sno。 • Sno Sname Ssex Sage Sdept • 0001 陈小明 男 20 SX • 0002 杨秀红 女 21 JSJ • 0004 周志林 男 20 SX • SC表中有数据: • Sno Cno grade • 0001 1 90 • 0002 1 91 • 0002 2 90 1 执行如下语句,说明能否成功执行,请说明理由。 Update sc set sno=’0001’ where sno=’0002’ and cno=’2’ 2 执行如下语句,说明能否成功执行,请说明理由。如不能 成功执行,则可以采取哪些技术解决此问题。 Update student set sno=’0009’ where sname=’陈小明’ 3执行如下语句,说明能否成功执行,请说明理由。如不能 成功执行,则可以采取哪些技术解决此问题。 Update student set sno=’0019’ where sname=’周志林’
5.3 用户定义的完整性 • 5.3.1 列级约束 – 列 • 列非空 • 列值唯一 • 满足一定条件 • 5.3.3 表级约束 –以元组为检查单位
5.4 完整性约束的实现 • 5.6 触发器