データベースの設計
要点と定義
データベースの設計では、管理する対象と対象間の関係を整理し、データを適切な表に分けます。E-R図は、エンティティ(管理対象となる実体)と、その間の関係を表す図です。顧客と注文、商品と注文のように、どの対象がどう結び付くかを整理するときに使います。データベース設計でデータの関連を図示する役割が問われた問題では、この知識が正答の判断に直結します。
関係データベースの正規化は、表の構造を整理し、データの重複や矛盾を抑えて維持管理しやすくすることです。重複した情報があると、一部だけ更新して値が食い違う、削除によって別の情報まで失う、といった問題が起きやすくなります。正規化の目的や効果を問う問題では、重複・矛盾の抑制と管理のしやすさが判断の軸です。
主キーは、表の各行を一意に識別する項目です。主キーの値はNULLにできず、複数の項目の組合せを主キーにすることもできます。外部キーは、別の表の行を参照する項目です。外部キーは一つの表に複数設定でき、複数項目を組み合わせることもできます。外部キーの値は参照先に対応していれば複数行で重複できます。これらの性質を選ぶ問題では、主キーが行を識別し、外部キーが表どうしを結ぶという役割の違いが正答判断に必要です。
適用条件と例
例えば、顧客の番号・氏名・住所を「顧客」表、商品の番号・名称・単価を「商品」表に置き、注文ごとの顧客番号・商品番号・個数・日付を「注文」表に置きます。顧客番号と商品番号は、それぞれ顧客表・商品表の主キーであり、注文表では参照用の外部キーです。注文表に顧客名や商品名を繰り返し記録せず、番号で参照すれば、名前が重複しても対象を区別できます。情報の種類ごとに表を分け、主キーと外部キーで結ぶ判断が必要だった問題です。
仕入情報を「仕入」と「商品」に分ける場合、仕入表には仕入番号や個数などの仕入ごとの情報と商品番号を置き、商品表には商品番号と商品名などの商品情報を置きます。商品番号は商品表で商品を識別し、仕入表から商品を参照するため、両表に必要です。社員と受験記録を分ける場合も同様に、社員表に社員ID・氏名・生年月日、受験表に社員ID・試験種別・試験日・合否を置けば、同姓同名でも社員IDで受験者を結び付けられます。分割後に共有すべき識別項目や、基本情報と記録ごとの情報の置き場所を問う問題で、この考え方が必要です。
主キーは単独の番号で設定する場合だけでなく、複数項目の組合せで一意になる場合にも使えます。例えば、履修表で「学生番号」と「科目番号」の組合せが各行を一意にするなら、二つを合わせて主キーにできます。外部キーも、参照先の複合主キーに対応する複数項目を組み合わせて設定できます。また、注文表が顧客と商品を参照するように、一つの表に複数の外部キーを設定できます。したがって、主キーは必ず一項目、外部キーは一表に一つ、と決めつけないことが大切です。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む