Gegeben sei die folgende relationale „Geschäftsdatenbank“ einer Kaufhauskette:
(Es kann davon ausgegangen werden, dass eine Abteilung nur von einem Angestellten geleitet wird, welcher selbst in dieser Abteilung tätig ist.)
Im obigen Schema werden Fremdschlüssel durch eine Linie über dem entsprechenden Attribut gekennzeichnet.
Falls der Name der referenzierten Relation nicht dem Namen des Fremdschlüssels entspricht, wird der Name der Relation in eckigen Klammern hinter dem Fremdschlüssel angegeben.
Im Tupelkalkül können neue Tupel durch den Tupelkonstruktor [] aus den Komponenten anderer Tupelvariablen erzeugt werden.
Die Attributnamen im Schema des neuen Tupels werden dabei von den Attributnamen der jeweiligen Komponenten übernommen.
Zum Beispiel gibt folgender Ausdruck die Namen aller Angestellten zurück:
Im Bereichskalkül kann der Unterstrich _ als Platzhalter genutzt werden, falls ein Attribut einer Relation nicht benötigt wird:
{la∣Filiale(nr,st,la)}={la∣Filiale(_,_,la)}
Formulieren Sie die folgenden Anfragen jeweils im Tupel- und im Bereichskalkül.
Für Anfragen im Tupelkalkül soll darüber hinaus das Schema aller freien Variablen angegeben werden.
TK:
TK:VariablennameSchema(t)=aus welchem SchemaSchema(Angestellter);{Was zuru¨ckgegeben werden soll[t.Name]∣Welches Schema finalt∈Angestellter∧Bedingungt.Gehalt<2000}
BK:
BK:{Was returned werden sollna∣Tupel die wir checken∃ge:Schema + Tupel die wir brauchenAngestellter(_,na,ge,_,_,_)∧Bedingungge<2000}
a) Bestimmen Sie die Namen aller Angestellten mit einem Gehalt von weniger als 2000.
b) Erstellen Sie eine Liste aller Verkaufsnummern mit Verkaufsdatum, die in den Abteilungen im 3. Stock verkauft wurden und deren Lieferant entweder aus Italien oder aus Frankreich kommt.
c) Bestimmen Sie für alle Filialen in der Stadt Köln, die Nummern und Namen aller Angestellten sowie die Abteilungsnamen, in denen diese Angestellten arbeiten.
d) Bestimmen Sie die Nummern, Namen, Gehalt und Geburtsjahr aller Angestellten, die am 01.10.2023 etwas verkauft haben und keine Leiter einer Abteilung sind.
Zeigen Sie, wie man die folgenden Operationen der relationalen Algebra sowohl im Tupel- als auch im Bereichskalkül darstellen kann. Für Anfragen im Tupelkalkül soll darüber hinaus das Schema aller freien Variablen angegeben werden.