Aufgabe 1 - TUM Informatik III: Datenbanksysteme
Aufgabe 1 - TUM Informatik III: Datenbanksysteme
Aufgabe 1 - TUM Informatik III: Datenbanksysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Formulierung im Tupelkalkül<br />
ΠMatrNr,Vorgnger<br />
−<br />
VorlNr=Nachfolger<br />
hören voraussetzen<br />
Studenten<br />
hören<br />
Abbildung 1: Operatorbaum<br />
1. Wir selektieren die Studenten, die überhaupt eine Vorlesung hören (1. Existenzquantor).<br />
2. Wir wählen davon die Studenten aus, die eine Vorlesung hören, die einen Vorgänger<br />
hat (2. Existenzquantor).<br />
3. Wir fordern dann, dass die bisher ausgewählten Studenten diese Vorgängervorlesung<br />
nicht hören (negierter Existenzquantor).<br />
{s |s ∈ Studenten ∧ ∃ h ∈ hören<br />
(h.MatrNr = s.MatrNr ∧ ∃ v ∈ voraussetzen<br />
(h.VorlNr = v.Nachfolger ∧ ¬∃ h1 ∈ hören<br />
(h1.VorlNr = v.Vorgänger ∧ h1.MatrNr = s.MatrNr)))}<br />
Formulierung im Domänenkalkül<br />
Das Vorgehen ist analog zu dem beim relationalen Tupelkalkül. Unterschiede sind:<br />
1. Quantoren beziehen sich auf Domänenvariablen anstatt auf Tupelvariablen.<br />
2. Joinbedingungen können über Wiederverwendung von Domänenvariablen in Tupelkonstruktoren<br />
ausgedrückt werden, um somit Gleichheit von Variablen auszudrücken.<br />
3. Da über schon gebundene Domänenvariablen die hören-Tupel konstruiert werden können,<br />
die zu einem Ergebnis-Studenten nicht existieren dürfen, entfällt das ¬∃ hier.<br />
{[m,n] |∃ s([m,n,s] ∈ Studenten ∧ ∃ w([m,w] ∈ hören∧<br />
∃ v([v,w] ∈ voraussetzen ∧ ¬([m,v] ∈ hören))))}<br />
Wenn die bisher bestimmten Anfrageergebnisse um die Studenten erweitert werden sollen,<br />
denen die indirekten Grundlagen 2. Stufe zu gehörten Vorlesungen fehlen, ergibt sich keine<br />
andere Menge.<br />
4