😋
データベース - 正規化
データの冗長性と不整合
Anomalyが生じるのは、データベースのスキーマが、データの実際の状態と一致しない場合に発生する。
(データベースのスキーマは、データベースの構造を定義するものである。)
- Redundancy: データの重複
- Update Anomaly: データの更新に関する問題
- Delete Anomaly: データの削除に関する問題
ひとつのrelationに多くの情報を詰め込もうとする起きる問題である。
Relationを分解して、回避する。
満たしたい条件
- Anomalyが起こらない
- 元のrelationの復元が可能
- FDsの保持
これらを同時に満たすアルゴリズムは存在しない。
- 例えば、Anomaliesが起こらないようにすると、元のrelationの復元ができなくなる。
Boyce-Codd Normal Form (ボイス・コッド正規形)
- BCNFになっていれば、Anomalyが起こらない。
- BCNF:RelationがBCNFになっているとき、そのrelationは以下の条件を満たす。
- すべてのtrivialではないFDがsuperkeyである。
- 2つのattibutesのみからなるrelationは、BCNFになっている。
Third Normal Form (第3正規形)
- BCNFとは違い、anomalyが生じる場合がある
- 3NFである条件:以下のいずれかを満たす
- すべてのtrivialではないFDがsuperkeyである
- FDの右辺がprime attributes(keyを構成するattribute)のみ
- 2つ目の条件によりBCNFより条件が緩い
Fourth Normal Form (第4正規形)
- 4NFである条件:以下を満たす
- すべてのtrivialではないMVDの左辺superkeyである
4NF
Discussion