Übung Datenbanksysteme Martin Reifberger Übungsaufgabe 1 Sachverhalt: Ein mittelständiges Industrieunternehmen möchte sein Auftragswesen datenbankbasiert organisieren, da die tägliche Flut auflaufender Kundenaufträge in der herkömmlichen, papiergebundenen Form kaum noch zu bewältigen ist. Zunächst sollen dazu die relevanten Kundendaten vorgehalten werden, die auch bei der Rechnungserstellung Verwendung finden können. Jedem Kundenauftrag können unterschiedliche Auftragspositionen zugeordnet sein, die jeweils Angaben über den bestellten Artikel sowie die Anzahl bestellter Artikel enthalten. Auch zu den einzelnen Artikeln müssen Daten gespeichert werden, wie beispielsweise Artikelbezeichnung sowie Artikelpreis. Aufgabenstellung: Modellieren Sie diesen Sachverhalt in Form eines semantischen Datenmodells. Verwenden Sie dazu die Beschreibungselemente des Entity-Relationship-Modells. Gehen Sie dabei insbesondere auf den Verknüpfungstyp der vorhandenen relevanten Beziehungen und die relevanten Merkmalsklassen ein. Fügen Sie bei Bedarf geeignete künstliche identifizierende sowie weitere beschreibende Merkmalsklassen ein. 2
Übungsaufgabe 1 II Entity-Types und MMK: KUNDEN (Kunden-Nr, Name, PLZ, Ort, Straße) AUFTRÄGE (Auftrags-Nr, Auftragsdatum) AUFTRAGSPOSITIONEN (Positions-Nr, Anzahl) ARTIKEL (Artikel-Nr,, VK-Preis) Verknüpfungen und Beziehungen: KUNDEN / AUFTRÄGE: erteilen (1:n) AUFTRÄGE / AUFTRAGSPOSITIONEN: enthalten (1:n) ARTIKEL / AUFTRAGSPOSITIONEN: bezieht sich auf (1:n) 3 Übungsaufgabe 1 III Kunden-Nr Name Auftrags-Nr Auftragsdatum Positions-Nr Anzahl Kunden 1 n erteilen Aufträge 1 n enthalten Auftragspositionen n Straße PLZ Ort bezieht sich auf Zu Beachten: 1. Fremdschlüssel-Attribute nicht aufnehmen 2. Künstliche identifizierende Attribute bei allen Entity-Types 3. Plural-Form der Entity-Types 4. Aktive Verknüpfungsbenennung 5. Erläuterung der Verknüpfungen VK-Preis Artikel-Nr 1 Artikel 4
Übungsaufgabe 2 I Datenmodellierung Sachverhalt: Der Fuhrpark eines Speditionsunternehmens umfasst etwa zwanzig Fahrzeuge. Jedes Fahrzeug kann von jedem angestellten Fahrer gefahren werden. Die einzelnen Fahrzeuge lassen sich jeweils eindeutig einer Niederlassung zuordnen. Insgesamt hat das Speditionsunternehmen vier Niederlassungen. Dieser Sachverhalt ist im folgenden Entity- Relationship-Modell visualisiert. Aufgabenstellung: Überführen Sie dieses ER-Modell mit Hilfe der bekannten Transformationsregeln in ein relationales Datenmodell. Erläutern Sie dabei Ihr Vorgehen schrittweise, indem Sie die allgemeinen Regeln angeben und die resultierenden Ergebnisrelationen anhand von 2 bis 3 Beispieltupeln darstellen. 5 Übungsaufgabe 2 I Strasse PLZ Niederlassungs-Nr. Niederlassungen 1 Ort ist zugeordnet Fahrer-Nr. Name Gehalt N Fahrer N fahren M Fahrzeuge Motor-Nr. Letzte Inspektion Start-Datum Ende-Datum 6
Übungsaufgabe 2 II Transformationsprozess in seinen einzelnen Schritten: 1. Bilde für jeden Entity-Typ eine Relation. Zerlege dabei zusammengesetzte Attribute in einzelne Attribute. FAHRER Fahrer-Nr. / Name / Gehalt / FAHRZEUGE Motor-Nr. / Letzte Inspektion / NIEDERLASSUNGEN Niederlassungs-Nr. / / Strasse / PLZ / Ort 7 Übungsaufgabe 2 III 2. Bilde für jeden Relationship-Typ eine Relation. Zerlege dabei zusammengesetzte Attribute in einzelne Attribute. FAHREN Start-Datum / Ende-Datum FAHRER Fahrer-Nr. / Name / Gehalt / FAHRZEUGE Motor-Nr. / Letzte Inspektion / ZUGEORDNET NIEDERLASSUNGEN Niederlassungs-Nr. / / Strasse / PLZ / Ort 8
Übungsaufgabe 2 IV 3. Eine Beziehung im ER-Modell wird so in einer Relation abgebildet, dass jeweils die Schlüsselattribute aller an der Beziehung beteiligten Entity- Relationen und die eigenen Attribute der Beziehung in der Relation enthalten sind. FAHREN Fahrer-Nr. / Motor-Nr. / Start-Datum / Ende-Datum FAHRER Fahrer-Nr. / Name / Gehalt / FAHRZEUGE Motor-Nr. / Letzte Inspektion / 1:1 ZUGEORDNET Motor-Nr. / Niederlassungs-Nr. NIEDERLASSUNGEN Niederlassungs-Nr. / / Strasse / PLZ / Ort 9 Übungsaufgabe 2 V 4. Für 1:1- und 1:n-Beziehung kann dabei auch eine Einbettung der gesamten Beziehung in die entsprechende Entity-Relation erfolgen FAHREN Fahrer-Nr. / Motor-Nr. / Start-Datum / Ende-Datum FAHRER Fahrer-Nr. / Name / Gehalt / FAHRZEUGE Motor-Nr. / Letzte Inspektion / / Niederlassungs-Nr. NIEDERLASSUNGEN Niederlassungs-Nr. / / Strasse / PLZ / Ort 10
Übungsaufgabe 2 VI 5. Führe die Normalisierung durch. Keine Normalisierung mehr notwendig! 11 Übungsaufgabe 4 I Studenten Name Vorname Matr.-Nr. Hobby_1 Hobby_2 Hobby_3 Hobby_4 Hobby_5 Müller Michael 263 675 Fussball Schwimmen Skifahren Musik Joggen Schulze Sven 543 527 Schwimmen Radfahren TV Musik Küche Meier Marc 874 234 Kochen Musik Angeln Fußball Problem: Erlaubt jeweils nur 5 unterschiedliche Hobbies sowie eine Reihenfolge festzulegen. Unterscheidung bei unterschiedlichen en schwierig (Küche-Kochen). Redundanzen 12
Übungsaufgabe 4 II Studenten Name Vorname Matr.-Nr. Hobbies Müller Michael 263 675 Fussball, Schwimmen, Skifahren, Musik, Joggen Schulze Sven 543 527 Schwimmen, Radfahren, TV, Musik Meier Marc 874 234 Kochen, Musik, Angeln, Fußball Problem: Erlaubt beliebig viele Hobbies zuzuordnen. Unterscheidung bei unterschiedlichen en schwierig (Küche-Kochen). Redundanzen sowie insbesondere Verstoß gegen 1. NF bzw. Relationeneigenschaft 4 (Atomare Elemente) 13 Übungsaufgabe 4 III Studenten Name Vorname Matr.-Nr. Fußball Musik Puzzle Schwimmen Kochen Müller Michael 263 675 Ja Ja Nein Ja Nein Schulze Sven 543 527 Nein Ja Nein Ja Ja Meier Marc 874 234 Ja Ja Nein Nein Ja Problem: Realisiert den Realitätsausschnitt nicht, denn es werden genau 5 spezielle Hobbies als mögliche Zuordnung angeboten: Probleme bei Erweiterungen durch zusätzliche Hobbies (Modelländerung erforderlich), Platzverschwendung 14
Übungsaufgabe 4 IV Korrekte Aufschlüsselung der n:m-beziehung über 3 Relationen Studenten (Name, Vorname, Matr.-Nr.) Hobbies (Hobby_ID, ) Studenten_hat_Hobbies (Matr.-Nr., Hobby_ID) 15