第5章完整性约束与模式 参考书目:《数据库系统概论》萨师煊王珊,高等教 育出版社 UA++
1 第5章 完整性约束与模式 参考书目:《数据库系统概论》萨师煊 王珊,高等教 育出版社
本章概要 》本章讲述完整性约束和关系数据库规范化理论,这是 数据库逻辑设计的理论依据。 深刻理解完整性约束的基本概念; 要求了解规范化理论的研究动机及其在数据库设计中 的作用; 掌握函数依赖的有关概念; 理解第一范式、第二范式、第三范式的定义, 重点掌握并能够灵活运用关系模式规范化的方法和关 系模式分解的方法,这也是本章的难点。 UA++
2 本章概要 ➢ 本章讲述完整性约束和关系数据库规范化理论,这是 数据库逻辑设计的理论依据。 ➢ 深刻理解完整性约束的基本概念; ➢ 要求了解规范化理论的研究动机及其在数据库设计中 的作用; ➢ 掌握函数依赖的有关概念; ➢ 理解第一范式、第二范式、第三范式的定义, ➢ 重点掌握并能够灵活运用关系模式规范化的方法和关 系模式分解的方法,这也是本章的难点
5.1关系模型的完整性 为了维护数据库中数据与现实世界的一致性,对关系 数据库的插入、删除和修改操作必须有一定的约束条 件,这就是关系模型的三类完整性: 实体完整性 参照完整性 用户定义的完整性 1.实体完整性( Entity Integrity) 实体完整性是指主码的值不能为空或部分为空。 例如,图5.4中学生关系中的主码“学号”不能为空; 选课关系中的主码“学号+课程号”不能部分为空,即 “学号”和“课程号”两个属性都不能为空。 UA++
3 ➢ 为了维护数据库中数据与现实世界的一致性,对关系 数据库的插入、删除和修改操作必须有一定的约束条 件,这就是关系模型的三类完整性: • 实体完整性 • 参照完整性 • 用户定义的完整性 1. 实体完整性(Entity Integrity) ➢ 实体完整性是指主码的值不能为空或部分为空。 ➢ 例如,图5.4中学生关系中的主码“学号”不能为空; 选课关系中的主码“学号+课程号”不能部分为空,即 “学号”和“课程号”两个属性都不能为空。 5.1 关系模型的完整性
2.参照完整性( Referential integrity) >如果关系R2的外部关系码X与关系R1的主码相符,则X的 每个值或者等于R1中主码的某一个值,或者取空值。 >如图51,52所示,学生关系中某个学生(如s1或s2) “系别”的取值,必须在参照的系别关系中主码“系 别”的值中能够找到,否则表示把该学生分配到一个 不存在的部门中,显然不符合语义。 如果某个学生(如s11)“系别”取空值,则表示该学 生尚未分配到任何一个系。否则,它只能取专业关系 中某个元组的专业号值。 UA++
4 2. 参照完整性(Referential integrity) ➢ 如果关系R2的外部关系码X与关系R1的主码相符,则X的 每个值或者等于R1中主码的某一个值,或者取空值。 ➢ 如图5.1,5.2所示,学生关系中某个学生(如s1或s2) “系别”的取值,必须在参照的系别关系中主码“系 别”的值中能够找到,否则表示把该学生分配到一个 不存在的部门中,显然不符合语义。 ➢ 如果某个学生(如s11)“系别”取空值,则表示该学 生尚未分配到任何一个系。否则,它只能取专业关系 中某个元组的专业号值
S(学生关系) D(系别关系) SNOSN SEX DEPT DEPT ADDR 学号姓名|性别年龄系别 系别地址 S1赵亦女17计算机 计算机1号楼 信息1号楼 S2钱尔男18信息 ●@ 自动化3号楼 S11王威男 图5.1S表(学生表) 图5.2D表(系别表) UA++
5 S(学生关系) D(系别关系) 图5.1 S表(学生表) 图5.2 D表(系别表) SNO 学号 SN 姓名 SEX 性别 AGE 年龄 DEPT 系别 S1 赵亦 女 17 计算机 S2 钱尔 男 18 信息 … … … … … S11 王威 男 19 DEPT 系别 ADDR 地址 计算机 1号楼 信息 1号楼 … … 自动化 3号楼