6

SQL 式に相当する関係代数はありますNOT INか?

たとえば、次の関係がある場合:

A1  |  A2
----------
x   |  y
a   |  b
y   |  x

A1 が A2 に含まれるリレーションのすべてのタプルを削除したいと考えています。SQL では、次のクエリを実行できます。

SELECT
    *
FROM
    R
WHERE
    R.A1 NOT IN
        (
        SELECT
            A2
        FROM
            R
        )
/

本当に私を困惑させているのは、関係代数選択演算子内でサブクエリを実行する方法です.これは可能ですか?:

σここにいくつかのサブクエリR

4

3 に答える 3

6

関係代数では、デカルト積を使用してこれを行うことができます。何かのようなもの:

R - ρ a1,a2a11,a21A11 = A22a11,a21 (R) x ρ a12, a22 (R))))

  • R, fe の列の名前を a1 から a11 (左側) および a12 (右側) に変更します。
  • 名前が変更された列で R の外積を取る
  • a11 が a22 と等しい行を選択する
  • a12 と a22 を射影し、a11 と a21 を保持
  • 名前を a1 と a2 に変更

これにより、一致した行が得られます。これを R から減算して、一致しない行を見つけます。

于 2012-09-22T07:33:01.477 に答える
3
于 2013-10-02T22:29:06.980 に答える