北京邮电大学软件工程研究生的课程---数据库设计开发-5.2.pptVIP

  • 1
  • 0
  • 约1.31万字
  • 约 60页
  • 2019-09-06 发布于广东
  • 举报

北京邮电大学软件工程研究生的课程---数据库设计开发-5.2.ppt

北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3 关系规范化 规范化是关系数据库逻辑设计的另一种方法,它和ER模型的出发点不一样,但是一个基于规范化的关系设计和一个由ER模型转换成的关系设计几乎得到相同的结果。两种方法具有互补性。规范化方法中,从一个将被建模的现实世界的情形出发,分析数据项之间的相互影响,通过无损分解使数据库的逻辑设计趋于合理,把低一级的关系模式分解为若干个高一级的关系模式。 5.3.1 关系模式的设计问题 5.3.2 函数依赖 5.3.3 关系模式的分解特性 5.3.4 范式和关系模式规范化 北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3.1 关系模式的设计问题 关系模型要求关系必须是规范化的,即要求数据库表中不允许含有多值属性和含有内部结构,关系的每一个分量必须是一个不可分的的数据项,不允许表中还有表。遵守这样规则的表称为第一范式。这是关系数据库设计过程中的一个最基本的约束(见第一章)。 满足第一泛式不能保证数据库模式是良好的数据库模式。所谓良好的数据库模式的标准是什么?如何实现?这就是关系模式的设计问题。 北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3.1 关系模式的设计问题 存在大量数据冗余的数据库模式不是良好的数据库模式。因为大量的数据冗余不仅造成存储空间的浪费,存取效率的低下,而且使得数据信息的更新变得繁琐复杂,另外还隐藏着破坏数据一致性完整性的危险。 良好的数据库模式不存在数据冗余、插入异常、删除异常和更新异常等问题。重新分配数据项到不同的表中,能够消除这些问题,这恰是规范化过程将实现的任务。 北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3.1 关系模式的设计问题 更新异常(Update Anomaly):如果更改表所对应的某个实体实例或者关系实例的单个属性时,需要将多行更新,那么就说这个表存在更新异常。数据冗余引起更新异常。 删除异常(Delete Anomaly) :如果删除表的某一行来反应某个实体实例或者关系实例消失时,会导致丢失另一个不同实体实例或者关系实例的信息,而这是我们不希望丢失的,那么就说这个表存在删除异常。 插入异常(Insert Anomaly) :如果某个实体或者实例信息随着另一个实体或实例信息的存在而存在,在缺少另一个实体或实例信息时,无法表示这个实体或者实例信息,而这是我们不希望看到的,那么就说这个表存在插入异常。 北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3.1 关系模式的设计问题 异常情况举例: 下图模式1是管理职工工资的一个常见的简化的关系模式。 说明:应发工资额为基本工资和津贴之和,应发工资减去扣款项目为实发工资额,基本工资和津贴的额度由级别决定,扣款额根据实际情况决定。 工号 姓名 级别 基本 津贴 考勤扣款 违纪扣款 实发额 001 张三 一级 800 2000 120 10 2670 002 李四 三级 1200 4000 20 5180 工资管理模式1 北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3.1 关系模式的设计问题 工资管理模式1存在以下问题: 1)扣款项目不是每个职工都发生,数据冗余,浪费空间。 2)当公司出现其他扣款项目时,必须修改模式结构。 3)应发工资额由级别决定,当没有职工级别是二级时,二级的基本工资和津贴无法添加,插入异常。删除张三信息时,把一级与应发工资额的对应规则也删除了,删除异常。修改级别与应发工资额的对应规则时,必修修改多行,更新异常。 北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 5.3.1 关系模式的设计问题 下图模式2是改进后的职工工资管理关系模式。 说明:该模式解决了问题2,当公司出现其他扣款项目时,无须修改模式结构,比模式1合理。 工号 姓名 级别 基本 津贴 扣款项目 扣款金额 001 张三 一级 800 2000 考勤 120 001 张三 一级 800 2000 违纪 10

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档