平成28年度 秋期 基本情報技術者試験 午前 問28
テクノロジ/データベース関係代数の演算のうち,関係R,Sの直積(R×S)に対応するSELECT文はどれか。ここで,関係R,Sを表R,Sに対応させ,表R及びSにそれぞれ行の重複はないものとする。
出典:平成28年度 秋期 基本情報技術者試験 午前 問28
- アSELECT * FROM R, S
- イSELECT * FROM R EXCEPT SELECT * FROM S
- ウSELECT * FROM R UNION SELECT * FROM S
- エSELECT * FROM R INTERSECT SELECT * FROM S
正解:ア
解説
関係代数の直積(R×S)は,関係Rの各行と関係Sの各行を組み合わせた,Rの行数×Sの行数の全ての組合せを求める演算です。SQLでは,結合条件(WHERE句)を指定せずにFROM句にR,Sと複数の表を列挙することで,この直積を得ることができます。
選択肢ごとの解説
- ア正しい。FROM句にR,Sを列挙し結合条件を指定しない場合,RとSの全ての行の組合せ,すなわち直積が得られます。
- イ誤り。EXCEPTは,一方の結果集合から他方に含まれる行を除く差演算に対応するもので,直積とは異なります。
- ウ誤り。UNIONは,二つの結果集合を合わせて重複を除いた和演算に対応するもので,直積とは異なります。
- エ誤り。INTERSECTは,二つの結果集合に共通する行を求める積演算に対応するもので,直積とは異なります。