SAシステムアーキテクト試験 午前Ⅱ
平成29年度秋期 システムアーキテクト 午前Ⅱ 問21
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題


選択肢
- ア委員会(委員会ID,委員会名)/所属関連(所属委員会ID,委員ID)/生徒(生徒ID,氏名,担当委員会ID)
- イ委員会(委員会ID,委員会名)/役員関連(担当委員会ID,役員ID)/生徒(生徒ID,氏名,所属委員会ID)
- ウ委員会(委員会ID,委員会名,委員ID)/生徒(生徒ID,氏名,所属委員会ID,担当委員会ID)
- エ委員会(委員会ID,委員会名,役員ID)/生徒(生徒ID,氏名,所属委員会ID)
解き方のヒントを見る
一意性と参照関係を見極める視点
表の設計を読むときは、各列や列の組合せがどの行を識別するのか、また表どうしの対応がどのように表現されるのかを分けて確認し、用語の印象だけで判断しないことが大切です。
この問題で問われていること
一つの観点として、識別の手がかりと表間の結び付きがそれぞれ何を保証するものかを整理してください。列の役割、重複の可能性、対応先の扱いを同じ基準で照らし合わせると、説明の違いを比較しやすくなります。
視点
表を読む際は、行を区別するための情報と、別の表との関係を表す情報を混同しないようにします。まず対象を識別する単位を確認し、その後で関係の向きや対応範囲を整理すると、用語に引きずられずに考えられます。
確認ポイント
- 何を単位として区別しているかを確認する
- 重複が起こり得る範囲を整理する
- 表どうしの対応をどの情報で表しているかを見る
正解と解説を見る
正解
ア
解説
委員会と生徒の所属関係は多対多であり、担当委員会は生徒ごとに高々一つです。この違いを関連表と外部キーで正しく表す必要がある。
理由
所属する関係は、一つの委員会に複数の生徒が所属でき、また一人の生徒が複数の委員会に所属できる多対多の関係です。そのため、委員会IDと生徒IDを組み合わせた所属関連表が必要になる。
比較
担当する関係は、一つの委員会に複数の役員が対応する一方、一人の生徒が担当できる委員会は0..1です。生徒表に担当委員会IDを置けば、この上限を表現できる。
選択肢ア(正解)
これは正解だよ。所属関連表が所属委員会IDと委員IDを持つため、多対多の所属関係を複数行で表現できる。さらに生徒表の担当委員会IDは、生徒ごとに担当先を0..1件にでき、図の多重度にも対応している。
選択肢イ
これは不正解だよ。所属関係を生徒表の所属委員会ID一つで表しているため、一人の生徒が複数委員会に所属する関係を表せない。また、役員関連表の複合主キーでは同じ役員IDを別の担当委員会IDと登録でき、生徒一人に担当委員会が最大1という制約も保証できない。
選択肢ウ
これは不正解だよ。生徒表の所属委員会IDが一つだけなので、一人の生徒が複数委員会に所属する関係を表せない。さらに委員会表の委員IDも一つだけであり、一つの委員会に複数の生徒が所属する関係を表現できない。
選択肢エ
これは不正解だよ。委員会表の役員IDが一つだけなので、一つの委員会に1人以上の役員が対応する関係を複数行で表せない。加えて、生徒表の所属委員会IDも一つだけで、多対多の所属関係を正しく表現できない。
学習のポイント
UMLの多重度を、主キー・外部キー・関連表の設計へ正確に変換する。
出典:独立行政法人 情報処理推進機構(IPA)平成29年度秋期 システムアーキテクト試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針