😋

データベース - 正規化

2022/11/08に公開

データの冗長性と不整合

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 \subset 3NF \subset BCNF

Discussion