DBデータベーススペシャリスト試験 午前Ⅱ
平成22年度春期 データベーススペシャリスト 午前Ⅱ 問4
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア複合キーを構成している属性のうち,エンティティの性格を最もよく表している属性を主キーとし,残りの属性を外部キーにする。
- イ複合キーを構成している属性のうち,エンティティの性格を最もよく表している属性を主キーとし,残りの属性を代理キー(alternate key)にする。
- ウ複合キーを連番など代用のキー(surrogate key)に置き換え,複合キーを構成している属性を外部キーにする。
- エ複合キーを連番など代用のキー(surrogate key)に置き換え,複合キーを構成している属性を代理キー(alternate key)にする。
解き方のヒントを見る
主キー設計を見直す視点整理
主キーの候補を比べるときは、値の安定性や重複の起こりにくさだけでなく、将来の変更、参照関係、運用時の扱いやすさまで同じ観点で確認し、設計上の意図と制約の対応を整理します。
この問題で問われていること
候補を評価する際、現在のデータだけで判断せず、識別対象との対応が長期的に保てるか、関連表や更新処理にどのような影響が出るかという一つの観点に集中して確認しましょう。
視点
主キー設計は、列の見た目だけでなく、識別の役割とデータ管理の前提が一貫しているかを捉えることが重要です。候補を同じ基準で比較し、変更や連携の場面でも意図が崩れないかを考えます。
確認ポイント
- 候補の値が、識別したい対象と安定して対応し続けるかを確認する。
- 値の変更や再利用が起きた場合に、関連するデータへ影響しないかを考える。
- 設計上の制約と日常の登録・更新運用が無理なく一致しているかを見直す。
正解と解説を見る
正解
エ
解説
複合キーの属性数が多く扱いにくい場合は、連番などの代用キーを新しい主キーとして導入し、元の複合キーを一意性を保つ代理キーとして残す。したがって適切なのはエです。
理由
複合キーを連番などの代用キー(surrogate key)に置き換えると、主キーを単一属性にでき、参照や結合で扱いやすくなる。一方、元の複合キーを構成していた属性は、エンティティを本来識別する組合せとして一意性を保つ必要があるため、代理キー(alternate key)として扱う。
比較
外部キーは他の表の主キーを参照するための属性であり、複合キーを単純化した結果として元の属性群を外部キーにするものではありません。また、複合キーの一属性だけを主キーにすると一意性を失う可能性がある。
選択肢ア
これは不正解だよ。複合キーを構成する属性の一つだけを主キーにすると、その属性だけではエンティティを一意に識別できない可能性がある。また、残りの属性を外部キーにすることも、外部表の主キーを参照するという外部キーの役割に合わない。
選択肢イ
これは不正解だよ。複合キーを構成する属性のうち一つだけを主キーにすると、組合せで成立していた一意性を失う可能性がある。さらに、残りの属性を代理キーとする説明も適切ではなく、複合キー全体の代替となる識別方法を示していない。
選択肢ウ
これは不正解だよ。複合キーを連番などの代用のキーに置き換える点は適切だが、元の複合キーを構成していた属性を外部キーにする点が誤りである。それらは元の一意性を保つためのキーとして扱うべきである。
選択肢エ(正解)
これは正解だよ。複合キーを連番などの代用のキー(surrogate key)に置き換えることで、主キーを単純化できる。同時に、複合キーを構成していた属性は元来の一意性を表すため、代理キー(alternate key)として保持できる。
学習のポイント
surrogate keyとalternate keyの役割の違いを理解する。
出典:独立行政法人 情報処理推進機構(IPA)平成22年度春期 データベーススペシャリスト試験 午前Ⅱ 問4(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針