正規化と非正規化の違い

Anonim

正規化と非正規化

の関係データベースは関係(関連表)で構成されます。テーブルが2つの大きな(つまり、1つのテーブルのカラムが多すぎる)場合、データベースの異常が発生する可能性があります。テーブルが2つ小さい場合(つまり、データベースが多数の小さなテーブルで構成されている場合)、クエリには非効率です。データベースのパフォーマンスを最適化するために使用される2つのプロセスです。正規化では、データテーブルに存在する冗長性が最小限に抑えられます。正規化の逆は、冗長なデータまたはグループデータを追加します。

< 正規化とは

正規化は、リレーショナルデータベースのデータに存在する冗長性を最小限に抑えるために実行されるプロセスです。 )これらの小さなテーブルは関連します互いの関係を明確に定義することができます。十分に正規化されたデータベースでは、データの変更または変更には、単一の表のみを変更する必要があります。第1正規形(1NF)、第2正規形(2NF)、第3正規形(3NF)は、Edgar F. Coddによって導入されました。 Boyce-Codd Normal Form(BCNF)は1974年にCoddとRaymond F. Boyceによって導入されました。より高い標準形(4NF、5NF、6NF)が定義されていますが、まれに使用されています。

<! 1NFに準拠するテーブルは、実際にリレーションを表します(つまり、リピートするレコードは含まれません)。また、リレーショナル・アトリビュートのアトリビュート(つまり、すべてのアトリビュート原子値を持つ必要があります)。表が2NFに従うためには、それは1NFに従うべきであり、任意の候補キーの一部ではない属性(すなわち、非素因数属性)は、表の候補キーのいずれかに完全に依存すべきである。 Coddの定義によれば、テーブルは3NF内にあると言われます。そのテーブルが2番目の正規形(2NF)にあれば、テーブル内のすべての属性は候補キーに属しません。そのテーブルの候補キー。 BCNF(3. 5NFとしても知られている)は、3NFによって対処されないいくつかの異常を捕捉する。

非正規化とは何ですか?非正規化は、正規化プロセスの逆のプロセスである。非正規化は、冗長データまたはグループ化データを追加してパフォーマンスを最適化することによって機能します。冗長データを追加することは非生産的であるとはいえ、非正規化は、リレーショナルデータベースソフトウェアの欠点を克服するための非常に重要なプロセスです。これは、データベースシステムの実際の物理的実装に応じて、いくつかのリレーションシップ(正規化の結果)を結合してクエリに結果を生成することが時々遅くなることがあるためです。

正規化と非正規化の違いは何ですか?正規化と非正規化は全く反対の2つのプロセスである。

- 正規化は、より大きなテーブルをより小さなテーブルに分割して冗長データを削減するプロセスであり、非正規化は、冗長データを追加してパフォーマンスを最適化するプロセスです。

- データベースの異常を防ぐために正規化が行われる。非正規化は、通常、データベースの読み取り性能を向上させるために実行されるが、非正規化に使用される追加の制約のために、書き込み(すなわち、挿入、更新および削除操作)が遅くなる可能性がある。したがって、正規化されていないデータベースは、正規化されたデータベースよりも書き込みパフォーマンスが悪い可能性があります。

- 「痛むまで正規化し、正常に機能するまで非正規化する」ことをお勧めします。