DBIS
Übungsblatt 4Erläuterungen
Wintersemester 15/16 1
DBIS
Aufgabe 1Relationales Datenbankmodell
Wintersemester 15/16 2
DBIS 3
Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen
Wintersemester 15/16
Kunde(KundenNr, Name, Adresse)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*, Telefon)
DBIS 4
Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen
Wintersemester 15/16
Kunde(KundenNr, Name, Adresse)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*, Telefon)
Problem: Nichtatomare Attribute
DBIS
Überführung Schritt 2 – Nichtatomare Attribute auflösen
Wintersemester 15/16 5
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen1:1-Beziehungen
Wintersemester 15/16 6
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen1:N-Beziehungen
Wintersemester 15/16 7
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen1:N-Beziehungen
Wintersemester 15/16 8
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen
Wintersemester 15/16 9
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen
Wintersemester 15/16 10
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen
Wintersemester 15/16 11
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
hasst(KundenNr, HSt)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen
Wintersemester 15/16 12
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
hasst(KundenNr, HSt)
bevorzugt(KundenNr, HSt)
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen
Wintersemester 15/16 13
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
hasst(KundenNr, HSt)
bevorzugt(KundenNr, HSt)
beteiligt_an(Mutter,Tochter)
DBIS
Überführung Schritt 4 – Logische Prüfung des Modells
Wintersemester 15/16 14
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
hasst(KundenNr, HSt)
bevorzugt(KundenNr, HSt)
beteiligt_an(Mutter,Tochter)
DBIS
Überführung Schritt 4 – Logische Prüfung des Modells
Wintersemester 15/16 15
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
hasst(KundenNr, HSt)
bevorzugt(KundenNr, HSt)
beteiligt_an(Mutter,Tochter)
Die KartenNr in PKW?!
Eigene Relation
für Miete semantisch
sinnvoll
DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösenN:M-Beziehungen
Wintersemester 15/16 16
Kunde(KundenNr, Name)
hat_Adresse(KundenNr, Strasse, Ort, PLZ)
Pkw(FahrzeugNr, Farbe, Baujahr, KartenNr, KdnNr, HSt, WSt)
Hersteller(Name, Hauptsitz)
Werkstatt(Name, FaxNr*)
hat_telefon(WerkstattName, TelefonNr)
empfiehlt(HSt,WSt)
hasst(KundenNr, HSt)
bevorzugt(KundenNr, HSt)
beteiligt_an(Mutter,Tochter)
Telefonnummern-Sharing?!
DBIS
Überführung Schritt 4 – Kardinalitäten durch Optionalität retten
• „Nulloption“ auf der N-Seite in 1:N-Beziehungen bereits
vorhanden
• „Nulloption“ in N:M bereits vorhanden
PKW.KdNr bleibt als sinnvoll übrig
• Weitere Attribute optional vorstellbar (eigenes Modell überprüfen):
• PKW.Farbe?
• Vermietung.KartenNr?
• Attribute in hat_Adresse?
• Hersteller.Hauptsitz?
Wintersemester 15/16 17
DBIS
Überführung Schritt 5 – Kardinalitäten (und anderes) durch Integritätsbedingungen retten
• In Vermietung darf ein konkreter Kunde nur höchstens dreimal
auftreten
• In beteiligt_an darf ein konkreter Hersteller nicht gleichzeitig als
Mutter und Tochter auftreten (Gewährleistung von Zyklenfreiheit)
• In Werkstatt.Telefon sollte jede Telefonnummer nur einmal
auftreten?!? (und andere Miniwelt-Spezifika)
Wintersemester 15/16 18
DBIS
Aufgabe 2Stücklisten
Wintersemester 15/16 19
DBIS
Überführung in relationales Modell
Wintersemester 15/16 20
DBIS
Überführung in relationales Modell
Wintersemester 15/16 21
Bauteil(Bezeichnung, Preis)
Stückliste(Oberteil, Unterteil, Anzahl)
DBIS
Relationsschema und Relationen
Bauteil Bezeichnung Preis
Wintersemester 15/16 22
Stückliste Oberteil Unterteil Anzahl
DBIS
Relationsschema und Relationen
Bauteil Bezeichnung Preis
A 1,00
B 2,00
C 3,00
D 2,00
E 4,00
X 5,00
Y 5,50
Z 9,99
Wintersemester 15/16 23
Stückliste Oberteil Unterteil Anzahl
DBIS
Relationsschema und Relationen
Bauteil Bezeichnung Preis
A 1,00
B 2,00
C 3,00
D 2,00
E 4,00
X 5,00
Y 5,50
Z 9,99
Wintersemester 15/16 24
Stückliste Oberteil Unterteil Anzahl
X A 1
X B 1
X Z 1
B E 7
A C 4
A D 8
A E 1
E Z 3
D Y 5
C Y 4
DBIS
Referenzielle Integrität I
• Im Allgemeinen nur solche Instanzen einer Datenbank erlaubt, deren
Relationen die definierten Integritätsbedingungen erfüllen.
• Integritätsbedingungen sind deklarativ: Sie definieren die zulässigen
Instanzen, ohne Aussagen zur konkreten Umsetzung.
• Z.B. Fremdschlüsselbedingungen
• keine defekten Verweise zwischen den Tupeln in den Tabellen
Referentielle Integrität
• Z.B. Trigger
• Regeln für Aktionen zur Gewährleistung der Integrität
• Auch für Behandlung von Verletzungen.
Wintersemester 15/16 25
DBIS
Referenzielle Integrität II
• „Definition der Umsetzung“ über referential Actions: Mögliche referentielle
Aktionen, wenn das Tupel, auf das sich der Fremdschlüssel bezieht,
gelöscht (ON DELETE) bzw. geändert (ON UPDATE) wird:
Wintersemester 15/16 26
DBIS
Referenzielle Integrität III
• Anwendbarkeit im Beispiel
Wintersemester 15/16 27
DBIS
Aufgabe 3Flüsse
Wintersemester 15/16 28
DBIS
Lösung mit zwei Relationen
Wintersemester 15/16 29
DBIS
Lösung mit zwei Relationen
Wintersemester 15/16 30
Fluss(Name, Länge)
mündet_in(Hauptfluss, Nebenfluss, Ort)
Sind in dem Modell Flüsse darstellbar, die in keinen anderen Fluss münden?
Nullwerte sind schon wegen der Modellierung nicht erlaubt!
DBIS
Lösung mit einer Relation
Wintersemester 15/16 31
Fluss(Name, Länge, Einmündungsfluss, Ort)
Sind in dem Modell Flüsse darstellbar, die in keinen anderen Fluss münden?
Fluss(Name, Länge, Einmündungsfluss*, Ort*)
DBIS
Aufgabe 4Relationen
Wintersemester 15/16 32
DBIS 33
Zu a)
• Kreuzprodukt (kartesisches Produkt) sind alle
Kombinationsmöglichkeiten der Domänenwerte, aus
MatrNr x Fach x Semester
• Summe: 2 * 2 * 3 = 12 Elemente
• Ergebnis:
(4711, Informatik, 1), (4711, Informatik, 2), (4711, Informatik, 3),
(4711, Biologie, 1), (4711, Biologie, 2), (4711, Biologie, 3),
(79005, Informatik, 1), (79005, Informatik, 2), (79005, Informatik, 3),
(79005, Biologie, 1), (79005, Biologie, 2), (79005, Biologie, 3)
Wintersemester 15/16
DBIS
Zu b)
• Die Kombinationsmöglichkeiten berechnen
sich zum Beispiel mit 2n, wobei n die Anzahl
der Elemente des kartesischen Produktes ist.
• 212 = 4096
Wintersemester 15/16 34
DBIS
Zu c)
• MatrNr als Schlüssel MatrNr muss eindeutig sein
• Ein Beispiel in Mengenschreibweise:
R={(4711,Informatik,1), (79005, Informatik,2)}
• Ein Beispiel als Tabelle:
Wintersemester 15/16 35
4711 Informatik 1
79005 Informatik 2