データベーススペシャリスト 2016年 午前2 問15
問題文
関係AとBに対して和集合演算が成立するための必要十分条件はどれか。
選択肢
ア:同じ属性名でドメインが等しい属性が含まれている。
イ:次数が同じで、対応する属性のドメインが等しい。(正解)
ウ:主キー属性のドメインが等しい。
エ:濃度(タプル数)が同じで、ドメインが等しい属性が少なくとも一つ存在する。
🔒 解説は解答すると表示されます
和集合の成立条件【午前2解説】
正解の理由
関係の和集合(集合論的和、relational union)が定義されるためには、結合される二つの関係が「同じ次数(アリティ)」であることと、各列(属性)ごとに対応する属性のドメインが一致していることが必要かつ十分です。したがって正解は イ です。
ここで重要なのは「対応する属性」が何を意味するかです。本問で想定しているリレーショナル代数や多くの教科書的定義では、対応は列の位置(順序)によって決まります。SQLでも UNION 演算子は列の位置で対応を決め、列名では対応しません。よって「次数が同じで、対応する属性のドメインが等しい」ことが和集合成立の正確な条件です。
解法ステップ
- 和集合の定義を思い出す:二つの関係は集合演算(和)を取れるのは同じアリティかつ対応する属性のドメインが一致するとき。
- 各選択肢がこの定義に合うかを検討する:
- ア:属性名が同じだけでは順序や全属性の対応・ドメイン一致が保証されないため不十分。
- イ:次数と対応する属性ドメインの一致はまさに定義そのもので十分条件かつ必要条件。
- ウ:主キーのみ一致しても他属性や次数が異なれば和集合不可。
- エ:タプル数(濃度)は和集合成立に無関係であり、誤り。
- よって イ を選ぶ。
選択肢別の誤答解説
- ア: 「同じ属性名でドメインが等しい属性が含まれている」だけでは、(1)全ての属性が対応しているか、(2)属性の順序がどう扱われるかが不明確です。特にSQLの動作は列の位置で対応するため、属性名が同一でなくても和集合が可能な場合があります。従って不十分です。
- イ: 正しい。次数(列数)が一致し、i列目同士のドメインが等しければ和集合が定義されます。対応は通常「列の位置」で決まることを前提にしている点に注意してください。
- ウ: 主キー属性のドメインが等しいことは和集合の要件ではありません。主キーは一意性の概念であり、和集合成立条件とは無関係です。
- エ: タプル数(濃度)が同じで一部の属性のドメインが等しいことは和集合の成立に必要でも十分でもありません。濃度は列の型や順序には影響しないため誤りです。
よくある誤解
- 属性名で対応が決まると思い込む:実務で使うSQLのUNIONも含め、多くの定義では「列の順序(位置)」で対応を決めます。属性名が一致していても列の順序や全列のドメインが揃っていなければ和集合は取れません。
- 濃度(タプル数)を条件に考える:和集合の成立条件はスキーマ(次数とドメイン)に関するものであり、実際のタプル数は無関係です。
- 「互換性」の曖昧さ:実装によっては型変換で結合できるケースがありますが、試験では「ドメインが等しい(同じ型)」という厳密な条件を問うことが多い点に注意してください。
補足コラム
リレーショナル代数の定義:
- 2 つの関係 R(A1,...,An) と S(B1,...,Bn) の和集合 R ∪ S が定義されるのは n が一致し、任意の i について domain(Ai) = domain(Bi) であるときです。対応は i の順序で決まります。
SQL の実例(列名が異なっていても列順が合えば UNION 可能):
-- A は列 a:int, b:text
-- B は列 x:int, y:text
SELECT a, b FROM A
UNION
SELECT x, y FROM B;
上の SQL では列名が A と B で異なっていても位置で対応するため許容されます。結果の列名は通常最初の SELECT の列名が使われます。
型の厳密性:
- 試験問題では「ドメインが等しい=同一のデータ型」と解釈するのが安全です。実装依存の暗黙変換に頼ると誤答につながることがあります。
FAQ
Q. 属性名が完全に一致していれば和集合は常に可能ですか?
A. 属性名が一致していても、列の数や各列のドメインが一致していなければ和集合は定義できません。列名一致は十分条件ではありません(ただし全ての属性名と順序、ドメインが一致すれば当然可能です)。
Q. SQL の UNION ALL はどう違いますか?
A. UNION は集合演算なので重複を除去します(実装による)。UNION ALL は重複を除去せずそのまま連結しますが、どちらもスキーマの整合性(列数・列ごとの型)が前提です。
Q. ドメインが「互換」なら許されますか?
A. 実装によっては互換型間で暗黙変換が行われることがありますが、試験では「ドメインが等しい(同一型)」と考えるのが正解です。
関連キーワード: リレーショナル代数、和集合、次数(アリティ)、属性の順序、ドメイン一致、SQL UNION

\ せっかくなら /
データベーススペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

