応用情報技術者試験 令和2年秋 午前問27 解説付き過去問
問題
UMLを用いて表した図のデータモデルから、"部品"表、"納入"表及び"メーカ"表を関係データベース上に定義するときの解釈のうち、適切なものはどれか。


正解
解説
この問題は、UMLクラス図を関係データベースに変換する際の適切な設計判断ができるかを問うものです。図には「部品」「納入」「メーカ」の3クラスが示されており、これらの関係性から正しいキーや外部キーの構成を読み解く必要があります。
- UML図の関係性の読み取り
「納入」は「部品」と「メーカ」の間に存在する関連クラスです。UML図からは「1対多」の関係が2つ見て取れます:
・1つの部品は複数回納入される(「部品」1 対 「納入」多)
・1つのメーカは複数の納入を持つ(「メーカ」1 対 「納入」多)
このような「多対多」の関係を解消するために中間表として「納入」表を設けるのが一般的です。 - 候補キーとしての部品番号とメーカ番号
「納入」表は、「部品番号」「メーカ番号」「納入日」などの属性を持ちます。
部品番号とメーカ番号の組み合わせは、特定の納入レコードを識別する上で重要な情報となります。
このような属性の組み合わせは、主キーとしても使える場合があり、候補キーの一部に設定することが可能です。
たとえば、納入日も含めて複合主キーとすれば、「同じ部品を同じメーカから複数回納入する」ことにも対応できます。 - 他の選択肢の誤り
・「同じ部品を同じメーカから複数回納入することは許されない」は誤りです。納入日などを用いれば複数納入の記録が可能です。
・「納入表に外部キーは必要ない」は誤りであり、納入表は「部品」表と「メーカ」表の外部キーを必ず持ちます。
・「メーカ表が部品番号を外部キーとして持つ」は、表構造の方向性に誤解があり、正しくは「納入」表が部品番号とメーカ番号を外部キーとして持ちます。
したがって、「部品番号とメーカ番号の組を"納入"表の候補キーの一部にできる」という解釈が正しく、データベース設計においても妥当です。