无损分解与函数依赖:关系模式优化关键

需积分: 10 6 下载量 148 浏览量 更新于2024-08-21 收藏 258KB PPT 举报
在第十章《数据依赖和关系模式的规范化》中,引理10-8探讨了关系模式R及其无损分解的相关概念。函数依赖是数据库设计中的基本概念,它定义了属性之间的逻辑联系。函数依赖表示为从一个或一组属性(称为决定因素或左部,通常用X表示)到另一个或一组属性(称为依赖属性或右部,用Y表示)的直接关系,即X→Y。例如,给定的关系R包含学号(S#)、课程号(C#)、成绩(G)、任课教师姓名(TN)和教师所在系名(D),其功能依赖集F包括{S#, C#}→G, C#→TN, TN→D,这表明学号和课程号可以决定成绩,课程号决定教师姓名,教师姓名决定系名。 无损分解是将一个大的关系模式分解成若干个较小且相互独立的部分,每个部分都是原关系模式的子集且保持原关系模式的功能依赖。引理指出,如果ρ={R1, R2,...,Rk}是R的一个无损分解,那么添加更多的关系Rk+1,...,Rn也可以构成新的无损分解。这意味着关系模式的分解可以灵活扩展,但必须保持数据的完整性和一致性。 关系模式R存在的问题是数据冗余,特别是当涉及到教师和系的信息时。例如,一门课程的教师姓名需要在每个选修该课程的学生记录中重复,而一个系名也需重复在所有该系开设课程的学生记录中。这种冗余导致的问题包括: 1. 数据一致性:修改操作时可能出现不一致性。比如,更换一门课程的任课教师或更改课程归属系别,需要在多个相关记录上同步修改,否则可能导致数据不一致,即修改异常。 2. 更新异常:由于主键属性不允许为空,如某个系的教师未教授课程,其姓名和系名无法插入;反之,如果一位教师不开课,系统也无法正常更新他们的信息,这进一步加剧了数据的一致性问题。 为了解决这些问题,关系模式的规范化(如第一范式、第二范式等)变得至关重要,它们旨在消除冗余并确保数据的一致性。针对计算机系通知教师补考的查询,虽然可以通过简单的单表查询实现,但在实际设计中,可能需要遵循更高的规范化级别,以便更有效地管理数据和处理复杂的业务需求。