😋
データベース - 正規化
データの冗長性と不整合
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になっている。
(第3正規形)
Third Normal Form- BCNFとは違い、anomalyが生じる場合がある
- 3NFである条件:以下のいずれかを満たす
- すべてのtrivialではないFDがsuperkeyである
- FDの右辺がprime attributes(keyを構成するattribute)のみ
- 2つ目の条件によりBCNFより条件が緩い
(第4正規形)
Fourth Normal Form- 4NFである条件:以下を満たす
- すべてのtrivialではないMVDの左辺superkeyである
4NF
Discussion