平成25年春期試験問題 午前Ⅱ 問3

データモデリングの過程で,二つのエンティティ間に多対多の対応が生じた。これを関係データベース上に実装する場合,二つのエンティティを表として定義した上で,多対多の対応を表す方策はどれか。

  • それぞれの表の主キーに対して明示的にインデックスを定義する。
  • それぞれの表の主キーへの部分関数従属性を排除するように表を分解する。
  • それぞれの表の属性間の推移的な関数従属性を排除するように表を分解する。
  • それぞれの表を参照する外部キーの組合せを主キーの一部とする表を新たに定義する。
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データベース設計
解説
関係データベースでは「多対多」の関連をそのまま実装することができません。このためエンティティ間に「多対多」の関連が生じるケースでは、エンティティ間に関連型エンティティ(連関エンティティ)を入れ込んで2つの「1対多」の関連に分解します。

下図は1つの"注文"には複数の"商品"が含まれ、1つの"商品"が複数の注文に関連付けられる多対多のモデルを"注文明細"を介した表で実装する様子です。連関エンティティである"注文明細"表では、"注文"表および"商品"表を参照するための外部キーの組合せ{注文番号,商品番号}が主キーになります。
03.gif
したがって「エ」が正解です。
  • 検索速度を上げるための方策です。
  • 第2正規形にするための方策です。
  • 第3正規形にするための方策です。
  • 正しい。多対多の関連を関係データベースで実装するための方策です。

Pagetop