关系数据库设计:异常问题与模式分解

需积分: 16 1 下载量 198 浏览量 更新于2024-08-15 收藏 649KB PPT 举报
"关系数据库设计涉及关系模式的异常问题、函数依赖、Armstrong公理、闭包计算、最小依赖集、候选码、范式(1NF, 2NF, 3NF, BCNF)以及模式分解等内容。在设计中,需要确保数据库具有良好的范式级别以保证系统的正确性。例如,考虑学生表D,包含学生的学号(Sno)、姓名(Sname)、专业(Sdept)、年龄(Sage)、课程号(Cno)、课程名(Cname)、学分(Credit)和成绩(Grade)。此表的关键字是Sno+Cno,意味着每一条记录都是唯一的学号和课程号组合。然而,这种关系模式存在冗余和更新异常的问题,可能导致数据一致性问题。" 在关系数据库设计中,一个不好的关系模式通常会出现数据冗余、更新异常、插入异常或删除异常等问题。如上述的学生表D,由于一个学生可以选多门课程,同一学生的个人信息(如Sname、Sdept和Sage)会多次重复,这不仅占用额外的存储空间,而且在更新数据时可能导致不一致。例如,若要更改学生张三的专业,需要更新所有包含张三信息的行,增加了维护成本。 函数依赖是描述属性间依赖关系的概念,它帮助我们理解数据间的逻辑联系并消除冗余。Armstrong公理系统是证明函数依赖的一套规则,包括自反性、对称性、传递性、增广性和合并性等,用于推导函数依赖集。 闭包和计算算法是用来找出一个属性集通过函数依赖所能决定的所有其他属性的过程。通过计算函数依赖的闭包,我们可以找到最小依赖集,即无法再进一步分解的函数依赖集合。候选码是能唯一标识元组的最小属性集合,如学生表中的Sno+Cno。 范式是衡量关系模式规范化程度的标准,主要包括1NF(第一范式)、2NF(第二范式)、3NF(第三范式)和BCNF(博科斯范式)。1NF要求每个字段不可再分;2NF是在1NF基础上,消除了部分函数依赖;3NF进一步消除了非主属性对候选键的传递依赖;而BCNF则要求任何非平凡的函数依赖的左部都包含候选键。 模式分解是将一个高范式级别的关系模式分解为若干个低范式级别但保持等价性的关系模式,以解决异常问题。教学中会关注如何进行这样的分解,以满足不同范式的要求。 在10节理论课和2节习题课的教学过程中,学生应掌握这些理论知识,并通过实例操作理解如何识别和解决关系数据库设计中的问题,以构建高效、稳定的数据存储系统。