単一のリレーションとして定義された大規模なデータベースでは、データの重複が発生する可能性があります。このデータの繰り返しにより、次のような結果が生じる可能性があります。
- 関係を非常に大きくすること。
- データを維持および更新するには、関連する多数のレコードを検索する必要があるため、簡単ではありません。
- ディスク領域とリソースの無駄遣いと不十分な使用。
- エラーや不一致が発生する可能性が高くなります。
したがって、これらの問題に対処するには、冗長データとの関係を分析し、望ましい特性を満たす、より小さく、より単純で、よく構造化された関係に分解する必要があります。正規化は、関係をより少ない属性を持つ関係に分解するプロセスです。
正規化とは何ですか?
- 正規化は、データベース内のデータを整理するプロセスです。
- 正規化は、リレーションまたはリレーションのセットからの冗長性を最小限に抑えるために使用されます。また、挿入、更新、削除の異常などの望ましくない特性を排除するためにも使用されます。
- 正規化では、大きなテーブルを小さなテーブルに分割し、関係を使用してそれらをリンクします。
- 通常形式は、データベース テーブルの冗長性を減らすために使用されます。
なぜ正規化が必要なのでしょうか?
関係を正常化する主な理由は、これらの異常を取り除くことです。異常を排除しないとデータの冗長性が生じ、データベースが増大するにつれてデータの整合性やその他の問題が発生する可能性があります。正規化は、適切なデータベース構造を作成する際に役立つ一連のガイドラインで構成されています。
データ変更の異常は、次の 3 つのタイプに分類できます。
正規形の種類:
正規化は、正規形と呼ばれる一連の段階を通じて行われます。標準形式は個々の関係に適用されます。制約を満たす場合、関係は特に正規形であると言われます。
以下に、さまざまなタイプの標準形式を示します。
標準形 | 説明 |
---|---|
1NF | リレーションにアトミック値が含まれる場合、リレーションは 1NF になります。 |
2NF | リレーションが 1NF にある場合、リレーションは 2NF にあり、すべての非キー属性は主キーに依存して完全に機能します。 |
3NF | リレーションが 2NF にあり、遷移の依存関係が存在しない場合、リレーションは 3NF になります。 |
BCNF | 3NF のより強力な定義は、ボイス コッドの標準形式として知られています。 |
4NF | リレーションがボイス・コッドの標準形式であり、多値の依存関係を持たない場合、リレーションは 4NF になります。 |
5NF | 関係は5NFにあります。 4NF 内にあり、結合依存関係が含まれていない場合、結合はロスレスである必要があります。 |
正規化の利点
- 正規化は、データの冗長性を最小限に抑えるのに役立ちます。
- 全体的なデータベース構成が強化されました。
- データベース内のデータの一貫性。
- より柔軟なデータベース設計。
- 関係の整合性の概念を強制します。
正規化のデメリット
- ユーザーが何を必要としているかを知る前にデータベースの構築を開始することはできません。
- 関係をより高次の正規形、つまり 4NF、5NF に正規化すると、パフォーマンスが低下します。
- より高度な関係を正常化するのは非常に時間がかかり、困難です。
- 不注意に分解するとデータベース設計が不適切になり、重大な問題が発生する可能性があります。