第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のテーブルである結果をもう一度見てみましょう-
-
第2正規形(2NF)
2NFとは何ですか? 正規化の2番目のステップは2NFです。 リレーションが1NFにあり、すべてのルールを満たし、すべての非キー属性が主キーに完全に依存している場合にのみ、テーブルは2NFにあります。 第2正規形は、主キーへの部分的な依存関係を排除します。 例を見てみましょう- 例(テーブルは2NFに違反しています) StudentID ProjectID StudentName プロジェクト名 S89 P09 オリビア ジオロケーション S76 P07 Jacob クラスターの探索
-
Djangoのフォームウィジェット
この記事では、Djangoフォームでウィジェットを使用する方法を説明します。ウィジェットは、フロントエンドを改善するのに非常に役立ちます。ウィジェットは、Djangoフォーム、テキストエリア、入力、パスワード入力などからレンダリングされるhtml要素であり、すべてウィジェットです。 まず、Djangoプロジェクトとアプリを作成しましょう。 tutorial14という名前でプロジェクトを作成しました djangoFormWidgetという名前のアプリ 。 settings.pyにアプリを追加します プロジェクトのurls.py。にアプリのURLを含めます テンプレート、 home.