令和5年度 秋期 午前Ⅱ 問21
データベース
UMLに関する問題
UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。
UMLのクラス図:
クラス 顧客 (顧客番号,請求先,主送付先) 注文 (注文番号,受注日,数量) 品目 (品目番号,名称) 付加情報(識別番号,副送付先) 関連 顧客 1 ―――― * 注文 注文 * ―――― 1 品目 顧客 1 ◆―――― * 付加情報 (顧客側がひし形(コンポジション),顧客側の関連端名“注文主”) 注文 * ―――― 0..1 付加情報 (付加情報側の関連端名“指定送付先”) 注記(注文クラスから点線で) 制約:“注文”のインスタンスが指定送付先をもつときは,その“付加情報”の注文主と“注文”の顧客は一致すること。 注記(注文と付加情報の関連から点線で) 制約:“注文”のインスタンスが指定送付先をもつときは,当該“注文”の“顧客”の主送付先ではなく,“指定送付先”の副送付先を用いること。
- ア“指定送付先”を指定する際,“付加情報”表のどの行でも選択できる。
- イ“付加情報”表と“顧客”表の行数は一致していなければならない。
- ウ“付加情報”表には“顧客”表に対する参照制約を指定する。
- エ“付加情報”表には“注文”表に対する参照制約を指定する。
答えと解説を見る
✓ これが正解ウ“付加情報”表には“顧客”表に対する参照制約を指定する。
解説
付加情報は顧客に属するので、付加情報表に顧客表への参照制約を置きます。
図では、顧客と付加情報が、顧客の側にひし形の付いた関連(コンポジション)で結ばれ、多重度は顧客1に対して付加情報が多です。これは、付加情報の各インスタンスが必ず1人の顧客に属し、その顧客を注文主として持つことを表しています。関係データベースでは、多の側の表に1の側を指す列を持たせ、外部キーとして参照制約を設定してこの関係を表します。したがって、付加情報表には顧客表を参照する参照制約を指定するのが適切です。多重度の1と多を読み、多の側の表から1の側の表を参照すると覚えておくと、クラス図を表に移す問題で迷いにくくなります。
ほかの選択肢はなぜ違うのか
- ア“指定送付先”を指定する際,“付加情報”…:図の制約は、指定送付先にする付加情報の注文主と、その注文の顧客が一致することを求めています。注文した顧客に属する付加情報しか選べないので、表のどの行でも選べるという解釈は制約に反します。
- イ“付加情報”表と“顧客”表の行数は一致し…:顧客1に対して付加情報は多なので、付加情報を持たない顧客も、複数持つ顧客もありえます。二つの表の行数が一致しなければならないという条件は、この多重度からは出てきません。
- エ“付加情報”表には“注文”表に対する参照…:注文と付加情報の関連では、注文の側が多、付加情報の側が0..1です。参照する列を持つのは注文表の側であり、付加情報表から注文表を参照する形では、1件の付加情報を複数の注文が使う関係を表せません。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:令和5年度 秋期 システム監査技術者試験 午前Ⅱ 問21
同じ用語が出る問題
- 令和3年度 秋期 午前Ⅱ 問21:ビューに関する記述(関係データベース)
- 令和2年度 10月 午前Ⅱ 問21:ビューを利用する目的(関係データベース)
- 平成22年度 春期 午前Ⅱ 問21:関係データベースに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)