平成31年度 春期 午前 問26
データベース
関係モデルの属性に関する説明
関係モデルの属性に関する説明のうち,適切なものはどれか。
- ア関係内の属性の定義域は重複してはならない。
- イ関係内の属性の並び順に意味はなく,順番を入れ替えても同じ関係である。
- ウ関係内の二つ以上の属性に,同じ名前を付けることができる。
- エ名前をもたない属性を定義することができる。
答えと解説を見る
✓ これが正解イ関係内の属性の並び順に意味はなく,順番を入れ替えても同じ関係である。
解説
属性を並べる順は、関係そのものの区別には関わりません。
関係モデルでは、表に見える形で情報を持ちます。ただし、見た目の表と数学上の関係は別物です。関係は組の集合として定められています。集合なので、要素を並べる順番に意味がありません。属性は名前で指し示すため、左右の位置は問いません。列を入れ替えても、同じ関係として扱われます。正解の肢は、この並び順の無意味さを述べています。属性には、それぞれ名前を必ず付けます。同じ関係の中で名前が重なることもできません。名前が重なれば、どの列かを指せなくなるからです。値の取りうる範囲は、属性ごとに定めます。その範囲が別の属性と重なっていてもかまいません。金額と数量が同じ整数の範囲を使う例が身近です。列を指す手掛かりは、位置ではなく名前になります。表として書き出すときに、順番が決まるだけです。見た目の順に意味を求めません。
ほかの選択肢はなぜ違うのか
- ア関係内の属性の定義域は重複してはならない…:値の取りうる範囲が重なってはいけないと述べています。実際には、複数の属性が同じ範囲を使えます。重なりを禁じる決まりはありません。整数を使う列が並ぶ表は普通に作れます。名前で区別が付きます。同じ型の列が並ぶこともあります。
- ウ関係内の二つ以上の属性に,同じ名前を付け…:同じ名前を二つ以上の属性に付けられると述べています。名前が重なると、どちらを指すか決められません。一つの関係の中では重複を許しません。別の関係となら同名でも困りません。指し示す手掛かりが名前だからです。一意であることが前提です。
- エ名前をもたない属性を定義することができる…:名前の無い属性を作れると述べています。名前が無ければ、問合せで呼び出せません。すべての属性に名前を与えます。式から作った列にも別名を付けます。呼べない列は使えません。呼び名の無い列は、結果として使い道がありません。
出典:平成31年度 春期 基本情報技術者試験 午前 問26
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)