平成24年度 春期 午前Ⅱ 問3
データベース設計
汎化に関する問題
次の概念データモデルを関係データベース上に実装するとき,適切な関係スキーマ定義はどれか。ここで,モデルの表記には UML を用いる。関係スキーマ定義中の実線の下線は主キーを,破線の下線は外部キーを表す。
概念データモデル:
{抽象} 品目(品目番号,品目名)
汎化(区分の名前:型区分)
サブクラス:組立品
サブクラス:部品
組立品 ―― 品目 の関連
組立品の側の関連端:親品目 0..1
品目の側の関連端:子品目 *
関連に制約 {階層}
関連クラス:部品数(数)(破線でこの関連に付く)
(原典の実線の下線は …、破線の下線は〔破線の下線〕で表した)
- ア組立品(親品目番号,品目名) / 部品(子品目番号,品目名) / 部品数(親品目番号〔破線の下線〕,子品目番号〔破線の下線〕,数)
- イ品目(親品目番号,品目名,型区分) / 部品数(子品目番号〔破線の下線〕,数)
- ウ品目(品目番号,品目名,型区分) / 組立品(組立品番号,品目番号〔破線の下線〕,品目名) / 部品(部品番号,品目番号〔破線の下線〕,品目名) / 部品数(部品番号〔破線の下線〕,組立品番号〔破線の下線〕,数)
- エ品目(品目番号,品目名,型区分) / 部品数(親品目番号〔破線の下線〕,子品目番号〔破線の下線〕,数)
答えと解説を見る
✓ これが正解エ品目(品目番号,品目名,型区分) / 部品数(親品目番号〔破線の下線〕,子品目番号〔破線の下線〕,数)
解説
品目を一つの表にし、部品数の表で親と子の品目番号を組にします。
この概念データモデルでは、抽象クラスの品目を組立品と部品に汎化し、型区分で区別しています。組立品は親品目として、子品目である品目を複数もち、その組ごとに部品数の数をもちます。子品目の側は品目なので、部品だけでなく組立品も子になり得ます。そこで品目を一つの表にまとめ、品目番号を主キーとし、型区分で組立品か部品かを区別します。部品数の表は、親品目番号と子品目番号の組を主キーとし、どちらも品目の品目番号を参照する外部キーにします。こうすると、組立品の下に組立品がある階層も表せます。汎化と自己参照の関連を実装するときは、親子のそれぞれが何を参照するかをクラス図の関連端で確かめると、表の形が決まります。
ほかの選択肢はなぜ違うのか
- ア組立品(親品目番号,品目名) / 部品(…:組立品と部品を別の表にし、部品数の子品目番号を部品だけに結び付けています。モデルでは子品目は品目なので組立品も子になり得ますが、この形では組立品の下の組立品を表せません。
- イ品目(親品目番号,品目名,型区分) / …:部品数の表に子品目番号しか無く、どの組立品に属する数なのかを表せません。品目の主キーも親品目番号としており、親にならない部品まで親品目の番号をもつ形になっています。
- ウ品目(品目番号,品目名,型区分) / 組…:品目、組立品、部品を別々の主キーで表に分け、品目名も重複しています。部品数は部品番号と組立品番号の組なので、子になれるのは部品だけで、組立品が子になる階層を表せません。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問3
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問11:参照制約に関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問5:主キーに関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問3:ノード分割後のB^+木構造(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問15:入れ子ループ法に関する問題(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問2:UMLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)