関係代数(選択・射影・結合・商)とは?
関係代数(選択・射影・結合・商)とは、関係(表)に対する演算体系で、SQLの理論的な土台。行を絞る選択、列を取り出す射影、共通属性で表をつなぐ結合、すべての組合せを作る直積、そして「指定集合のすべてに対応する行」を求める商(除算)などからなる。
応用情報技術者試験の過去問では1回出題されています。
かんけいだいすうせんたくしゃえいけつごうしょう
関係代数(選択・射影・結合・商)の意味
関係(表)に対する演算体系で、SQLの理論的な土台。行を絞る選択、列を取り出す射影、共通属性で表をつなぐ結合、すべての組合せを作る直積、そして「指定集合のすべてに対応する行」を求める商(除算)などからなる。
関係代数(選択・射影・結合・商)の具体例
「全科目を履修している学生」は、履修表(学生, 科目)を科目表(科目)で割る商で求まる。SQLでは直接の演算子がないため、NOT EXISTSの二重否定、または科目数とCOUNTの一致をHAVINGで判定する形で書き換える。
関係代数(選択・射影・結合・商)は試験でどう引っ掛けられる?
射影は重複行を取り除く(集合演算のため)が、SQLのSELECTは既定で重複を残しDISTINCTが要る。この違いが計算結果の行数を問う設問で狙われる。また結合は直積と選択の組合せに分解できる点も押さえる。
関係代数(選択・射影・結合・商)と関連する用語
関係代数(選択・射影・結合・商)が出た過去問
関係R(ID, A, B, C)のA, Cへの射影の結果とSQL文で求めた結果が同じになるように、aに入れるべき字句はどれか。ここで、関係Rを表Tで実現し、表T…
正解:DISTINCT
要点:関係代数の射影は重複を除くのでSQLではDISTINCTが要る
関係代数の射影は集合演算なので、結果に重複する行は現れない。一方SQLのSELECTは既定で重複行をそのまま返すため、A列とC列だけを取り出すと同じ値の組が複数出てしまう。重複を取り除くDISTINCTを指定することで、射影の結果と一致させられる。
出典:平成29年度 秋期 応用情報技術者試験 午前 問28(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。