関係代数 (関係モデル)
R RENAME ( B AS X )
自然結合(natural join)は⋈と書かれる二項演算で、2つの関係に共通の属性の値が等しいすべての組み合わせからなる関係を返す。 2つの関係に共通の属性がない場合、これは直積に等しくなる。 自然結合では交換法則と結合法則が成り立つ。 すなわち、 R ▹ ◃ S = S ▹ ◃ R {\displaystyle R\triangleright \!\!\triangleleft \,S=S\triangleright \!\!\triangleleft \,R} であり、 ( R ▹ ◃ S ) ▹ ◃ T = R ▹ ◃ ( S ▹ ◃ T ) {\displaystyle (R\triangleright \!\!\triangleleft \,S)\triangleright \!\!\triangleleft \,T=R\triangleright \!\!\triangleleft \,(S\triangleright \!\!\triangleleft \,T)} である。 関係代数演算において、この交換法則と結合法則はクエリ最適化のために活用することができる。
例えば関係代数では、書籍データベースから次の手順で、特定の書名の書籍を在庫としてもつ書店の店名と電話番号を問い合わせるであろう。
書籍関係と書名関係を書店IDで結合する。
結合して生成された関係を指定された書名で制限する。
制限して生成された関係を店名と電話番号で射影する。
この例の問い合わせは関係論理(関係計算)では次のような宣言的に定式化できる。
書籍データベースにおいて、書籍関係と書名関係のそれぞれの書店IDが同一であるものとし、指定された書名をもつ店名と電話番号を取得する。
関係代数は、エドガー・F・コッドが1969年に関係モデルを考案するまで、世間ではほとんど興味を持たれなかった。 コッドは関係代数をデータベース言語(問い合わせ言語)の基礎として提唱した。 コッドの関係代数に基づいて実装された最初のデータベース言語は、IBMの ISBL(Information Systems Base Language)であった。 ISBL は PRTV(Peterlee Relational Test Vehicle)という関係データベース管理システム(RDBMS、関係データベース)のデータベース言語である。 ISBL の開拓的な作業はデータベース分野の権威たちの多くにより、コッドの構想を使い勝手の良い言語に実装する道筋をつけたとして、称賛されている。 その後、ISBL という実装を引き継いだ IBM Business System 12 という RDBMS は業界で短期間の影響力をもった。 1998年にクリス・デイトとヒュー・ダーウェンは Tutorial D というデータベース言語を提唱した。 Tutorial D は、関係データベース理論を学習するために使われることを想定していた。 また Tutorial D は ISBL の基本的な考え方を利用している。 Rel という RDBMS は Tutorial D を実装している。 データベース言語 SQL は、関係代数に不完全ながらある程度基づいている。 SQL の演算対象となる表(テーブル)は厳密に関係と呼べるものではなく、また関係代数におけるいくつかの便利な法則も SQL では活用できない(そのため関係代数式の最適化、オプティマイザおよびデータベース利用者に大きな損失を与えている)。
R INTERSECT S
SELECT * FROM R WHERE A = 1