Relational Design

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


    Relational Design_第1张图片
    function dependency.jpg
  • Multivalued Dependency => 4NF


    Relational Design_第2张图片
    multivalued dependency.jpg
Relational Design_第3张图片
Relational Design.jpg

另外 Decomposition 必须满足 loseless join

Relational Design_第4张图片
loseless join.jpg

Functional Dependency

Functional Dependency 非常通用,随便举几例

  • Relational design by decomposition (BCNF)
  • 数据存储时压缩
  • 查询时优化

key:能决定一个 relation 所有元素的元素集合
closure:给定的元素集合所能决定的所有元素
由 closure 求得 key
考虑 relation 的所有集合(由集合大小从小到大考虑),利用 colsure 找到那些能决定 relation 所有元素的集合

BCNF

Relational Design_第5张图片
BCNF.jpg
Relational Design_第6张图片
BCNF Example1.jpg
Relational Design_第7张图片
BCNF Example2.jpg
Relational Design_第8张图片
BCNF Decomposition.jpg
Relational Design_第9张图片
BCNF Decomposition Example.jpg

Multivalued Dependency

Relational Design_第10张图片
Multivalued Dependency.jpg
Relational Design_第11张图片
Multivalued Dependency Example1.jpg
Relational Design_第12张图片
Multivalued Dependenc Example2.jpg

4NF Decomposition

Relational Design_第13张图片
4NF Decomposition.jpg
Relational Design_第14张图片
4NF Decomposition Example1.jpg
Relational Design_第15张图片
4NF Decomposition Example2.jpg

Denormalization

当然不是分解的越小越好,也要看情况。。。感觉这就是个经验问题。

Relational Design_第16张图片
Denormalization.jpg

你可能感兴趣的:(Relational Design)