関係代数

更新日:

用語解説

関係代数は、関係を入力し、演算結果として新しい関係を得る手続的な問合せ体系です。選択、射影、和、差、直積などを基本とし、結合や除算などの演算を組み合わせて目的のデータを表します。

■ 試験で押さえるポイント

  • 選択σは条件を満たすタプル、射影πは必要な属性を取り出します。射影結果は関係なので理論上重複タプルを除き、SQLのSELECTが既定で重複を残す点と異なります。

  • 和と差には、属性数が同じで対応する属性の定義域が同じという和両立性が必要です。直積は二関係の全タプルの組合せを作り、濃度は原則として両濃度の積です。

  • 結合は直積から結合条件を満たす組を選ぶ演算と考えられ、等結合、自然結合、外結合などがあります。自然結合は同名属性を等値比較し、重複する結合列を一つにします。

  • 演算の入力も出力も関係である閉包性により、演算結果へさらに演算を適用できます。SQLは関係代数を基礎にしますが、NULLや重複を扱うため純粋な関係代数と完全には同じではありません。

■ 選択肢での判断ポイント

行の抽出=選択、列の抽出=射影、全組合せ=直積、対応行の組合せ=結合と識別します。和・差では和両立性、直積では行数の積を忘れません。

例: 社員が20タプル、部門が5タプルなら直積は20×5=10020\times5=100タプルです。そこから社員.部門番号=部門.部門番号\text{社員.部門番号}=\text{部門.部門番号}を選択して結合し、氏名と部門名を射影すれば所属一覧を得られます。

音声で聞く