データベーススペシャリスト試験 2010年 午前204


関係データベース上に実装するエンティティの主キーが複合キーであり, 複合キーを構成している属性数が多すぎるので、少なくして扱いやすくしたい。この場合の対応として, 適切なものはどれか。
複合キーを構成している属性のうち, エンティティの性格を最もよく表している属性を主キーとし, 残りの属性を外部キーにする。
複合キーを構成している属性のうち, エンティティの性格を最もよく表している属性を主キーとし、残りの属性を代理キー (alternate key)にする。
複合キーを連番など代用のキー (surrogate key)に置き換え, 複合キーを構成している属性を外部キーにする。
複合キーを連番など代用のキー(surrogate key)に置き換え, 複合キーを構成している属性を代理キー (alternate key) にする。(正解)

解説

複合キーの属性数削減方法【午前2 解説】

要点まとめ

  • 結論:複合キーが多属性で扱いにくい場合は、連番などの代理キー(surrogate key)に置き換え、元の複合キーは代理キーの代わりに代理キー(alternate key)として保持するのが適切です。
  • 根拠:代理キーはシンプルな単一属性で主キーを代替し、複合キーは一意性を保証するための代替キーとして残すことで整合性を保てます。
  • 差がつくポイント:代理キーと代理キー(alternate key)の違いを理解し、複合キーを単純化しつつデータの一意性を維持する設計が重要です。

正解の理由

選択肢エは、複合キーの属性数が多くて扱いにくい場合に、連番などの代理キー(surrogate key)を主キーとして採用し、元の複合キーは代理キー(alternate key)として残す方法を示しています。これにより、主キーは単一属性で扱いやすくなり、複合キーの一意性も保証されるため、データベース設計の実務で広く用いられる最適な対応策です。

よくある誤解

代理キー(surrogate key)と代理キー(alternate key)を混同し、どちらも主キーの代替として使えると誤解しがちです。代理キーは主キーの代わり、代理キー(alternate key)は主キー以外の一意性制約を示します。

解法ステップ

  1. 複合キーの属性数が多くて扱いにくいことを認識する。
  2. 主キーを単純化するために代理キー(surrogate key)を導入することを検討する。
  3. 元の複合キーは一意性を保証するために代理キー(alternate key)として残す。
  4. これにより、主キーは単一属性で扱いやすくなり、複合キーの一意性も維持される。
  5. 選択肢の中でこの設計を正しく表現しているものを選ぶ。

選択肢別の誤答解説

  • ア: 主キーを複合キーの一部属性に限定し、残りを外部キーにするのは誤り。外部キーは他テーブルの主キーを指すもので、同一エンティティ内の属性を外部キーにすることはない。
  • イ: 代理キー(alternate key)を主キーの代わりに使うとあるが、代理キー(alternate key)は主キー以外の一意キーであり、主キーの代替ではない。
  • ウ: 代理キーを主キーに置き換え、複合キーを外部キーにするのは誤り。複合キーは同一テーブル内の属性であり外部キーにはならない。
  • エ: 代理キー(surrogate key)を主キーにし、複合キーを代理キー(alternate key)として残す正しい対応。

補足コラム

代理キー(surrogate key)はシステムが自動生成する単一の識別子で、複合キーの複雑さを解消し、参照や結合を簡素化します。一方、代理キー(alternate key)は主キー以外の一意性を保証するキーであり、データの整合性維持に役立ちます。これらの概念を正しく理解し使い分けることが、効率的なデータベース設計の鍵です。

FAQ

Q: 代理キー(surrogate key)とは何ですか?
A: 代理キーは連番やUUIDなど、システムが生成する単一属性の主キーで、複合キーの代わりに使われます。
Q: 代理キー(alternate key)と代理キー(surrogate key)の違いは?
A: 代理キー(surrogate key)は主キーの代替、代理キー(alternate key)は主キー以外の一意キーで、主キーとは別に一意性を保証します。
Q: 複合キーをそのまま主キーに使う問題点は?
A: 属性数が多いと扱いにくく、結合や検索のパフォーマンス低下や設計の複雑化を招きます。

関連キーワード: 複合キー, 代理キー, 代理キー(alternate key), 主キー設計, データベース正規化, 一意性制約, 関係データベース
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ