1. デザイン パラダイム
質問: パラダイム デザインとは何ですか?なぜ非正規化デザインが必要なのでしょうか?
英語からの通常の
からの通常。開発プロセス中に適切なデータベースの論理関係を設計するには、特定の制約を満たす必要があります。この制約により開発パラダイムが形成され、開発パラダイムは複数のレベルに分割され、各レベルは前のレベルよりも厳しくなります。
これらのパラダイムを満たすことで、理論的にはデータベースの論理構造をより簡潔かつ明確にすることができます。
#次の 4 つの一般的な正規形:
- #第一正規形 (1NF)
- 第 2 正規形 (2NF)
- 第 3 正規形 (3NF)
- 第 4 正規形 (BCNF)
1. 第一正規形 (1NF)
- 各列は細分化できない属性値であり、各列の原子性が保証されます。
- 2 つの列の属性は近いか、類似しているか、同じです。冗長なデータが生成されないように、同じ属性を持つ列をマージしてください。
- 列単一の属性を持つテーブルは基本的なデータ型で構成されます;
- 設計されたテーブルはすべて単純な 2 次元テーブルです。
#例: ユーザーの配送先住所
カウンター例:
名前
電話番号 |
住所 |
|
张三
138000000 |
北京-朝陽区-九仙橋街 |
|
良い例:
##名前
電話番号 | province | 市 | 区 | 街 |
| 张三
138000000 | - | 北京市 | 朝陽区 | 九仙橋街 |
|
概要: 各列は原子値です。細分化できないもの (住所や都道府県、市区町村など、列を細分化することはできません)
2. 第 2 正規形 (2NF)
第 2 正規形 (2NF) は、第 1 正規形に基づいて構築されます。
-
第 2 正規形 (2NF) では、エンティティの属性が主キーとの関連付けに完全に依存していることが必要です。いわゆる補完依存関係とは、存在できない部分属性とキーワードに依存して存在する部分属性を指します。存在する場合は、この属性とキーワード部分を分離して新しいエンティティを形成する必要があります。新しいエンティティは 1 対-元のエンティティとの多くの関係。
-
## 反例:
##製品 ID
ユーザー ID
商品名 | ユーザー名 | 購入数量 | 注文時間 |
| 100 | 1
電子レンジ A102 | 王马子 | 1 | 2022-08-08 |
|
| 良い例:
注文フォーム
製品ID
ユーザーID
購入数量 | 注文時刻 |
| 100 | 1
1 | 2022-08-08 |
| 商品一覧 |
商品ID
商品名
| 100 | 電子レンジA102
|
ユーザー テーブル |
ユーザー ID
ユーザー名
| 1 | 王 Mazi
|
| 概要: 主キーに対する列の部分的な機能依存を排除します (部分的なキーの場合)。複合主キーへの依存性 (例: 製品 ID ユーザー ID が主キーであり、ユーザー名、製品名などの主キーに依存するフィールドがいくつかあります)
3. 3 番目正規形 (3NF)
第 3 正規形 (3NF) を満たすには、第 2 正規形 (2NF) を満たす必要があります。
- 第 3 正規形 (3NF) では、他のテーブルにすでに含まれている非主キー キーワード情報がデータ テーブルに含まれていないことが必要です。つまり、データは推移的な関係を持つことができません。つまり、各属性は主キーと間接的な関係ではなく直接的な関係がある必要があります。
- # 反例:
##注文 IDユーザー ID
ProductID
製品名 | 製品メーカー |
| 1 | 1 | 100
電子レンジ A102 | 美的 |
| 2 | 2 | 200
インバーターエアコン B101 | Haier |
|
| 良い例: 注文テーブル |
注文 ID ユーザーID
製品ID
| 1 | 1##100 |
2 |
2 |
200 |
| 製品情報シート |
|
商品ID
商品名
製品メーカー
100 |
電子レンジ A102 |
ミデア |
##200 | インバーターエアコン B101 | ハイアール |
概要: 非主キーに対するフィールドの推移的な依存を排除します (つまり、注文内の製品名、製品アドレスなどの冗長な情報をキャンセルする必要があります)。
2. 正規化設計
実際のデータベース仕様の定義という点では非常に厳密であり、例えば第 2 正規形 (2NF) の定義は「ある関係 R 項が第 1 正規形であり、各非主属性が候補コードに完全に機能的に依存している場合、関係 R は第 2 正規形に属します。
最適な設計とは、標準化された理論に厳密に従った設計ではなく、特定のビジネス シナリオに基づいて継続的に実践および要約できる最適な設計ソリューションです。
3. 反標準化設計
いわゆる反標準化設計は、標準化を目的としています。 1. パフォーマンスと読み取り効率のために、データベース パラダイム設計の要件に適切に違反します。 3. クエリのパフォーマンスのために、一部 (少量) の冗長データの存在が許可されます。言い換えれば、非正規化設計とは、空間と時間を直接交換することです。
##ID
製品名 |
商品価格 | ##商品説明##商品画像アドレス |
| 1#電子レンジ A101 |
$100.99
食品を加熱できる電子レンジ |
tupian.baidu.com |
|
|
| #分類情報
##1
商品説明
商品画像アドレス |
##1 |
1 |
電化製品 |
$100.99 |
食品を加熱できる電子レンジ |
tupian.baidu.com
|
# |
以上がMySQLデータベースパラダイム設計手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。