Design by decomposition
Database Normalization
- "Mega" relations + properties of the data
- System decomposes based on properties
- Final set of relations satisfies normal form
- No anomalies, no lost information
-
Functional dependencies => BCNF
function dependency.jpg
-
Multivalued Dependency => 4NF
multivalued dependency.jpg
![](https://img.haomeiwen.com/i1615282/536495c6a62be57d.jpg)
另外 Decomposition 必须满足 loseless join
![](https://img.haomeiwen.com/i1615282/afbd3940c244adfc.jpg)
Functional Dependency
Functional Dependency 非常通用,随便举几例
- Relational design by decomposition (BCNF)
- 数据存储时压缩
- 查询时优化
key:能决定一个 relation 所有元素的元素集合
closure:给定的元素集合所能决定的所有元素
由 closure 求得 key:
考虑 relation 的所有集合(由集合大小从小到大考虑),利用 colsure 找到那些能决定 relation 所有元素的集合
BCNF
![](https://img.haomeiwen.com/i1615282/bd4a8f1ab364c21f.jpg)
![](https://img.haomeiwen.com/i1615282/8b2b8f5ae6dfa644.jpg)
![](https://img.haomeiwen.com/i1615282/c7477126433b2e48.jpg)
![](https://img.haomeiwen.com/i1615282/67c81506c38df66a.jpg)
![](https://img.haomeiwen.com/i1615282/0380b98d50cd4814.jpg)
Multivalued Dependency
![](https://img.haomeiwen.com/i1615282/23421564ee69cf8b.jpg)
![](https://img.haomeiwen.com/i1615282/0faeef7381ac1364.jpg)
![](https://img.haomeiwen.com/i1615282/7f61b5ea646cdd03.jpg)
4NF Decomposition
![](https://img.haomeiwen.com/i1615282/28ed2486b59e0dc7.jpg)
![](https://img.haomeiwen.com/i1615282/2d98ab17a7d7ff5d.jpg)
![](https://img.haomeiwen.com/i1615282/1fb2cf8fb0e65c76.jpg)
Denormalization
当然不是分解的越小越好,也要看情况。。。感觉这就是个经验问题。
![](https://img.haomeiwen.com/i1615282/9cbf4161aa84ac25.jpg)
网友评论