平成25年度 春期 午前Ⅱ 問3
データベース設計
多対多の対応を表す方策
データモデリングの過程で,二つのエンティティ間に多対多の対応が生じた。これを関係データベース上に実装する場合,二つのエンティティを表として定義した上で,多対多の対応を表す方策はどれか。
- アそれぞれの表の主キーに対して明示的にインデックスを定義する。
- イそれぞれの表の主キーへの部分関数従属性を排除するように表を分解する。
- ウそれぞれの表の属性間の推移的な関数従属性を排除するように表を分解する。
- エそれぞれの表を参照する外部キーの組合せを主キーの一部とする表を新たに定義する。
答えと解説を見る
✓ これが正解エそれぞれの表を参照する外部キーの組合せを主キーの一部とする表を新たに定義する。
解説
両方の表を参照する外部キーの組を主キーにした表を新たに作ります。
関係データベースの表の1行は、外部キーで他の表の1行しか指し示せません。そのため多対多の対応は、二つの表のどちらかに列を足すだけでは表現できません。そこで、両方の表の主キーを外部キーとしてもつ新しい表を作り、その外部キーの組合せを主キー(またはその一部)にします。新しい表の1行が対応の1組を表すので、どちらの表から見ても相手が複数ある対応を記録できます。例えば学生と科目なら、学生番号と科目番号の組を主キーとする履修の表を置く形です。多対多は、間に表をはさんで二つの1対多に分けると覚えておくと見分けやすくなります。
ほかの選択肢はなぜ違うのか
- アそれぞれの表の主キーに対して明示的にイン…:インデックスは検索を速くするための仕組みで、表どうしのどの行が対応するかという情報を表すものではありません。主キーに索引を定義しても、多対多の対応を記録する場所は生まれません。
- イそれぞれの表の主キーへの部分関数従属性を…:部分関数従属性の排除は、第2正規形にするための正規化の手順です。一つの表の中の冗長さを取り除く操作であり、二つの表の間の多対多の対応を表す方策にはなりません。
- ウそれぞれの表の属性間の推移的な関数従属性…:推移的な関数従属性の排除は、第3正規形にするための正規化の手順です。表の中の属性間の従属を整理するもので、二つのエンティティの間の対応を表す表を作ることとは目的が違います。
この問題の用語
- エンティティ情報の世界で管理の対象となる、人やものごとの一つひとつを指します。E-R図では、この対象と対象どうしの関連を組み合わせて表します。
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問3
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問11:参照制約に関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問5:主キーに関する問題(エンティティ)
- 令和6年度 秋期 午前Ⅱ 問3:ノード分割後のB^+木構造(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問4:四つの表の関係を表すE-R図(エンティティ)
- 平成31年度 春期 午前Ⅱ 問5:四つの表の関係を表すE-R図(エンティティ)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)