Datenbanken Online Lexikon TH Köln, Campus Gummersbach
Aktuelle Änderungen - Suchen:

Division

Division
Division


Die Division ist die Umsetzung des "F�r-Alle-Quantors" in der relationalen Algebra. Sie beschreibt alle Tupel aus einer Relation, die mit allen anderen Tupeln einer anderen Relation verkn�pft sind. Die Division ist eine (ableitbare) Operation der relationalen Algebra. Die Formel zur Ableitung der Division aus Projektion, Differenz und Natural Join findet man weiter unten in diesem Artikel.

Definition:

Wir betrachten zwei Relationen R und S. Die Attribute von S sollen in den Attributen von R enthalten sein, d.h. f�r alle Attributnamen von S gibt es namensgleiche Attribute in R. Die Attribute der Ergebnismenge der Division entsprechen der Differenzmenge X der Attribute von R und S und erf�llen zus�tzlich folgende Bedingung

Die Division R � S besteht aus allen Tupeln x aus X, so dass die folgenden beiden Bedingungen f�r jedes x aus X gelten:

 Zu jedem s aus S gibt es eine Fortsetzung r aus R, so dass die Projektion von r auf S gleich s ist.
 Die Projektion  von r auf X stimmt mit x �berein.

Anschaulich bedeutet die Division, dass die Tupel von R projiziert auf die Differenzmenge X in der Division �brig bleiben, die mit allen Tupeln von S verkn�pft sind. Die Division ist nicht kommutativ, d.h. R � S ist ungleich S � R.

Die Division geh�rt nicht zu den Grundoperatoren der relationalen Algebra, da sie sich durch eine Formel aus Projektion, Differenz und Natural Join ableiten l�sst:

 R � S = ∏X(R) - ∏X((∏X(R)*S)-R)(siehe Kemper/Eickler, Seite 92)

Damit die f�r die Ausf�hrung der Division notwendigen Eigenschaften f�r die beiden Relationen R und S gegeben sind, m�ssen gegebenenfalls Projektionen und/oder Umbenennungen als vorbereitende Aktionen durchgef�hrt werden. Falls bei der Ausf�hrung Tupel mehrfach auftreten, werden diese automatisch eliminiert.

Die Division ist in SQL nicht direkt enthalten, sondern muss durch einen Umweg �ber ein doppeltes NOT EXISTS oder durch Z�hlen (siehe: HAVING-Klausel) von Tupeln ausgedr�ckt werden.

1.Beispiel:

Eine Relation Angestellte hat neben den Angestellten-Daten die Attribute Abteilung und Beruf. Dann beantwortet der nachfolgende Operatorbaum die Frage, in welchen Abteilungen alle Berufe vertreten sind. Hier sind R und S die Relationen R(Ang_Nr, Abteilung, Beruf) und S(Beruf).

2.Beispiel:

Als zweites Beispiel seien folgende Relationen gegeben: Mitarbeiter, Abteilungen und die Abteilungszugeh�rigkeiten:

 Frage: Welche Mitarbeiter haben in allen Abteilungen gearbeitet? 
 Zeigen Sie Mita_ID, Name, Vorname, Ort, Gehalt an.
Mita_IDNameVornameOrtGehalt
4711M�llerAgatheGummersbach3000,00
4713MeierHugoK�ln3400,00
4715SchmittErwinGummersbach2500,00
4717SchmitdElseGummersbach 
Abt_IDBezeichnungBudgetLeiter
10Einkauf240000,004711
20Verkauf350000,004897
30Produktion400000,004715
Abt_IDMita_IDvonbis
10471110.200012.2002
20471101.200302.2007
10471103.200711.2009
30471112.200911.2010
10471310.200112.2003
20471301.200409.2005
30471310.200509.2009
10471510.200012.2004
20471701.200207.2008
30471708.200809.2010
  Mitarbeiter * ( Projektion(Abt_ID, Mita_ID)(Abteilungszugeh�rigkeiten) � Projektion(Abt_ID)(Abteilungen) )

  R = (Projektion(Abt_ID, Mita_ID)(Abteilungszugeh�rigkeiten)) =  {Abt_ID, Mita_ID} 
    = { (10,4711), (20,4711), (30,4711), (10,4713), (20,4713), (30,4713), (10,4715), (20,4717) }
  S = Projektion(Abt_ID)(Abteilungen) = {Abt_ID} = {10, 20, 30} 
  X = {Mita_ID}
  Ergebnismenge = {Mita_ID, Name, Vorname, Ort, Gehalt}

  X, das Zwischenergebnis nach der Division ist:
Mita_ID
4711
4713
 Das endg�ltige Ergebnis nach dem Natural Join von X mit der Mitarbeiter-Tabelle ist:
Mita_IDNameVornameOrtGehalt
4711M�llerAgatheGummersbach3000,00
4713MeierHugoK�ln3400,00
  • Die Projektionen sind zum einen notwendig, um die Mengen R und S jeweils auf die semantisch relevanten Informationen zu beschr�nken (semantisch ohne Bedeutung: Budget, Leiter, von, bis). Semantisch irrelevante Attribute in R k�nnen unter Umst�nden dazu f�hren, dass keine Tupel gefunden werden, die in allen Attributwerten von X identisch sind. Zudem ist die Menge S so zu begrenzen, dass alle Attribute in R vorkommen (�berfl�ssige Attribute: Bezeichnung, von, bis).
  • Der abschlie�ende Natural Join? erm�glicht es nun, die Ergebnismenge um weitere relevante Informationen des Mitarbeiters zu erweitern.
  • Diese L�sung ist nur ein m�glicher L�sungsweg, so h�tte z.B. der Natural Join auch bereits fr�her ausgef�hrt werden k�nnen, so dass die Mitarbeiter-Attribute zu R geh�rt h�tten.

siehe auch: Operatorbaum, Projektion, Relationale-Algebra, EXISTS

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