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:

  1. Projektion () der relevanten Attribute von .
  2. Kartesisches Produkt () mit .
  3. Differenz () zwischen dem Kartesischen Produkt und .
  4. Projektion () auf die -Werte der fehlenden Paare.
  5. Differenz () zur Bestimmung des Quotienten.

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.

SELECT art_bez, lagerort FROM Inventar
WHERE preis > 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

SELECT DISTINCT P.vorname
FROM Personal P
JOIN Verkauf V ON P.pers_nr = V.pers_nr
WHERE P.einsatz = 'Muenchen'
  AND V.bestelldatum >= '2023-07-24';

c) Bestimme die Personalnummern der Vorgesetzten aller Mitarbeiter, die etwas an einen Kunden aus dem Bezirk mit der PLZ „74391“ verkauft haben.

SELECT DISTINCT p.vorgesetzt
FROM Personal p
JOIN Verkauf v ON p.pers_nr = v.pers_nr
JOIN Kunde k ON v.kund_nr = k.kund_nr
WHERE k.plz = '74391';
 

d) Bestimme die Auftragsnummern (auftr_nr) aller Bestellungen, die „Betten Kaiser“ aufgegeben hat und die von „Michael Roser“ bearbeitet wurden.

SELECT DISTINCT v.auftr_nr
FROM Verkauf v
JOIN Kunde k ON v.kund_nr = k.kund_nr
JOIN Personal p ON v.pers_nr = p.pers_nr
WHERE k.kund_name = 'Betten Kaiser'
  AND p.vorname = 'Michael'
  AND p.nachname = 'Roser';

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.

SELECT DISTINCT v.bestelldatum, ap.art_nr
FROM Verkauf v
JOIN Auftragsposten ap ON v.auftr_nr = ap.auftr_nr
JOIN Inventar i ON ap.art_nr = i.art_nr
JOIN Personal p ON v.pers_nr = p.pers_nr
JOIN Kunde k ON v.kund_nr = k.kund_nr
WHERE k.ort = i.lagerort
  AND p.gehalt < 4500;

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 jedes tnr 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_nrkund_nameadresseortplz
’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_nrnachnamevornameeinsatzvorgesetztgehalt
1’Winter''Margot''Muenchen’84200
2’Roser''Michael''Hamburg’05200
3’Thomas''Fred''Hamburg’24000
4’Scholl''Friedrich''Muenchen’85300
5’Hartinger''Roswita''Muenchen’84800
6’Reitzig''Hans-Peter''Frankfurt’75550
7’Moll''Rolf''Frankfurt’05900
8’Sandner''Ernst''Muenchen’06300
9’Starck''Brigitte''Koeln’05200
10’Anger''Lars''Koeln’95200
11’Freudenfeld''Burghard''Muenchen’85500
12’Neumann''Gabriele''Hamburg’24900

Verkauf

auftr_nrbestelldatumpers_nrkund_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_nrart_bezlagerbestlagerortpreis
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_nrart_nrmenge
200021040022
200022033333
200022010801
200031048885
200033010011
200041040031
200062010802
200074010012
200084010001
200114010011