データの正規化(正規化) - 下りデータの冗長性

良好な関係を検証するには?

それは各属性(列)に一度だけ表示されるように、外部キーの役割の全部または一部として、これらの属性がない限り、冗長性を最小限に抑えます。

 

なぜこれが良いデザインではないでしょうか? 

冗長!

 

冗長性は、例外が発生します:

いくつかの属性情報がない場合、およびプロパティがnullではない、原因が挿入できないことができます。1.例外を挿入します。

例えば、彼は新しい講師を雇った、部門がlecID講師を生成していない、あなたは、フォームに講師につながる情報を挿入することはできません

 

2.異常削除:ちょうどメッセージを削除しても関連する追加の情報を削除したいです。

2人のだけ引退講師の学部は、情報の講師は、データベース2年から削除された場合は、関連する情報のDEPTも不足しています

 

3.アップデート異常:記録が、他の複数のレコードを更新する関連する必要性を更新します。

電話システムを更新した場合、deptPhoneを交換し、すべてのテーブルは、更新deptPhone関連付けられている必要があります

 

従属関数(関数従属)

関数Xと同様= Y 2    、X = 2、Y = 4に決定することができる場合に、しかし場合4 Y等しい、X = 2(5月に等しい-2)を決定することができません

すなわち、もし存在X->のY関係R(機能的依存関係が、XがYに決定される)、T1がある[X] = T2 [X](両方として)決定することができるT1 [Y] = T2 [Y] (両方のB) 

 

完全に機能従属性 X→Y場合Xは、Yは、プロパティまたはプロパティグループのテーブルであり、Xは任意の適切なサブセット(プロパティグループXは、その後、複数のプロパティが含まれている場合)、X→Yが保持している、我々は完全に機能Yを言いますそれはX.に依存します

たとえば、次のようにlectID - > deptCode

lectIDはdeptCodeを決定することができます

 

パート関数従属性 Xは、YがX→Y場合は、テーブルの属性または属性の集合であり、かつ(属性グループXは、その後、複数の属性が含まれている場合)Xがサブセットに存在している、X→Yは、保持しているし、我々は、Y部分の機能が依存呼び出しますX.で

たとえば、次のようにlectID、名前 - > deptCode

これは、キーの組み合わせの(lectID、名)見ることができdeptCodeを決定することができますが、lectIDキーの組み合わせの一部はDEPTCODEを判定することができます

 

最初のパラダイム(1NF、第1正規形):離れた列

概要
1.テーブルは、各行に一意であり、カラムは複数の値の任意の行が含まれていない場合、それは1NFを満たします。1nFのテーブル自体との間の関係が満たされているので、しかし、テーブルのために、実際の標準化プロセスは、第二のパラダイムから始まります。

2.データは、実際の使用では1NFを満たさなければならないことを確実にするために、無列(カラム)の二次分割(原子)

3. 1NFメインライン処理大きな粒子(行)

4.まだ4つの質問があります:挿入異常、異常削除、更新異常、データの冗長性

 

第二のパラダイム(2NF、第2正規形):コードの非一次性の除去部分は、関数依存

 

概要

問題の主キー(複合主キー)に依存する部分1.ソリューションカラム(列)

実際には2、ほとんど複合主キーは、完全に第二のパラダイムの違反を回避することが可能ではありません

3.挿入異常やデータの冗長性の問題が改善しているが、それでも、異常と更新異常を削除するには、まだあります。

 

 

第三のパラダイム(3NF、第3正規形):コードの非一次性の除去伝達関数依存

 

ボイス・コッド范式(BCNF、ボイス・コッド正規形)

 

おすすめ

転載: www.cnblogs.com/liuliu5151/p/10947389.html