总结
- 我们给出了数据库中易犯的错误,和怎样系统地设计数据库模式来避免这些错误。这些错误包含信息重复和不能表示某些信息。
- 我们给出了从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)
评论()
收藏
举报