正規化

提供: ER/Studio Data Architect
移動先: 案内検索

論理設計の要点 への移動

正規化を行うと、冗長性を除去して論理設計を簡素化することができます。正規化されたデータベース設計は、構成が効率化され洗練されたものになります。論理設計を物理設計に変換する前に、正規化を完了しておくことが非常に重要です。それによって、より効率的に物理設計を実際のデータベースに実装できます。

正規化は、データを複数の関連するテーブルに分割する処理です。一般的に、正規化されたデータベース設計には多数のエンティティがあり、各エンティティに含まれる属性の数は比較的少数です。一方、正規化されていない設計ではエンティティの数が少なく、各エンティティに含まれる属性の数は比較的多くなります。論理設計を正規化すると、モデルからある種の冗長性と不完全性を取り除くことができます。

正規化の手順の一部では、1 つのエンティティ内の繰り返しデータ セットが独立したエンティティに分離され、それら 2 つのエンティティ間にリレーションシップが作成されます。たとえば、ある大学で卒業生の情報を保存するデータ モデルを開発しているとします。1 つのエンティティに、卒業生についての情報(名前、取得した学位、および卒業年度)を保存することができます。一部の卒業生が複数の学位を取得している場合、学位情報は繰り返しデータ セットになります。正規化のプロセスでは、学位情報をエンティティから削除して、別のエンティティに配置します。次に、最初のエンティティと新しいエンティティの間にリレーションシップを作成して、各エンティティの情報を相互に関連付けます。

論理データ モデルの作業時には、優れたデータ モデルを作成するために正規化の規則(正規形)を理解する必要があります。

正規形について次に説明します。

  • 繰り返しグループの除去(1NF): 関連する各属性セットに対して個別のテーブルが存在します。各テーブルには主キーがあります。
  • 冗長なデータの除去(2NF): 複数値を持つキーの一部のみに依存する属性は、別のテーブルに移動します。
  • キーに依存しないカラムを除去(3NF): キーの記述に関係しない属性は、別のテーブルに移動します。
  • ボイスコッド正規形(BCNF): 候補キー属性間の自明でない依存関係は、別のテーブルに分離されます。
  • 独立した複数のリレーションシップを分離する(4NF): テーブルが、直接関連していない 2 つ以上の 1:n または n:m リレーションシップを含まないようにします(キー以外の多値従属性の排除)。
  • 意味的に関連した複数のリレーションシップを分離する(5NF): 実用上の制約によって、論理的に関連した複数の多対多リレーションシップを分離すると役立つ場合があります(自明でない結合従属性の排除)。
  • 意味的に関連した複数のリレーションシップを分離する(ONF): オブジェクト ロール モデルの表記で表されるように、シンプルな(基本的な)事実のみに限定されたモデルです。
  • ドメインキー正規形(DKNF): 更新時異常がまったく発生しないモデルです。
  • すべての正規形は段階的に構成されます。つまり、あるモデルが第 3 正規形なら、第 2 および第 1 正規形にもなっています。

関連項目