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

選択肢
ア:同一の部品を同一のメーカから複数回納入することは許されない。
イ:“納入”表に外部キーは必要ない。
ウ:部品番号とメーカ番号の組みを “納入” 表の候補キーの一部にできる。(正解)
エ:“メーカ”表は、外部キーとして部品番号をもつことになる。
UMLデータモデルの関係データベース定義に関する問題【午前2 解説】
要点まとめ
- 結論:部品番号とメーカ番号の組み合わせが“納入”表の候補キーの一部となるのが正しい解釈です。
- 根拠:UMLの1対多(1:*)の関係から、“納入”表は部品とメーカーの複合的な関係を表し、両方の主キーを外部キーとして持ちます。
- 差がつくポイント:関係の多重度(1と*)の意味を正確に理解し、外部キーと候補キーの役割を区別できるかが重要です。
正解の理由
UML図では「部品」から「納入」へは1対多、「納入」から「メーカー」へも多対1の関係が示されています。
つまり、「納入」表は「部品」と「メーカー」の組み合わせで一意に特定されるべきであり、部品番号とメーカー番号の複合キーが候補キーの一部となります。
このため、「納入」表は両方の外部キーを持ち、それらの組み合わせで重複しないように管理されるのが正しい設計です。
つまり、「納入」表は「部品」と「メーカー」の組み合わせで一意に特定されるべきであり、部品番号とメーカー番号の複合キーが候補キーの一部となります。
このため、「納入」表は両方の外部キーを持ち、それらの組み合わせで重複しないように管理されるのが正しい設計です。
よくある誤解
「納入」表に外部キーが不要と考えたり、メーカー表が部品番号を外部キーとして持つと誤解しがちです。
また、同一部品を同一メーカーから複数回納入できないと誤解することもあります。
また、同一部品を同一メーカーから複数回納入できないと誤解することもあります。
解法ステップ
- UML図の関係線の多重度(1 と *)を確認する。
- 「納入」表が「部品」と「メーカー」の間の多対多関係を仲介していることを理解する。
- 「納入」表に両方の主キー(部品番号、メーカー番号)が外部キーとして存在することを認識する。
- これらの外部キーの組み合わせが「納入」表の候補キーの一部になることを判断する。
- 選択肢を照らし合わせて正しいものを選ぶ。
選択肢別の誤答解説
- ア: 「同一の部品を同一のメーカーから複数回納入することは許されない」
→ 多重度「*」があるため、複数回の納入は可能であり誤り。 - イ: 「納入表に外部キーは必要ない」
→ 「納入」表は「部品」と「メーカー」の外部キーを持つ必要があるため誤り。 - ウ: 「部品番号とメーカ番号の組みを納入表の候補キーの一部にできる」
→ 正解。複合キーとして適切。 - エ: 「メーカー表は外部キーとして部品番号を持つ」
→ メーカー表は独立したエンティティであり、部品番号を外部キーとして持たないため誤り。
補足コラム
UMLの多重度は関係データベース設計で重要な指標です。
1対多の関係は「多」側のテーブルに「1」側の主キーを外部キーとして持たせます。
多対多の関係は仲介テーブルを設け、両方の主キーを外部キーかつ複合キーとして設定します。
この問題の「納入」表は仲介テーブルの役割を果たしています。
1対多の関係は「多」側のテーブルに「1」側の主キーを外部キーとして持たせます。
多対多の関係は仲介テーブルを設け、両方の主キーを外部キーかつ複合キーとして設定します。
この問題の「納入」表は仲介テーブルの役割を果たしています。
FAQ
Q: なぜ「納入」表に両方の外部キーが必要なのですか?
A: 「納入」表は「部品」と「メーカー」の組み合わせを表現し、一意に特定するため両方の外部キーが必要です。
A: 「納入」表は「部品」と「メーカー」の組み合わせを表現し、一意に特定するため両方の外部キーが必要です。
Q: UMLの多重度「1」と「」は何を意味しますか?
A: 「1」は一つだけ、「」は複数(多く)を意味し、関係の数的制約を示します。
A: 「1」は一つだけ、「」は複数(多く)を意味し、関係の数的制約を示します。
関連キーワード: UML, 多重度、関係データベース設計、外部キー、候補キー、複合キー、データモデリング

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

