SQL設計・ウィンドウ関数・関係代数 重要度:★★★出題: AM2
関係代数(選択・射影・結合・商・集合演算)
かんけいだいすう / Relational Algebra (Selection, Projection, Join, Division)
関係(テーブル)を入力として新しい関係を出力するリレーショナルモデル固有の演算体系(選択、射影、結合、商)と伝統的集合演算(和、差、共通、直積)。
3行速習ポイント
- 選択(Selection: σ)は条件を満たす「行(タプル)」を取り出し、射影(Projection: π)は指定した「列(属性)」を取り出して重複行を排除する
- 自然結合(Natural Join)は共通属性の値が等しいタプル同士を結合し、重複する共通属性列を1つにまとめる
- 商(Division: R ÷ S)は、関係Sのすべてのタプルと組み合わさっている関係Rの属性値を取り出す演算であり、SQLでは二重のNOT EXISTSで記述される
図解
図関係代数の4大固有演算とSQL対応
行・列操作
選択(σ)と射影(π)
選択は行の抽出(WHERE)、射影は列の抽出と重複排除(SELECT DISTINCT)
JOIN
自然結合(⋈)
共通属性の等値結合を行い、重複する共通属性列を1つに統合
全称量化
商演算(R ÷ S)
Sの全タプルを包含するRの属性組を抽出(二重NOT EXISTSで実装)
概要と本質
午前II試験で毎回1〜2問必ず出題される得点源分野です。関係代数式の結果の行数・列数を求める問題や、与えられた関係代数式と等価なSQL文を選択する問題が出題されます。
重要ポイント・コア概念
- 和(UNION)・差(EXCEPT/MINUS)・共通(INTERSECT)を行う2つの関係は、属性数(次数)と対応する属性の定義域(ドメイン)が一致している必要がある(和両立性)
- 関係代数における射影(π)および和(∪)は集合演算であるため自動的に重複タプルが除去される(SQLでこれに対応するのは `SELECT DISTINCT` および `UNION`)
- 直積(Cartesian Product: R × S)に選択条件(σ)を組み合わせたものが等結合(Equi-Join)であり、さらに重複列を射影で除いたものが自然結合である
午後I・午後II記述試験での攻略ポイント
午前IIの「商演算(R ÷ S)」問題では、まずSに含まれるすべての値(例:商品Aと商品Bの両方)を持っているRのグループ(例:得意先コード)を手計算でチェックすれば30秒で確実に解けます。
午後記述で使える加点キーワード(クリックでコピー)
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着データベーススペシャリスト 過去問演習で実践力を鍛える