関係代数 (関係モデル)
属性名変更により返される組の集合を t' とすると、属性名変更は次のように定義される。
β [ n e w ← o l d ] ( R ) := { t ′ | t ′ ( R − n e w ) = t ( R − o l d ) ∧ t ′ ( n e w ) = t ( o l d ) } {\displaystyle \beta _{[\mathrm {new} \leftarrow \mathrm {old} ]}(R):=\{t'|t'(R-\mathrm {new} )=t(R-\mathrm {old} )\land t'(\mathrm {new} )=t(\mathrm {old} )\}}
等結合(equijoin)は、θ結合においてθ比較の比較演算子が「 = 」である結合演算である。
例
定義
関係Rと関係Sがあり、これらの関係内の属性集合A、Bについて A ∈ R、B ∈ S とすると、等結合は次のように定義される。
準結合(半結合、semijoin)は、自然結合に似た二項演算R⋉Sで、自然結合R⋈Sの属性をRに含まれているもののみに射影した関係を返す。
例
定義
関係 R ( A 1 , . . . , A n , B 1 , . . . , B n ) {\displaystyle R(A_{1},...,A_{n},B_{1},...,B_{n})} と関係 S ( B 1 , . . . , B n , C 1 , . . . , C n ) {\displaystyle S(B_{1},...,B_{n},C_{1},...,C_{n})} の準結合は、次のように定義される。
任意の2つの関係 R = ( a 1 , a 2 , . . . , a n ) {\displaystyle R={(a_{1},a_{2},...,a_{n})}} と S = ( b 1 , b 2 , . . . , b m ) {\displaystyle S={(b_{1},b_{2},...,b_{m})}} について、直積は次のように定義される。
基本的な関係代数の演算子は大きく2つに分類することができる。 集合論に基づく演算子と関係代数に特有な演算子である。 まず集合論に基づく演算子(和、差、交わり (交差) 、直積)を説明し、続けて関係代数特有の演算子(制限 (選択) 、射影、結合、商)を説明する。 また各演算子について、データベース言語(問い合わせ言語)SQL と Tutorial D による関係代数式の表現例を示す。
先述の2つの法則を、制限演算の連なりを分割/結合するために使うことができる。 いくつかの情況においては、制限演算を結合することは有効である。 なぜなら制限演算子を2回使うのではなく1回で済むからである。 別の情況においては、複合した制限演算を分割することが有効である。 このときは、複合した制限演算を木構造内で移動できない場合に、個々の制限演算に分割することで、移動できるようになる。
σ A ∧ B ( R ) = σ A ( σ B ( R ) ) = σ B ( σ A ( R ) ) {\displaystyle \sigma _{A\land B}(R)=\sigma _{A}(\sigma _{B}(R))=\sigma _{B}(\sigma _{A}(R))}
σ A ∨ B ( R ) = σ A ( R ) ∪ σ B ( R ) {\displaystyle \sigma _{A\lor B}(R)=\sigma _{A}(R)\cup \sigma _{B}(R)}