Relationenalgebra und SQL: Differenz

Aus Wikibooks
Zur Navigation springen Zur Suche springen
Wikibooks buchseite.svg Zurück zu "Vereinigung" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "Symmetrische Differenz"


Differenzmenge

Bei der Operation R \ S werden aus der ersten Relation alle Tupel entfernt, die auch in der zweiten Relation vorhanden sind. Die Differenz (sowie die symmetrische Differenz) ist keine monotone Operation, daher ist auch die Relationale Algebra im Vergleich zu anderen deklarativen Anfragesprachen (z.B. Datalog) nicht monoton.

Definition[Bearbeiten]

Voraussetzung[Bearbeiten]

  • Vereinigungsverträglichkeit von R und S

Beispiel[Bearbeiten]

R:
A B C
1 2 3
4 5 6
S:
A B C
7 8 9
4 5 6
R \ S:
A B C
1 2 3

In Worten: Ist das Tupel (123) aus R in der Relation S vorhanden?

  • Wenn ja: Dann gehört das Tupel nicht zur Relation R\S.
  • Wenn nein: Dann gehört das Tupel in die neue Relation R\S.

Danach gehe weiter zum nächsten Tupel von R mit der gleichen Prüfung.

SQL[Bearbeiten]

SELECT * FROM R 
EXCEPT
SELECT * FROM S;

alternativ:

SELECT * FROM R 
MINUS
SELECT * FROM S;


Wikibooks buchseite.svg Zurück zu "Vereinigung" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "Symmetrische Differenz"