Übungsblatt 4 Erläuterungen Wintersemester 15/16 DBIS
Aufgabe 1 Relationales Datenbankmodell Wintersemester 15/16 DBIS
Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen Kunde(KundenNr, Name, Adresse) Pkw(FahrzeugNr, Farbe, Baujahr) Hersteller(Name, Hauptsitz) Werkstatt(Name, FaxNr*, Telefon) Wintersemester 15/16 DBIS
Überführung Schritt 1 - Entitytypen und deren Attribute übernehmen Kunde(KundenNr, Name, Adresse) Pkw(FahrzeugNr, Farbe, Baujahr) Hersteller(Name, Hauptsitz) Werkstatt(Name, FaxNr*, Telefon) Problem: Nichtatomare Attribute Wintersemester 15/16 DBIS
Überführung Schritt 2 – Nichtatomare Attribute auflösen Kunde(KundenNr, Name) hat_Adresse(KundenNr, Strasse, Ort, PLZ) Pkw(FahrzeugNr, Farbe, Baujahr) Hersteller(Name, Hauptsitz) Werkstatt(Name, FaxNr*) hat_telefon(WerkstattName, TelefonNr) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen 1:1-Beziehungen Kunde(KundenNr, Name) hat_Adresse(KundenNr, Strasse, Ort, PLZ) Pkw(FahrzeugNr, Farbe, Baujahr) Hersteller(Name, Hauptsitz) Werkstatt(Name, FaxNr*) hat_telefon(WerkstattName, TelefonNr) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen 1:N-Beziehungen Kunde(KundenNr, Name) hat_Adresse(KundenNr, Strasse, Ort, PLZ) Pkw(FahrzeugNr, Farbe, Baujahr) Hersteller(Name, Hauptsitz) Werkstatt(Name, FaxNr*) hat_telefon(WerkstattName, TelefonNr) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen 1:N-Beziehungen 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) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen N:M-Beziehungen 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) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen N:M-Beziehungen 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) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen N:M-Beziehungen 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) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen N:M-Beziehungen 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) Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen N:M-Beziehungen 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) Wintersemester 15/16 DBIS
Überführung Schritt 4 – Logische Prüfung des Modells 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) Wintersemester 15/16 DBIS
Überführung Schritt 4 – Logische Prüfung des Modells 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 Wintersemester 15/16 DBIS
Überführung Schritt 3 – Nach und nach die Beziehungen auflösen N:M-Beziehungen 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?! Wintersemester 15/16 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 DBIS
In Vermietung darf ein konkreter Kunde nur höchstens dreimal auftreten Ü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 DBIS
Aufgabe 2 Stücklisten Wintersemester 15/16 DBIS
Überführung in relationales Modell Wintersemester 15/16 DBIS
Überführung in relationales Modell Bauteil(Bezeichnung, Preis) Stückliste(Oberteil, Unterteil, Anzahl) Wintersemester 15/16 DBIS
Relationsschema und Relationen Bauteil Bezeichnung Preis Stückliste Oberteil Unterteil Anzahl Wintersemester 15/16 DBIS
Relationsschema und Relationen Bauteil Bezeichnung Preis A 1,00 B 2,00 C 3,00 D E 4,00 X 5,00 Y 5,50 Z 9,99 Stückliste Oberteil Unterteil Anzahl Wintersemester 15/16 DBIS
Relationsschema und Relationen Bauteil Bezeichnung Preis A 1,00 B 2,00 C 3,00 D E 4,00 X 5,00 Y 5,50 Z 9,99 Stückliste Oberteil Unterteil Anzahl X A 1 B Z E 7 C 4 D 8 3 Y 5 Wintersemester 15/16 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 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 DBIS
Referenzielle Integrität III Anwendbarkeit im Beispiel Wintersemester 15/16 DBIS
Aufgabe 3 Flüsse Wintersemester 15/16 DBIS
Lösung mit zwei Relationen Wintersemester 15/16 DBIS
Lösung mit zwei Relationen 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! Wintersemester 15/16 DBIS
Lösung mit einer Relation 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*) Wintersemester 15/16 DBIS
Aufgabe 4 Relationen Wintersemester 15/16 DBIS
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 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: 4711 Informatik 1 79005 2 Wintersemester 15/16 DBIS