データベース パラダイムの第 1 正規形、第 2 正規形、および第 3 正規形の違いは次のとおりです: 1. 第 1 正規形は、重複する列がないことを意味します; 2. 第 2 正規形は、属性が完全に依存することを意味します。主キー; 3. 第 3 正規形は、属性が他の非主属性に依存しないことを意味します。
#このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
第一正規形 (1NF) 重複列なし
いわゆる第一正規形 (1NF) は、データベース テーブルの各列が分割できないことを意味します。基本データ項目は同じ列に複数の値を持つことはできません。つまり、エンティティ内の属性は複数の値や重複した属性を持つことはできません。繰り返し属性が表示される場合は、新しいエンティティを定義する必要がある場合があります。新しいエンティティは繰り返し属性で構成されます。新しいエンティティと元のエンティティの間には 1 対多の関係があります。第 1 正規形 (1NF) では、テーブルの各行には 1 つのインスタンスのみに関する情報が含まれます。つまり、第一正規形は重複のない列です。
1NF は次のように定義されます: 1NF に準拠する関係内のすべての属性は細分化できません
次の表に示す状況は 1NF の要件を満たしていません:
注: リレーショナル データベースでは、第一正規形 (1NF) がリレーショナル モデルの基本要件です。第一正規形 (1NF) を満たさないデータベースはリレーショナル データベースではありません。
第 2 正規形 (2NF) 属性は主キーに完全に依存します
第 2 正規形 (2NF) は第 1 正規形 (1NF) に基づいて確立されますつまり、第 2 正規形 (2NF) を満たすには、まず第 1 正規形 (1NF) を満たす必要があります。第 2 正規形 (2NF) では、データベース テーブル内の各インスタンスまたは行が一意に区別できる必要があります。差別化を実現するには、通常、各インスタンスの一意の ID を格納する列をテーブルに追加する必要があります。例えば、従業員情報テーブルに従業員番号(emp_id)列を追加すると、各従業員の従業員番号は一意となるため、各従業員を一意に識別することができます。この一意の属性列は、主キー、主キー、主キーと呼ばれます。
第 2 正規形 (2NF) では、エンティティの属性が主キーに完全に依存していることが必要です。いわゆる完全な依存とは、主キーの一部にのみ依存する属性が存在できないことを意味します。それが存在する場合は、この属性と主キーのこの部分を分離して新しいエンティティを形成する必要があります。新しいエンティティと元のエンティティは 1 対多の関係です。差別化を実現するには、通常、各インスタンスの一意の ID を格納する列をテーブルに追加する必要があります。つまり、第 2 正規形は、属性が主キーに完全に依存しているということです。
第 3 正規形 (3NF)
第 3 正規形 (3NF) を満たすには、まず第 2 正規形 (2NF) を満たす必要があります。つまり、第 3 正規形 (3NF) では、データベース テーブルには、他のテーブルに既に含まれている非主キー情報が含まれていないことが必要です。
例えば、部門情報テーブルがあり、各部門には、部門番号(dept_id)、部門名、部門プロフィールなどの情報が含まれています。従業員情報テーブルに部門番号がリストされた後は、部門名、部門プロフィール、およびその他の部門関連情報を従業員情報テーブルに追加することはできません。部門情報テーブルが存在しない場合は、第 3 正規形 (3NF) に従って構築する必要があります。そうしないと、データの冗長性が高くなります。
つまり、第 3 正規形は、属性が他の非主属性に依存しないということです。言い換えれば、コード上に非プライマリ属性の伝達関数依存性がある場合、それは 3NF の要件を満たしません。
例の説明:
第一正規形
リレーショナル スキーマ R のすべての属性が分割できない基本データ項目である場合、R∈1NF (つまり、R は以下に準拠します)最初のパラダイム)。
2 つのポイント:
1. 各フィールドに格納できるのは 1 つの値のみです
2. 各レコードは一意の主キーによって識別される必要があります
Second正規形
関係パターン R∈1NF (つまり、R が第 1 正規形に準拠する) で、各非主属性が R のコードに完全に依存する場合、R∈2NF (つまり、 R は、第 1 正規形、第 2 正規形) に準拠します。
第 3 正規形
関係パターン R∈3NF (つまり、R が第 3 正規形に準拠する) の場合、各非主属性はコードに部分的に依存することも、推移的に依存することもありません。コード上で。
関連する学習に関する推奨事項:
mysql チュートリアル (ビデオ)
以上が第一、第二、第三のデータベースパラダイムの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。