DB設計関連 |
---|
◆ E-R図 E-R図とは、データ構造をモデル化する手法で、実体(Entity)と関連(Relationship)の2つの概念を用いて表現します。 過去問題では E-R図の描き方より、見方の方が分かっておく方が良いでしょう。 例として下の図の様に表があったとします。
教員コードと担当教員が同じ繋がり(関連)があるとします。下線部があるのはキー項目(ユニークキー)とします。 教員表の教員コードは重複してはいけないのに対して、生徒表は教員コードは重複して良い事になります。 すなわち、教員表は「1」に対して生徒表は「多」という事です。 これを E-R図 で表すと下のようになります。 注意点は、矢印が刺さっている方が「多」になります。 問題では、矢印ではなく「多」の方に「*」などで表現する場合があるので注意しましょう。 ◆ 正規化 データの正規化とは、データの冗長性(重複)をなくしてデータの属性間の関連を単純にする(要はまとめる)事です。 正規化をする事によって、データ追加、更新、削除を行っても、データの一貫性、整合性が保てるようになります。 正規化とは以下の様な形態があります。
・・・と言葉で書いても分かりませんので、以下なような感じだと思います。 ●非正規形 正規化されていない状態の事です。 下のような感じのデータの事を言います。
上のように1つのフィールドの中に、複数の値が入ってたりします。 繰り返し属性とは、下の様な感じだと思います。
要は、科目とか教員とか、似たような属性が繰り返し使われている事を指します。 ●第1正規形 上記のデータを第1正規形にしましょう。 フィールドの値に複数の値を含んだり、繰り返し属性を排除した物なので、以下の様になれば良いと思います。 (ここで補足、生徒名、担当教員の名称は同姓同名が居ると問題なので、生徒コード、教員コードという項目を新しく追加させてもらいます。)
この時、生徒名と担当教員が定まると、レコードが決まります。この2つを主キーといいます。 また、担当教員が分かると受講科目が分かると思います。この関係を関数従属と言います。 残りの受講科目ですが、主キーが決まらないとデータは定まりません。こういう項目を完全関数従属と言います。 ●第2正規形 第2正規形は、主キーに関数従属している項目と、主キーの一部に関数従属している項目を分離した表。 ・・・とあるので主キーの一部に関数従属といえば、おそらく下の様な関係でないかと思います。 ・生徒コードが決まれば生徒名が決まる ・教員コードが決まれば教員名と担当科目が決まる そして、主キーに関数従属している項目は 「受講科目」 なので、少なくとも生徒マスターと教員マスターというのが作れて分離できるはずです。
●第3正規形 主キー以外の項目に関数従属している項目を分離した表。となっています。 ですが、ちょっと今までの例だと該当がないので、教員マスターに「担当科目」が「科目コードと「科目名」の2つだったします。 これをまた分離してしまおうと言う事です。(主キーは生徒コードと教員コードなので、主キー以外の項目に関数従属している項目となる)
◆ 参照制約 参照制約とは、上記の表を例にしますと教員表の科目コードから、科目表の科目コードへ参照制約をかけるとします。 すると教員表でデータを登録する時、科目コードは科目表に存在するコードしか登録できないようになります。 要は教員表の科目コードが一致するしていないといけなくなる制約の事をいいます。 また逆に科目表から1行削除しようとした時、その科目コードが教員表に存在したらエラーとなります。 (教員表のデータがが一致しなくなるため) |
TOPページに戻る |