MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

第3正規形(3NF)


3NFとは何ですか?

正規化の3番目のステップは3NFです。

リレーションが2NFにあり、推移的な関数従属性がない場合にのみ、テーブルは3NFにあります

例を見てみましょう-

例(テーブルは3NFに違反しています)

Movie_ID
Listing_ID
Listing_Type
DVD_Price ($)
0089
007
コメディ
100
0090
003
アクション
150
0091
007
コメディ
100


上記の表は、推移的な機能依存性があるため、3NFには含まれていません-

Movie_ID-> Listing_ID
Listing_ID-> Listing_Type

したがって、 Movie_ID-> Listing_Type つまり、推移的な機能依存性です。

例(テーブルを3NFに変換)

3NFで形成するには、テーブルを分割し、推移的な関数従属性を削除する必要があります。

<映画>

Movie_ID
Listing_ID
DVD_Price ($)
0089
007
100
0090
003
150
0091
007
100

<リスト>

Listing_ID
Listing_Type
007
コメディ
003
アクション
007
コメディ

3NFのテーブルである結果をもう一度見てみましょう-

第3正規形(3NF)


  1. 第2正規形(2NF)

    2NFとは何ですか? 正規化の2番目のステップは2NFです。 リレーションが1NFにあり、すべてのルールを満たし、すべての非キー属性が主キーに完全に依存している場合にのみ、テーブルは2NFにあります。 第2正規形は、主キーへの部分的な依存関係を排除します。 例を見てみましょう- 例(テーブルは2NFに違反しています) StudentID ProjectID StudentName プロジェクト名 S89 P09 オリビア ジオロケーション S76 P07 Jacob クラスターの探索

  2. Djangoのフォームウィジェット

    この記事では、Djangoフォームでウィジェットを使用する方法を説明します。ウィジェットは、フロントエンドを改善するのに非常に役立ちます。ウィジェットは、Djangoフォーム、テキストエリア、入力、パスワード入力などからレンダリングされるhtml要素であり、すべてウィジェットです。 まず、Djangoプロジェクトとアプリを作成しましょう。 tutorial14という名前でプロジェクトを作成しました djangoFormWidgetという名前のアプリ 。 settings.pyにアプリを追加します プロジェクトのurls.py。にアプリのURLを含めます テンプレート、 home.