第8章 关系数据库设计

总结

  • 我们给出了数据库中易犯的错误,和怎样系统地设计数据库模式来避免这些错误。这些错误包含信息重复和不能表示某些信息。
  • 我们给出了从E-R设计到关系数据库设计发展的过程,什么时候可以安全地合并模式,什么时候应该分解模式。所有有效的分解都必须是无损的。
  • 我们描述了原子域和第一范式的假设。
  • 我们介绍了函数依赖的概念,并且使用它介绍两种范式,BCNF和3NF。
  • 如果分解是保持依赖的,则给定一个数据库更新,所有的函数依赖都可以由单独的关系进行验证,无须计算分解后的关系的连接。
  • 我们展示了如何用函数依赖进行推导。我们着重讲解了什么依赖是一个依赖集逻辑蕴涵的。我们还定义了正则覆盖的概念,它是与给定函数依赖集等价的最小的函数依赖集。
  • 我们概述了将一个关系分解成BCNF的算法,有一些关系不存在保持依赖的BCNF分解。
  • 我们用正则覆盖将关系分解成3NF,它比BCNF的条件弱一些。属于3NF的关系也许会含有冗余,但是总存在保持依赖的3NF分解。
  • 我们介绍了多值依赖的概念,它指明仅用函数依赖无法指明的约束。我们用多值依赖定义了4NF。
  • 其它的范式,例如PJNF和DKNF,消除了更多细微形式的冗余。但是,它们难以操作而且很少使用。
  • 回顾本章的要点可以发现,我们之所以可以对关系数据库设计定义严格的方法,是因为关系数据模型建立在严谨的数学基础之上的。这是关系模型与我们已经学过的其它数据模型相比的主要优势之一。

术语

  • E-R模型和规范化
  • 分解
  • 函数依赖
  • 无损分解
  • 原子域
  • 1NF
  • 合法关系
  • 超码
  • R满足F
  • F在R上成立
  • BCNF
  • 保持依赖
  • 3NF
  • 平凡的函数依赖
  • 函数依赖集的闭包
  • Armstrong公理
  • 属性集闭包
  • F 在 Ri上的限定
  • 正则覆盖
  • 无关属性
  • BCNF分解算法
  • 3NF分解算法
  • 多值依赖
  • 4NF
  • 多值依赖的限定
  • 投影-连接范式(PJNF)
  • 域 - 码范式(DKNF)
  • 泛关系
  • 唯一角色假设
  • 去规范化
posted on 2021-07-11 09:31  wtsgtc  阅读(63)  评论(0)    收藏  举报