この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は イ

解説

関係モデル(リレーショナルモデル)の属性の性質を問う理論問題です。関係モデルにおいて、関係(リレーション)は属性(カラム)の集合の上に定義され、属性には次の性質があります。①各属性は関係内で一意の名前をもつ、②属性の並び順には意味がなく、順番を入れ替えても同じ関係である、③各属性には定義域(ドメイン: 取り得る値の集合)が定まる、④異なる属性が同じ定義域を共有してもよい。イの「関係内の属性の並び順に意味はなく、順番を入れ替えても同じ関係である」は②の性質そのものであり、これが正解です。関係モデルは集合論に基づいており、属性の集合・タプルの集合として関係を定義するため、「並び順」という概念自体が存在しません。これは実装上の表(テーブル)に列の表示順が存在することとは区別して理解すべき、関係モデル上の理論的な性質です。同様にタプル(行)の集合にも順序はない、という点もセットで押さえておきましょう。

なぜ他の選択肢は違うのか

選択肢 ア
属性の定義域(ドメイン)は重複しても構いません。例えば「出発地」と「到着地」という二つの属性が、どちらも「都市名の集合」という同じ定義域をもつことはごく自然です。定義域は属性が取り得る値の種類を定めるものであり、属性ごとに排他である必要はありません。関係内で重複が禁止されるのは定義域ではなく「属性の名前」のほうです。
選択肢 ウ
関係内の二つ以上の属性に同じ名前を付けることはできません。属性名は関係内で一意でなければならず、これによって「氏名」「住所」のように名前だけで属性を特定できます。SQLで複数の表の同名列が衝突する場合にテーブル名修飾(学部.住所)や別名(AS句)が必要になるのも、関係内では名前が一意というこの原則によるものです。
選択肢 エ
名前をもたない属性は定義できません。関係モデルでは属性は必ず名前で識別され、位置(何番目の列か)では識別されません。これは属性の並び順に意味がないこと(正解イ)と表裏一体の性質です。並び順に依存して属性を指定できない以上、名前が属性を特定する唯一の手段になるため、名前をもたない属性は関係モデル上は定義のしようがありません。

解くときのポイント

関係モデルは集合論ベース: 属性にもタプルにも並び順はない、属性名は関係内で一意、定義域は共有可。「順序がない」「名前で識別」の2点が理論問題の軸。