S -> T と書き、列のセット S が機能的に別のセット T を決定すると言います。最初の各サブ行が常に 2 番目の同じサブ行と共に表示される場合、テーブル値の S -> T。制約ごとに発生する可能性のあるすべての値で S -> T の場合、テーブル変数/スキーマで S -> T。
S を行列式集合、T を決定集合と呼びます。S -> T を FD (機能依存性) と呼びます。S が T のスーパーセットであるとき、それは自明な FD であると言います。S が {A} のとき、A -> T と言い、T が {A} のとき、S -> A と言う。
スーパーキーは、行を一意に識別する一連の列です。これは、すべての属性を機能的に決定する場合に当てはまります。セットの適切なサブセットまたはスーパーセットは、それと等しくないものです。CK (候補キー) は、適切なスーパーキーを含まないスーパーキーです。CK を PK (主キー) として選択できます。列が CK にある場合、その列は素数です。
あなたがリンクしている答えを理解するのに十分です:
2NFと3NFの違いはこれです。何らかの関係が、A->B という形式の自明ではない機能依存関係を満たすとします。ここで、B は非素数属性です。
A がスーパーキーではなく、候補キーの適切なサブセットである場合、2NF に違反します。
A がスーパーキーでない場合、3NF に違反します
引用は、そのようなFDが存在する場合、NFは「違反される」と述べています。また、そのような FD が存在する場合にのみ違反します。
FD S -> T は、S の適切な部分集合が機能的にも T を決定する場合、部分的です。それ以外の場合はいっぱいです。これには CK は含まれないことに注意してください。すべての非プライム列が完全に機能的にすべての CK に依存している場合、テーブルは 2NF にあります。
S -> T は、S -> X および X -> T であり、X -> S ではなく X = T ではない X がある場合に推移的です。これは CK を含まないことに注意してください。すべての非プライム列がすべての CK に非推移的に依存している場合、テーブルは 3NF にあります。
(引用とは異なる 2NF & 3NF の別の定義に注意してください。)