Aufgabe 3-1: Natural Join
Zu welcher Operation der relationalen Algebra ist der natürliche Verbund (natural join) identisch, falls beide beteiligten Relationen alle Attribute gemeinsam haben? Begründen Sie Ihre Wahl.
Dem Schnitt , da der natural join wie der Name es schon sagt, versucht alle Attribute auf ihre natürliche Art und weise zu joinen und dies macht er indem er schaut ob die eine Attribute bei der anderen auch enthalten ist und verbindet diese dann mithilfe dieser Attribute
Aufgabe 3-2: Ableitung des Quotient-Operators (Relationale Algebra)
Bilden Sie die relationale Operation „Quotient“ durch die fünf relationalen Grundoperationen (Vereinigung, Differenz, Kartesisches Produkt, Selektion, Projektion) nach.
Kurze Version
Der Quotient-Operator ermittelt alle -Werte aus der Relation , die mit jedem -Wert aus der Relation verbunden sind.
Ableitung:
Schritte:
- Projektion () der relevanten Attribute von .
- Kartesisches Produkt () mit .
- Differenz () zwischen dem Kartesischen Produkt und .
- Projektion () auf die -Werte der fehlenden Paare.
- Differenz () zur Bestimmung des Quotienten.
Ausführliche Erklärung
Ziel:
Der Quotient-Operator soll alle -Werte aus der Relation liefern, die mit jedem -Wert aus der Relation in Beziehung stehen:
Schritt-für-Schritt-Ableitung:
- Projektion der relevanten Attribute:
- Wählt die Attribute von aus, die nicht in enthalten sind (z.B. ).
- Kartesisches Produkt mit :
- Erzeugt alle möglichen Kombinationen von -Werten aus mit -Werten aus .
- Differenz zur Identifikation fehlender Paare:
- Findet die Paare , die nicht in vorhanden sind.
- Projektion auf die -Werte der fehlenden Paare:
- Extrahiert die -Werte, die nicht mit allen -Werten aus verbunden sind.
- Endgültige Differenz zur Bestimmung des Quotienten:
- Entfernt die -Werte, die nicht mit jedem aus verbunden sind, aus der ursprünglichen Projektion.
Zusammenfassung:
Durch die Kombination der Projektion, Kartesisches Produkt und Differenz wird der Quotient-Operator konstruiert. Dies stellt sicher, dass nur die -Werte ausgewählt werden, die mit jedem -Wert aus in Beziehung stehen.
Beispiel zur Ableitung des Quotient-Operators
R \div S
Gegebene Relationen:
Relation (Lehrer-Kurse):
Lehrer Kurs Alice Mathe Alice Physik Bob Mathe Bob Chemie Carol Mathe Carol Physik Carol Chemie Relation (Alle Kurse):
Kurs Mathe Physik Chemie Ziel: Finde alle Lehrer, die alle Kurse aus unterrichten.
Schritte zur Ableitung:
- Projektion der relevanten Attribute:
- Kartesisches Produkt mit :
- Differenz zwischen Kartesischem Produkt und :
- Erklärung: Alice unterrichtet nicht Chemie und Bob unterrichtet nicht Physik.
- Projektion auf die -Werte der fehlenden Paare:
- Endgültige Differenz zur Bestimmung des Quotienten:
Ergebnis: Nur Carol unterrichtet alle Kurse aus .
Aufgabe 3-3: Kardinalitäten
Geben Sie zu jeder Grundoperation der relationalen Algebra die Kardinalität des Ergebnisses bezogen auf die Kardinalitäten der Grundmengen an. Dabei sollen obere Schranken der Ergebniskardinalität möglichst klein und untere Schranken möglichst groß sein. Markieren Sie die korrekte Ordnungsrelation und den korrekten Operand in den entsprechenden Boxen.
Beispiel:
|A ∪ A| = |A|
a)
b)
c)
d)
e)
Aufgabe 3-4: Anfragen in relationaler Algebra
Gegeben seien die Relationen Kunde, Personal, Verkauf, Inventar und Auftragsposten als Datennmodell für eine Möbel-Verkauf-Datenbank:
Hinweis
Am Ende des Übungsblatts finden Sie zum Verständnis eine passende Beispielausprägung des Relationsschemas. Achten Sie darauf, dass Ihre Anfrage für jede mögliche Ausprägung der Datenbank das richtige Ergebnis liefert; nicht nur für die gegebene Beispielausprägung.
Formulieren Sie die folgenden Anfragen durch Ausdrücke über der relationalen Algebra:
a) Bestimme die Artikelbezeichnung (art_bez) und den Lagerort für alle Artikel mit einem Preis von über 5000.
b) Bestimme die Vornamen aller Mitarbeiter, die in München im Einsatz sind und mindestens ein Produkt seit dem 24.07.2023 verkauft haben.
Anmerkung: In der SQL Datenbank ist das Datum '2019' nicht '2023' man wird niemals ein Ergebnis für die Abfrage bekommen
c) Bestimme die Personalnummern der Vorgesetzten aller Mitarbeiter, die etwas an einen Kunden aus dem Bezirk mit der PLZ „74391“ verkauft haben.
d) Bestimme die Auftragsnummern (auftr_nr) aller Bestellungen, die „Betten Kaiser“ aufgegeben hat und die von „Michael Roser“ bearbeitet wurden.
e) Bestimme das Bestelldatum und die Artikelnummern (art_nr) aller Aufträge, deren Produkte im gleichen Ort lagern, in dem der Kunde seinen Sitz hat und die von einem Mitarbeiter mit einem Gehalt von unter 4500 verkauft wurden.
Aufgabe 3-5: Anfragen mit dem Quotient-Operator
Gegeben seien die Relationen Lieferant (L
), Teil (T
) und Projekt (P
) als Datenmodell für eine Lieferanten-Teile-Projekte-Datenbank. Ferner existiert eine Relation LTP, die die Beziehungen der vorgenannten Relationen modelliert:
Außerdem sei die Relation RT definiert durch:
Was berechnen die folgenden Ausdrücke?
a)
-
Nummern der Lieferant*innen, die jedes rote Teil liefern.
Erklärung:
Der Quotient ermittelt alle Lieferanten (lnr
), die für jedestnr
in der Relation RT (rote Teile) eine entsprechende Lieferung in LTP haben. Das Ergebnis sind die Nummern der Lieferant*innen, die alle roten Teile liefern.
b)
-
Alle Lieferant*innen, die in mindestens einem Projekt alle roten Teile liefern.
Erklärung:
Der Quotient identifiziert Kombinationen von Lieferanten (lnr
) und Projekten (pnr
), bei denen der Lieferant in diesem Projekt alle roten Teile (tnr
in RT) liefert. Die Projektion extrahiert diese Lieferanten-Projekt-Kombinationen.
c)
-
⇒ Alle Lieferant*innen, die jedes Rote Teil in jeder Menge an mind. Ein Projekt liefern
Erklärung:
Der Ausdruck ergibt ein leeres Set (∅), was bedeutet, dass es keine Lieferanten gibt, die jedes rote Teil in jedem Projekt liefern. Daher ist die Projektion auf dieses Ergebnis ungültig und liefert ebenfalls kein sinnvolles Ergebnis.
Beispielausprägung für die Möbel-Verkauf-Datenbank
Kunde
kund_nr | kund_name | adresse | ort | plz |
---|---|---|---|---|
’GK4441' | 'Müller & Partner' | 'Schillerstr. 56' | 'Stuttgart' | '74598' |
'GK4442' | 'Stadtverwaltung Landshut' | 'Am Rathausplatz' | 'Landshut' | '85321' |
'GK4477' | 'Betten Kaiser' | 'Industriepark' | 'Goettingen' | '35134' |
'GK4489' | 'Stadtverwaltung Köln' | 'Am Dom 8' | 'Koeln' | '50987' |
'EK5689' | 'Paula Peterson' | 'Maistr. 46' | 'Muenchen' | '84977' |
'EK5558' | 'Manfred Keller GmbH' | 'Mozartstr. 45' | 'Stuttgart' | '74391' |
'GK4333' | 'Planungsbüro Bertoldt' | 'Bauhofstr. 87' | 'Duisburg' | '49155' |
'GK4688' | 'Ulrich & Co.' | 'Rosenheimer Str. 234' | 'Muenchen' | '81377' |
'EK8992' | 'Peter Hauser' | 'Am Bismarckturm 2' | 'Stuttgart' | '76232' |
'EK8993' | 'Miriam Zechmeister KG' | 'Gänsemarkt 36' | 'Hamburg' | '21357' |
'GK4443' | 'Freiling & Partner' | 'Engenser Landstr. 17' | 'Koblenz' | '54621' |
'GK4490' | 'Einrichtungshaus Röder' | 'Rheinlanddamm 199' | 'Bonn' | '50321' |
'GK4491' | 'Stuhl Kaiser' | 'Im Tal 4' | 'Muenchen' | '80432' |
'GK4492' | 'Planmöbel GmbH' | 'Am Stockborn 5' | 'Frankfurt' | '61234' |
'GK4493' | 'Systemmöbel Wisst & Co.' | 'Greinstr. 2' | 'Koeln' | '53261' |
'GK0310' | 'Sitzmöbel Engels' | 'Karl-Marx-Str. 4' | 'Cottbus' | '03096’ |
Personal
pers_nr | nachname | vorname | einsatz | vorgesetzt | gehalt |
---|---|---|---|---|---|
1 | ’Winter' | 'Margot' | 'Muenchen’ | 8 | 4200 |
2 | ’Roser' | 'Michael' | 'Hamburg’ | 0 | 5200 |
3 | ’Thomas' | 'Fred' | 'Hamburg’ | 2 | 4000 |
4 | ’Scholl' | 'Friedrich' | 'Muenchen’ | 8 | 5300 |
5 | ’Hartinger' | 'Roswita' | 'Muenchen’ | 8 | 4800 |
6 | ’Reitzig' | 'Hans-Peter' | 'Frankfurt’ | 7 | 5550 |
7 | ’Moll' | 'Rolf' | 'Frankfurt’ | 0 | 5900 |
8 | ’Sandner' | 'Ernst' | 'Muenchen’ | 0 | 6300 |
9 | ’Starck' | 'Brigitte' | 'Koeln’ | 0 | 5200 |
10 | ’Anger' | 'Lars' | 'Koeln’ | 9 | 5200 |
11 | ’Freudenfeld' | 'Burghard' | 'Muenchen’ | 8 | 5500 |
12 | ’Neumann' | 'Gabriele' | 'Hamburg’ | 2 | 4900 |
Verkauf
auftr_nr | bestelldatum | pers_nr | kund_nr |
---|---|---|---|
20002 | ’2019-07-23’ | 5 | ’GK4688’ |
20003 | ’2019-07-23’ | 1 | ’EK8992’ |
20004 | ’2019-07-23’ | 8 | ’EK5558’ |
20005 | ’2019-07-24’ | 7 | ’GK4491’ |
20006 | ’2019-07-24’ | 12 | ’EK8993’ |
20007 | ’2019-07-24’ | 12 | ’GK4477’ |
20008 | ’2019-07-24’ | 1 | ’GK4442’ |
20009 | ’2019-07-24’ | 9 | ’GK4492’ |
20010 | ’2019-07-24’ | 11 | ’EK5689’ |
20011 | ’2019-07-24’ | 8 | ’GK4441’ |
Inventar
art_nr | art_bez | lagerbest | lagerort | preis |
---|---|---|---|---|
104002 | ’BUECHERREGAL’ | 2 | ’Muenchen’ | 4100.00 |
104002 | ’BUECHERREGAL’ | 3 | ’Frankfurt’ | 4100.00 |
104002 | ’BUECHERREGAL’ | 1 | ’Koeln’ | 4100.00 |
301001 | ’SCHLAFZIMMER’ | 20 | ’Koeln’ | 4200.00 |
104789 | ’BAUERNSCHRANK’ | 5 | ’Frankfurt’ | 780.00 |
201080 | ’COUCH STOCKHOLM’ | 4 | ’Muenchen’ | 4800.00 |
201081 | ’COUCH MIRABELL’ | 2 | ’Muenchen’ | 2700.00 |
203333 | ’COUCH GARNITUR KLASSIKA’ | 6 | ’Koeln’ | 4300.00 |
203333 | ’COUCH GARNITUR KLASSIKA’ | 10 | ’Hamburg’ | 4300.00 |
104003 | ’SCHRANKWAND’ | 0 | ’Muenchen’ | 10500.00 |
Auftragsposten
auftr_nr | art_nr | menge |
---|---|---|
20002 | 104002 | 2 |
20002 | 203333 | 3 |
20002 | 201080 | 1 |
20003 | 104888 | 5 |
20003 | 301001 | 1 |
20004 | 104003 | 1 |
20006 | 201080 | 2 |
20007 | 401001 | 2 |
20008 | 401000 | 1 |
20011 | 401001 | 1 |