データベース正規化の基本

データベースをしばらく使用している場合は、正規化という用語を聞いたことがあるでしょう。 おそらく誰かがあなたに「そのデータベースは正規化されていますか?」と尋ねました。 または「それは BCNF? "正規化は、多くの場合、学者だけが時間を割ける贅沢と見なされます。 ただし、正規化の原則を理解し、それを日常のデータベース設計タスクに適用することはそれほど複雑ではなく、DBMSのパフォーマンスを大幅に向上させることができます。

この記事では、正規化の概念を紹介し、最も一般的な正規形について簡単に説明します。

正規化とは何ですか?

正規化は、データベース内のデータを効率的に整理するプロセスです。 正規化プロセスには2つの目標があります。冗長なデータを排除する(たとえば、同じデータを複数のテーブルに格納する)ことと、確実にすることです。 データの依存関係 意味があります(関連データのみをテーブルに格納します)。 これらは両方とも、データベースが消費するスペースの量を減らし、データが論理的に格納されることを保証するため、価値のある目標です。

通常の形式

データベースコミュニティは、データベースが正規化されていることを確認するための一連のガイドラインを作成しました。 これらは正規形と呼ばれ、1(正規化の最も低い形式、最初の正規形または1NFと呼ばれる)から5(5番目の正規形または5NF)まで番号が付けられます。 実際のアプリケーションでは、1NF、2NF、および3NFと、ときどき4NFが表示されることがよくあります。 5番目の通常の形式はめったに見られないため、この記事では説明しません。

通常の形式について説明する前に、それらがガイドラインであり、ガイドラインにすぎないことを指摘することが重要です。 場合によっては、実際のビジネス要件を満たすために、それらから逸脱する必要があります。 ただし、変動が発生した場合は、システムに生じる可能性のある影響を評価し、潜在的な不整合を説明することが不可欠です。 そうは言っても、正規形を調べてみましょう。

第一正規形(1NF)

第一正規形(1NF)は、組織化されたデータベースの基本的なルールを設定します。

  • 同じテーブルから重複する列を削除します。
  • 関連データのグループごとに個別のテーブルを作成し、一意の列または列のセットで各行を識別します( 主キー).

第2正規形(2NF)

2番目の正規形(2NF)は、重複データを削除するという概念にさらに対処します。

  • 第一正規形のすべての要件を満たします。
  • テーブルの複数の行に適用されるデータのサブセットを削除し、それらを別々のテーブルに配置します。
  • を使用して、これらの新しいテーブルとその前のテーブルの間に関係を作成します。 外部キー.

第3正規形(3NF)

3番目の正規形(3NF)は、さらに1つの重要なステップに進みます。

  • 2番目の正規形のすべての要件を満たします。
  • 主キーに依存しない列を削除します。

ボイスコッド正規形(BCNFまたは3.5NF)

「3番目と半分(3.5)の正規形」とも呼ばれるボイスコッド正規形には、もう1つの要件が追加されます。

  • 3番目の正規形のすべての要件を満たします。
  • すべての行列式は 候補キー.

第4正規形(4NF)

最後に、4番目の正規形(4NF)には、次の1つの追加要件があります。

  • 3番目の正規形のすべての要件を満たします。
  • 関係がない場合、関係は4NFにあります 多値従属性.

これらの正規化ガイドラインは累積的であることを忘れないでください。 データベースを2NFにするには、最初に1NFデータベースのすべての基準を満たす必要があります。

正規化する必要がありますか?

データベースの正規化は多くの場合良い考えですが、そうではありません 絶対要件. 正規化の規則に故意に違反することが良い習慣である場合があります。

データベースが正規化されていることを確認したい場合は、データベースをに配置する方法を学ぶことから始めます。 第一正規形.