mysqlデータベース| 3つのパラダイム

3つのパラダイム

3つのパラダイム:Atomicity(細分化されていない)/一意の主キー(すべてのデータは主キーに依存します)/各列フィールドは、間接的な関係ではなく、主キーと直接的な関係を持っている必要があります

1.第一正規形(1NF)

データベーステーブルの各列は、分割できないアトミックデータアイテムである必要があります。
例えば:

img

上記の表では、「家族情報」列と「学校情報」列のどちらも原子性の要件を満たしていないため、最初の正規形を満たしていません。調整は次のとおりです。

img

調整後の各列は分割できないため、第一正規形(1NF)を満たしていることがわかります。

2.第2正規形(2NF)

1NFに基づいて、非コード属性は候補コードに完全に依存する必要があります(1NFに基づいて、メインコードへの非プライマリ属性の部​​分的な機能依存性が排除されます)

2番目のパラダイムでは、データベーステーブルの各列が、主キーの特定の部分(主に結合された主キー)だけでなく、主キーに関連していることを確認する必要があります。
例えば:

img

上図のような状況では、同じ注文に異なる商品が含まれている可能性があるため、主キーは「注文番号」と「商品番号」の組み合わせである必要があります。

ただし、商品数量、商品割引、商品価格はすべて「注文番号」と「商品番号」に関連していることがわかりますが、注文量と注文時間は「注文番号」と「商品番号」とは関係ありません。

これは、第2正規形の要件を満たしていません。調整は次のとおりであり、2つのテーブルに分割する必要があります。

img img

3.第3正規形(3NF)

2NFに基づいて、非プライマリ属性は他の非プライマリ属性に依存しません(2NFに基づいて推移的な依存関係を排除します)

3番目のパラダイムでは、データテーブルのデータの各列が主キーに直接関連しているが、間接的に関連していないことを確認する必要があります。
3.説明:

img

上記の表では、すべての属性が完全に生徒数に依存しているため、2番目のパラダイムを満たしていますが、「クラス教師の性別」と「クラス教師の年齢」は「クラス教師の名前」に直接依存しています。

主キー「学生ID」の代わりに、次の調整を行う必要があります。

img img

このようにして、第3正規形の要件が満たされました。

ps:上記の表の校長の名前を校長の先生の番号に変更すると、より正確で実際の状況に沿ったものになる可能性がありますが、理解できる限りです。

おすすめ

転載: blog.csdn.net/weixin_40597409/article/details/115269022
おすすめ