基本情報技術者 2016年 春期 午前(科目A) 問26
問題文
関係モデルとその実装である関係データベースの対応に関する記述のうち、適切なものはどれか。
選択肢
ア:関係は、表に対応付けられる。(正解)
イ:属性も列も、左から右に順序付けられる。
ウ:タプルも行も、ともに重複しない。
エ:定義域は、文字型又は文字列型に対応付けられる。
🔒 解説は解答すると表示されます
関係モデルと関係データベースの対応【午前解説】
正解の理由
ア(関係は、表に対応付けられる。)が正解です。関係モデルでは「関係(relation)」は属性(columns)とタプル(rows)からなる集合として定義され、関係データベースではこの概念を表(テーブル)として実装します。したがって関係はテーブルに対応するという記述は理論と実装の対応関係を正しく示しています。
解法ステップ
- 設問の各語句(関係、属性、タプル、定義域)を関係モデルの定義で素早く照合する。
- 「対応付けられる」「順序付けられる」「重複しない」などの述語が理論(抽象モデル)に合致するかを判定する。
- 実装(関係データベース/SQL等)の振る舞いと理論上の性質(集合性、無順序性)を混同していないか確認する。
- 各選択肢について理論的正否を根拠付きで答え、最も妥当なものを選ぶ。
選択肢別の誤答解説
-
ア: 関係は、表に対応付けられる。
正:関係モデルのrelationは属性とタプルの集合として定義され、RDBではテーブルとして実装されるため対応関係は正しいです。 -
イ: 属性も列も、左から右に順序付けられる。
誤:関係モデル上の属性には順序はない(集合の要素)。実装上の列の物理的順序や表示順序は存在するが、理論的には順序付けられない点が誤りです。 -
ウ: タプルも行も、ともに重複しない。
誤:理論上のタプル集合は重複しない(集合)ですが、実際の関係データベースのテーブルは多重集合(重複行を許す)として扱われることがあり得ます。よって「ともに重複しない」は成り立ちません。 -
エ: 定義域は、文字型又は文字列型に対応付けられる。
誤:定義域(domain)は属性が取り得る値の集合を指し、文字型に限られず数値、日付、真偽値など様々な型に対応します。文字型だけに限定する記述は誤りです。
よくある誤解
- 属性や列に「順序がある」と思い込みやすいが、関係モデルでは属性に順序はなく、順序は実装や表示上の便宜でしかない点。
- タプルと行は同義に扱いやすいが、理論上タプルは集合で重複しない一方、実装されたテーブルは重複を許す(多重集合)ことがある点。
- 定義域(domain)を「文字列型だけに対応する」と誤解しやすいが、実際は属性が取り得る値の集合で任意の型に対応し得る点。
補足コラム
関係モデル(リレーショナルモデル)では「集合」や「(属性の)集合」「タプルの集合」という抽象概念が中心です。これに対しSQLや実装RDBMSでは効率や利便性のために多重集合(重複行)や列の物理順序などが存在します。試験問題では「理論(モデル)の定義」と「実装上の振る舞い」を区別して判断することが鍵です。重複を許さないことを保証したければ主キーや候補キーを設ける、表示順序が必要ならORDER BYを使う、といった実務的対処法も押さえておきましょう。
FAQ
Q1: 関係とテーブルは厳密に同じですか?
A1: 理論的には「関係」が抽象概念で、「テーブル」はその実装表現です。多くの場合は同義に扱えますが、順序性や重複の扱いで差異があります。
A1: 理論的には「関係」が抽象概念で、「テーブル」はその実装表現です。多くの場合は同義に扱えますが、順序性や重複の扱いで差異があります。
Q2: SQLのテーブルで重複が生じたらどう防ぐ?
A2: 主キーや候補キー、UNIQUE制約を設定するか、クエリでSELECT DISTINCTを利用します。
A2: 主キーや候補キー、UNIQUE制約を設定するか、クエリでSELECT DISTINCTを利用します。
Q3: 属性の順序は問題になるか?
A3: 理論的には無関係ですが、試験や実務でスキーマ設計・表示仕様を説明するときは「属性の順序は意味を持たない」と明確に述べると安全です。
A3: 理論的には無関係ですが、試験や実務でスキーマ設計・表示仕様を説明するときは「属性の順序は意味を持たない」と明確に述べると安全です。
関連キーワード: リレーショナルモデル、関係データモデル、タプル、属性、定義域、テーブル、主キー、多重集合、順序性、SQL

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

