IPA過去問ドリル

令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5

テクノロジ/データベース

あるエンティティを関係データベース上に実装しようとしたとき,その主キーが多くの属性から構成される複合キーとなることが分かった。主キーとして扱う属性を少なくして扱いやすくしたい。この対応として,適切なものはどれか。

出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問5

正解:ウ

解説

複合キーを構成する属性が多く扱いにくい場合,連番などの値をとる新たな列を追加してそれを主キー(代理キー,surrogate key)とすることで,主キーとして扱う属性の数を減らすことができます。この場合,元の複合キーを構成していた属性群は,一意性制約を課す代替キーとして保持し,重複データの発生を防ぎます。

選択肢ごとの解説

  • 誤り。複合キーの属性の一つだけを主キーにすると,その属性だけでは一意性が保証されない場合があり,残りの属性を外部キーとするのはエンティティ内部の属性の扱いとして不適切です。
  • 誤り。同様に,複合キーの一部の属性のみを主キーとする方法では,一意性が損なわれるおそれがあります。
  • 正しい。連番などの新しい列を主キー(代理キー)とし,元の複合キーは一意性を保証する代替キーとして扱うことで,主キーとして扱う属性を少なくできます。
  • 誤り。新設した連番の列を主キーとする点は適切ですが,複合キーを外部キーとして扱うのは,他の表への参照を表す外部キーの用途として不適切です。
データベーススペシャリストの過去問を演習モードで解く