Prof. Dr. Stephan Karczewski Datenbanken 1 Aufgabe 1 1. Entity-Relationship-Modellierung 1.1 Datenmodell Verein Aus Interviews hat sich für die Datenmodellierung folgender Sachverhalt ergeben: Ein Verein hat viele Mitglieder. Vereine besitzen einen eindeutigen Namen und – da sehr traditionsbewusst – eine Vereinsfarbe. Mitglieder können mehreren Vereinen angehören. Sie haben eine Mitgliedsnummer. Es soll für jede Mitgliedschaft in einem Verein das Datum des Eintritts abgespeichert werden. Damit Mitglieder identifiziert werden können, muss man neben der Mitgliedsnummer auch den Vereinsnamen kennen. Das Mitglied Schulz wohnt in Frankfurt. Jeder Verein besitzt (unter Umständen mehrere) Konten, jedes für einen Zweck (z.B. Mitgliederbeiträge, Spenden). Ein Konto wird eindeutig über seine Nummer und den Namen des Bankinstituts identifiziert. Das Datum der Kontoeröffnung ist ebenfalls zu speichern. Prof. Dr. Stephan Karczewski Datenbanken 1 Aufgabe 1 1.2 Datenmodell FLUGGESELLSCHAFT Im Folgenden sind die Notizen eines Kollegen aufgeschrieben, der ein Gespräch mit einem Kunden geführt hat. Sie sollen diese benutzen, um eine Datenbank aufzubauen. Hierzu ist zunächst ein ER-Diagramm aufzustellen. Passagiere buchen Abflüge. Abflüge werden identifiziert durch ein Datum und die dazugehörige Flugnummer. Ein Abflug ist also ein Flug zu einem bestimmten Datum. Flüge werden durch eine Flugnummer (z.B. LH222) identifiziert. Darüber hinaus enthalten Flüge die Attribute. Start, Ziel, Flugzeit und KM. Passagiere werden durch Name und Adresse identifiziert. Das Alter wird ebenfalls abgespeichert. Zu jeder Buchung eines Passagiers werden Preis, Sitznummer und Klasse gespeichert. Ein Pilot kann für mehrere Abflüge eingeplant werden. Zu jedem Abflug gibt es jedoch nur einen Piloten. Dieser ist - ebenso wie jeder Techniker - Angestellter der Fluggesellschaft. Jeder Angestellte hat - neben seiner identifizierenden Nummer - noch die Attribute Name, Adresse, Beruf und Gehalt. Der Pilot hat darüber hinaus die Attribute Stunden (seiner Flugzeit) und seine Lizenznummer. Der Techniker hat als Attribut noch die Teamnummer. Jeder Pilot kann mehrere Maschinen fliegen. Dies gilt natürlich auch umgekehrt. Die Techniker können verschiedene Maschinen warten und umgekehrt. Maschinen werden identifiziert durch Hersteller(-name) und Typ (z.B. Boening 747). Außerdem besitzen Maschinen eine Länge, Anzahl Sitze und km/h. Zu jedem Maschinentyp gibt es viele konkrete Flugzeuge. Diese besitzen über die Maschine hinaus die Attribute Seriennummer (dies ist der Schlüssel), Datum (des Baus) und Stunden (wie lange schon geflogen). Jedes Flugzeug kann für mehrere Abflüge vorgesehen werden. Für einen Abflug gibt es jedoch nur ein Flugzeug. Flugzeuge benötigen Ersatzteile. Ein Ersatzteil hat die Attribute Nummer (Schlüssel), Bezeichnung und Gewicht. Der Preis jedes Ersatzteils wird jeweils neu festgelegt, wenn es für ein Flugzeug benötigt wird. Prof. Dr. Stephan Karczewski Datenbanken 1 Aufgabe 1 Aufgaben: Vorbemerkung: Gehen Sie bei den folgenden Aufgaben so vor, dass Sie zunächst die Folge von a) – f) für 1.1 und anschließend die gleiche Prozedur für 1.2 durchführen. Speichern Sie zum Abschluss des heutigen Praktikums die erzeugten MSAccess-Datenbanken und die Oracle-Skripte auf einem geeigneten Medium oder senden Sie sich das Ergebnis per Email selbst zu. a) Entwickeln Sie aus den Textpassagen aus 1.1 und 1.2 jeweils ein EntityRelationship-Diagramm mit Entitätstypen (jeweils mit Attributen und Primärschlüsseln) und Beziehungstypen mit Attributen und die dazugehörigen Kardinalitäten. b) Setzen Sie Ihr ERD mit dem PowerDesigner in ein äquivalentes Modell um. c) Übersetzen Sie Ihr logisches Modell in ein physisches (Ziel: MS Access). Fügen Sie spätestens hier Primärschlüssel ein. d) Generieren Sie die dazu passende MS Access-Datenbank. Beachten Sie dabei die Hinweise, die Sie von PowerDesigner zur Generierung erhalten. e) Überprüfen Sie das erzeugte Ergebnis und korrigieren Sie ggfs. Fehler in dieser Datenbank aus MS Access heraus. f) Führen Sie die Schritte b) bis d) für das DB-System Oracle aus und überprüfen Sie die erzeugte Datei.