ボイス-コッド正規形(BCNF)
BCNFは、第3正規形(3NF)の拡張であり、3NFよりもわずかに強力です。
P-> Qが自明な関数従属性であり、PがRのスーパーキーである場合、関係RはBCNFにあります。
関係がBCNFにある場合、それは関数従属性に基づく冗長性が削除されていることを意味しますが、いくつかの冗長性はまだ存在しています。
例を見てみましょう-
グラウンド | Begin_Time | End_Time | パッケージ |
G01 | 07:00 | 09:00 | ゴールド |
G01 | 10:00 | 12:00 | ゴールド |
G01 | 10:30 | 11:00 | ブロンズ |
G02 | 10:15 | 11:15 | シルバー |
G02 | 08:00 | 09:00 | シルバー |
上記の関係は1NF、2NF、3NFにありますが、BCNFにはありません。これが理由です-
機能従属性{パッケージ->グラウンド}
Groundが依存する行列式属性Packageは、候補キーでも候補キーのスーパーセットでもありません。
<パッケージ>
パッケージ | グラウンド |
ゴールド | G01 |
シルバー | G02 |
ブロンズ | G01 |
グラウンド | Begin_Time | End_Time |
G01 | 07:00 | 09:00 |
G01 | 10:00 | 12:00 |
G01 | 10:30 | 11:00 |
G02 | 10:15 | 11:15 |
G02 | 08:00 | 09:00 |
現在、上記のテーブルはBCNFにあります。
<パッケージ>の候補キー テーブルはパッケージとグラウンドです
-
第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 上記の表は、推移的な機能依存性
-
Djangoのフォームウィジェット
この記事では、Djangoフォームでウィジェットを使用する方法を説明します。ウィジェットは、フロントエンドを改善するのに非常に役立ちます。ウィジェットは、Djangoフォーム、テキストエリア、入力、パスワード入力などからレンダリングされるhtml要素であり、すべてウィジェットです。 まず、Djangoプロジェクトとアプリを作成しましょう。 tutorial14という名前でプロジェクトを作成しました djangoFormWidgetという名前のアプリ 。 settings.pyにアプリを追加します プロジェクトのurls.py。にアプリのURLを含めます テンプレート、 home.