Relationenalgebra und SQL: Division

Aus Wikibooks

Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu "Umbenennung" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "Minimalität und Vollständigkeit"


Die Division kann man sich als Gegenoperation (oder Umkehroperation) zum Kartesischen Produkt vorstellen.

Seien R und S Relationen mit den Attributmengen β und γ.
Bei \beta \cap \gamma = \varnothing gilt dann:

T = R \times S
T \div S = R

[Bearbeiten] Definition

Da die Division eine abgeleitete Operation ist, definieren wir sie mit Hilfe der anderen Operationen der RA. Seien R, S Relationen und β die zu R sowie γ die zu S dazugehörigen Attributmengen. R' := \beta \setminus \gamma.

Die Division ist dann definiert durch:

R \div S := \pi_{R'}(R) - \pi_{R'}((\pi_{R'}(R) \times S) - R)

[Bearbeiten] Beispiel

Gegeben ist eine Relation R, die Väter und Mütter, deren Kinder und das Alter dieser Kinder enthält. Zusätzlich dazu ist eine Relation S gegeben, die einige Kinder und deren Alter enthält: Maria (4) und Sabine (2). Dividiert man R durch S, so erhält man als Ergebnis eine Relation, die nur noch diejenigen Ehepaare enthält, die sowohl eine Tochter Maria mit Alter 4 als auch eine Tochter Sabine mit Alter 2 haben:

R:
Vater Mutter Kind Alter
Hans Helga Harald 5
Hans Helga Maria 4
Hans Ursula Sabine 2
Martin Melanie Gertrud 7
Martin Melanie Maria 4
Martin Melanie Sabine 2
Peter Christina Robert 9
S:
Kind Alter
Maria 4
Sabine 2
R÷S
Vater Mutter
Martin Melanie


Wikibooks buchseite.svg Zurück zu "Umbenennung" | One wikibook.svg Hoch zu "Inhaltsverzeichnis" | Wikibooks buchseite.svg Vor zu "Minimalität und Vollständigkeit"
Persönliche Werkzeuge