Differenz

Differenz
Differenz


Die Differenz beschreibt alle Elemente aus einer Relation, die nicht zu einer zweiten Relation gehören. Die Differenz ist daher neben der Vereinigung und dem Durchschnitt eine Mengenoperationen der relationalen Algebra. Sie gehört zu den Grundoperatoren, die sich nicht von anderen Operatoren ableiten läßt.

Definition:

Seien R1(A1,...,An) und R2(A1,...,An) zwei vereinigungskonforme Relationen mit den Attributwerten a1,...,an.

Die Differenz-Operation ist definiert durch:

  Differenz(R1,R2):={(a1,...,an) | (a1,...,an) ∈ R1 und (a1,...,an) ∉ R2 } 

Das sind alle Elemente aus R1, die nicht in R2 liegen. Zu beachten ist, dass sich die Ausführung des Differenzoperators auf die gesamte Attributstruktur beider Eingangsmengen bezieht und nicht nur über irgendwelche Primärschlüssel-Attribute oder namensgleiche Attribute ausgeführt wird. Dies bedingt die bereits oben erwähnte Vereinigungskonformität. Der Operator ist nicht kommutativ anwendbar, d.h. es spielt für die Semantik des Ausdrucks sehr wohl eine Rolle, in welcher Reihenfolge die rechte und linke Anfrage als Eingangsmengen verwendet werden.

Beispiel: Welche Angestellten sind keine Kunden?

so funktioniert's:

Gemeinsame Attribute der Relationen Kunden und Angestellte sind Nachname, Vorname. Daher muss auf diese Attribute projiziert werden, damit die beiden Eingangsmengen auch vereinigungskonform sind.

 Differenz ( Projektion(Angestellte, Nachname, Vorname), Projektion(Kunden, Nachname, Vorname) )

so geht's nicht:

 Differenz(Angestellte, Kunden)  

Die beiden Eingangsmengen Kunden und Angestellte sind nicht vereinigungskonform. Sie haben nicht die gleichen Attribute und die Anzahl der Attribute ist unterschiedlich. Diese Operation ist so also rein syntaktisch nicht ausführbar.

siehe auch: EXCEPT-Operator im Anfragemengenausdruck von SQL, Rechengesetze-der-relationalen-Algebra

Quellen:

  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Faeskorn-Woyke, Heide/Bertelsmeier, Birgit/Riemer, Petra/Bauer, Elena: "Datenbanksysteme - Theorie und Praxis mit SQL2003, Oracle und MySQL", Pearson Education, München, 2007, ISBN 978-3-8273-7266-6
  • Kemper, Alfons/Eickler, André: "Datenbanksysteme", Oldenbourg, München, 2009, 978-3-486-59018-0
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2
  • Vossen, Gottfried: "Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme", Oldenbourg, München, 2008, ISBN 978-3-486-27574-2

Kategorie: Relationale Algebra, D