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

第5正規形(5NF)


5NF(Fifth Normal Form)は、プロジェクト結合通常形式とも呼ばれます。リレーションは、4NFの場合、第5正規形(5NF)であり、小さなテーブルへのロスレス分解はありません。

候補キーがその中のすべての結合依存関係を暗示している場合は、関係が5NFにあると見なすこともできます。

以下の関係は、正規化の第5正規形(5NF)に違反しています-

<従業員>

EmpName
EmpSkills
EmpJob (割り当てられた仕事)
David
Java
E145
ジョン
JavaScript
E146
Jamie
jQuery
E146
エマ
Java
E147

上記の関係は、次の3つの表に分解できます。したがって、5NF-にはありません。

EmpName
EmpSkills
David
Java
ジョン
JavaScript
Jamie
jQuery
エマ
Java

以下は、各従業員に割り当てられたジョブを表示するリレーションです-

EmpName
EmpJob
David
E145
ジョン
E146
Jamie
E146
エマ
E147

割り当てられた仕事に関連するスキルは次のとおりです-

EmpSkills
EmpJob
Java
E145
JavaScript
E146
jQuery
E146
Java
E147

参加の依存関係-

{(EmpName、EmpSkills)、(EmpName、EmpJob)、(EmpSkills、EmpJob)}

上記の関係には結合依存関係があるため、5NFには含まれていません。つまり、上記の3つの関係の結合関係は、元の関係 と同じです。 。


  1. 第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 上記の表は、推移的な機能依存性

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

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