![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Mit Operatoren kann man im Relationenmodell aus vorhandenen Relationen neue erzeugen. Wir wissen: Eine Relation entspricht einer Tabelle. Operatoren verknüpfen also Tabellen miteinander und als Ergebnis erhält man eine neue Tabelle (man nennt das ganze Relationenalgebra). Da eine Relation eine Teilmenge ist, kommen einige der Operatoren wie beispielsweise Vereinigung oder Durchschnitt aus der Mengenlehre (Mathematik!). Welche Operatoren gibt es? Diese Frage beantwortet folgende Tabelle:
Operator | Schreibweise | Bedeutung |
Durchschnitt | R ![]() |
Schnittmenge |
Vereinigung | R ![]() |
Vereinigungsmenge |
Differenz | R \ S | Differenz zweier Mengen |
Produkt | R x S | kartesisches Produkt zweier Mengen |
Selektion | ![]() |
Auswahl von Zeilen gemäß einer Bedingung (Formel), Streichung von Zeilen |
Projektion | ![]() |
Auswahl von Spalten (Attribute), Streichung von Spalten |
Join | R ![]() |
Zwei Tabellen treffen sich (join!) über eine gemeinsame Spalte, die Ergebnistabelle enthält die Zeilen mit identischen Werten in der gemeinsamen Spalte |
Beim Durchschnitt zweier Relationen: R S schaut man, welche Zeilen sowohl in der einen als auch in der anderen Tabelle vorkommen.
Bei der Vereinigung zweier Relationen: R S werden die Zeilen beider Tabellen zusammengefügt. Beachte: Da in einer Menge ein Element nicht mehrfach vorkommen darf, werden identische Zeilen in den beiden Tabellen in der Vereinigungsmenge nur ein einziges Mal berücksichtigt (sprich: Duplikate müssen entfernt werden!).
Beispiel: siehe Seite 85/86!
Bei der Differenz zweier Relationen: R \ S (sprich: "R ohne S") sind in der Ergebnistabelle nur noch die Zeilen, die zwar in R sind, aber nicht in S.
Beim kartesischen Produkt zweier Relationen: R x S (sprich: "R Kreuz S") erhält man eine "Riesentabelle": es wird jede Zeile der Tabelle R kombiniert mit allen Zeilen aus der Tabelle S, hat die Tabelle R m1 Spalten und die Tabelle S m2 Spalten, so hat die Ergebnistabelle insgesamt m1 + m2 Spalten. Und: Hat die Tabelle R n1 Zeilen und die Tabelle S n2 Zeilen, so hat die Ergebnistabelle insgesamt n1 * n2 Zeilen.
Beispiel: siehe Seite 86/87!
Bei der Selektion aus einer Relation R: Formel(R) sucht man sich aus einer Tabelle diejenigen Zeilen aus, die einer bestimmten Bedingung (Formel) genügen, in SQL entspricht dem die SELECT-Anweisung.
Beispiel: siehe Seite 87!
Bei der Projektion aus einer Relation R: Attribute(R) sucht man sich aus einer Tabelle bestimmte
Spalten aus, welche wird in den Attributen angegeben.
Beachte: Da in einer Menge ein Element nicht mehrfach vorkommen darf, werden identische Zeilen in der projizierten Tabelle nur ein einziges Mal berücksichtigt (sprich: Duplikate müssen entfernt werden!).
Beispiel: siehe Seite 87/88!
Beim Join zweier Relationen: R S müssen die beiden Relationen eine Spalte gemeinsam haben (sprich: eine Eigenschaft teilen). Zuerst wird das kartesische Produkt der beiden Relationen gebildet. Man erhält hier die "Riesentabelle" mit zwei gemeinsamen Spalten. Jetzt wird nach Zeilen mit identischen Werten in den gemeinsamen Spalten gesucht. Diese Zeilen bilden die Ergebnistabelle, wobei die gemeinsame Spalte aber nur einmal vorkommt (Sprich: "Eine der gleichen Spalten wird ausprojiziert"). Man benutzt den Join für die Kombination zweier Tabellen, die zum Beispiel über einen gemeinsamen Primärschlüssel verknüpft werden.
Beispiel: siehe Seite 88/89!
Siehe im Datenbanken-Reader S. 90/91 (Abschnitt 3.3)
<<<