データベースの原理と応用 (13) ER図とリレーショナルモデル

データベース設計のプロセス

        データ分析 -> データモデリング -> リレーショナルデータベーススキーマ -> リレーショナルデータベース管理

        ユーザー要件→概念モデル(E/Rモデルl)→論理モデル(3層構造)

        現実世界 -> 情報世界 -> 機械世界

コンセプト設計ツール ER図

        ER 図の構成要素:エンティティ、属性、接続(関係ではなく)

        概念設計段階でよく使われるモデル:エンティティ関係モデル(ERモデル - 概念モデルに属する)

        ER図におけるコンポーネントの表現

コンテンツ グラフィックス 単語の属性
属性 楕円形のフレーム 名詞
実在物 長方形のボックス 名詞
接続 ダイヤモンドボックス 動詞

        エンティティ識別子 (主キー)、属性には下線が付けられます

        外部キーはチルダとして識別されます

        連絡先の分類

                一方向接続、双方向接続、三方向接続

        ERモデル設計の手順

                1.最初にローカル ER モデルを設計します

                2. 各ローカル ER モデルをグローバル ER モデルに合成します。

                3. グローバル ER モデルを最適化して、最終的な ER モデル (概念モデル)を取得します。

                詳細を計画する

                属性:             分割不可

                                        エンティティと属性間の関係は1:nのみです

                                        異なるエンティティ タイプのプロパティ間に直接の関係があってはなりません

すべてのエンティティには少なくとも1 つのエンティティ識別子が                必要です

         ER 図をリレーショナル スキーマ セットに変換

                ステップ 1 (エンティティ変換)、各エンティティをリレーショナル スキーマに変換します (属性はリレーショナル スキーマの属性に対応しエンティティ識別子はリレーショナル スキーマのキーです)。

                 ステップ2(変換連絡先)

                        1:1 接続:別のエンティティのコードと接続タイプ属性を任意のエンティティに追加します (任意に追加)

                        1:n 接続: 1 端エンティティのキ​​ーと接続属性をn セグメント エンティティの関係モードに追加します (マルチパーティ追加)

                        n:m 接続: 接続をリレーショナル モードに変換し、その属性は両端のエンティティのキ​​ー + 接続の種類になります (キーは両端のエンティティ キーの組み合わせです)。

                        例1

         ERモデルを用いた論理設計の手順

                1. リレーショナル スキーマの初期セットをエクスポートする

                2. 標準化された処理

                        リレーショナル スキーマを 1 つずつ調べます

仕様要件                        を満たしているかどうかの判断

                3. モデルの評価

                4. 修正

                5. サブパターンの設計

論理設計ツール

        論理設計のツール - 正規化理論

        データ依存性

                リレーショナルスキーマの形式化

                        R(U,D,DOM,F)

                        R: リレーション名 U: 属性名のコレクション D: DOM のすべてのドメイン: 画像のコレクション

                        F: 依存関係のコレクション

                        常用:        R(U)        R(U,F)

                データ依存関係: 属性値間の相互関係を定義します (主に値の同等性に反映されます)

                        過度な依存により、データの冗長性が高すぎる、更新例外、挿入例外、削除例外が発生します。

                        解決策:リレーショナル スキーマを分解して、不適切なデータの依存関係を排除します。

                依存関係の表現: Sno -> Sdept: Sno が Sdept を決定します。

                                              (Sno,Cname) ->グレード: Sno と Cname が共同でグ​​レードを決定します

                        F={Sno->Sdept,Sdept->Mname,(Sno​​,Cname)->Grade}

                 機能的な依存関係

                                X->Y: X 関数は Y を決定しY 関数は X に依存しX は決定属性のセットです

                                逆は必ずしも真ではない

自明な関数の依存関係: X->Y、および Y は X (Sno,Cno)->Sno                                        に属します   

重要な関数の依存関係: X->Y、および Y は X (Sno,Cno)->Grade                                        に属さない 

                                        完全な関数依存関係: X->Y、ただし X のサブセットは  Y の1 対 1 対応を決定できません。

                                        部分的な関数依存関係: X->Y ですが、Y は X に完全には依存せず、          複数の属性セットが共同で決定されます。

                                        伝達関数の依存関係: X->Y、Y->Z、および Y は X に属さず、Y は X を決定できません

                        コード

                                候補キー: R(U,F) に属性 K があり、K がU を完全に決定する場合、K は R の候補キーです。

                                        候補キーはタプルを一意に識別できる

                                主コード: 候補コードが複数ある場合は、そのうちの 1 つを主コードとして選択します

                               キーと外部キーを組み合わせて、リレーショナル接続を表す手段を提供します

        パラダイム

                特定のレベルに準拠したリレーショナル スキーマのコレクション

                正規形の種類:        1NF、2NF、3NF、BCNF、4NF、5NF

                1NF

                        リレーショナル スキーマの属性は分離できなくなりました

                        1NF はリレーショナル モデル最も基本的な要件です

                2NF

プライマリ以外の                        各属性はコードに完全に依存します

                3NF

コード上の非プライマリ属性の推移的な依存関係                        はありません。

                        射影分解

                BCNF

                        BCNFは3NFを修飾したものです

                        X->Y で、Y が X に属さない場合、X には候補コードが含まれている必要があります (左側には候補コードが含まれます) 。

                        特徴: 1.非メイン属性は候補コードに完全に依存します。

                                            2. main 属性は、それを含まない候補キーに完全に依存します。

                                            3. NAND コードの属性セットに完全に依存する属性はない

                        R が 3NF に属し、R の候補コードが 1 つだけの場合、R は BCNF に属している必要があります。

                        R が BCNF に属する場合、関数の依存関係のカテゴリにおいて、スキーマの完全な分解が実現され、最高の仕様の標準化が達成されます。

         関係の分解

                分解された関係が自然結合を通じて元の関係を回復できる場合、データの損失はありません。

                ロスレス接続: 分解された結果は、自然な接続による元の結果と等しくなります。情報の損失がないことを保証できるのは、ロスレス接続による分解のみです。

ロスレス接続では、分解されると元の関係の                        機能依存関係が失われるため、挿入例外、削除例外、変更例外、データ冗長性などの問題を解決できない場合があります。

                機能の依存関係を維持するスキーマ分解

                リレーショナル スキーマの分解の判断: 1. 損失のない接続がある -> 情報の損失はない

                                                                    2. 機能の依存関係を維持する -> 例外を軽減/解決する

おすすめ

転載: blog.csdn.net/weixin_37878740/article/details/121569026