Informatik IIa: Modellierung Sommersemester 2006 Übung 2: Datenmodellierung Kapitel 3 Ausgabe: 25. April 2006 Abgabe als PDF- oder Word-Datei per Email an den Tutor bis am 30. April 2006 24:00 Uhr Seite 1 / 5
Aufgabe 1 (20%) Hier geht es darum einige Spezialfälle des Gegenstand-Beziehungs-Modells zu modellieren. Sie müssen immer nur die in der Teilaufgabe beschriebene Situation modellieren. Es geht dabei um ein Onlinegame, bei dem ein Spieler verschiedene Charaktere erstellt. Die Charaktere gehören einer Art an. Hinweis: Die notwendige Theorie zu Teilaufgaben b.), c.) und e.) wurde möglicherweise nicht in der Vorlesung besprochen. Sie sollen sich als Teil dieser Übung die dazu notwendigen Kenntnisse selbst aneignen. Es wird empfohlen sich in der Bibliothek oder im Internet die dazu notwendige Literatur zu suchen. Eine mögliche Quelle ist: akguru.no-ip.com/~jolle/dbs/kap2.pdf a.) mehrwertige Attribute: Jede Art hat verschiedene Fähigkeiten. Eine solche Fähigkeit ist nur mit Namen bekannt, es gibt keine weiteren Informationen zu Fähigkeiten b.) abgeleitete Attribute: Spieler haben ein Geburtsdatum, aus diesem kann das Alter des Spielers berechnet werden. c.) schwache Gegenstandstypen - Erklären Sie in welchem Fall schwache Gegenstandstypen modelliert werden. - Erklären Sie, wie schwache Gegenstandstypen modelliert werden. - Was für Einschränkungen auf Kardinalitäten gibt es bei Beziehungen zwischen einem schwachen Gegenstandstyp und dem identifizierenden Gegenstandstyp? - Charaktere sind durch einen einzigartigen Namen gekennzeichnet. Sie können Tiere besitzen. Der Name des Tieres muss nicht einzigartig sein. Jedoch darf ein Charakter nicht zwei seiner Tiere den gleichen Namen geben. Modellieren Sie diesen Sachverhalt mit Hilfe von einem schwachen Gegenstandstyp. d.) Spieler können mehrere Charaktere besitzen. Es kann auch sein dass ein Spieler noch keinen Charakter besitzt. Ein Charakter gehört immer genau einem Spieler. Dabei wird auch das Datum der Erstellung festgehalten. Modellieren Sie diesen Sachverhalt mit folgenden drei Vorgehensweisen: - als Attribut einer Beziehung zwischen Spieler und Charakter - als Attribut von einem bereits bestehenden Gegenstandstyp - als Attribut eines neu erstellten, zusätzlichen Gegenstandstyps. - Unabhängig von der Aufgabestellung, in welchem Fall muss die dritte Darstellungsmöglichkeit verwendet werden? Denken Sie dabei an die Kardinalitäten. e.) Rekursive Beziehungen Unter Charakteren gibt es eine Hierarchie. Charaktere können die Rolle eines Leiters übernehmen, sie überwachen dann andere Charaktere. Jeder Charakter hat genau einen Leiter. Ein leitender Charakter leitet mindestens einen anderen Charakter. - Modellieren Sie dies mit Hilfe einer rekursiven Beziehung zwischen Charakteren. Geben Sie auch die Rollen an. Seite 2 / 5
Aufgabe 2 (70%) Der Prozess einer Autovermietung beginnt immer damit, dass ein Kunde eine Reservation macht. Dazu werden vom Kunden seine Kundennummer (mit Hilfe derer er identifiziert wird), sein Name bestehend aus Vor- und Nachname, eine oder mehrere Telefonnummern und sein Geburtsdatum gespeichert. Nur Personen, die älter als 21 Jahre alt sind, dürfen Autos mieten. Ein Kunde kann mehrere Reservationen haben. Kunden welche noch keine Reservationen gemacht haben kann es auch geben. Reservationen bekommen gleich bei der Erstellung eine Reservationsnummer. Es wird eingetragen wie lange die Reservation dauert. Ausserdem wird vermerkt, in welcher Filiale das Auto abgeholt wird und bei welcher Filiale das Auto wieder abgegeben wird. Es muss sich dabei nicht im die gleiche Filiale handeln. Filialen gibt es mehrere in der Schweiz. Um diese genau zu identifizieren wird die Postleitzahl vom Ort, an welchem die Filiale steht, verwendet. Die Öffnungszeiten der Filialen sind im System abrufbar, ebenso die Anzahl der Parkplätze welche den Filialen zur Verfügung stehen. Aus Kostengründen müssen die Filialen eine gewisse Grösse haben. Darum hat jede Filiale mindestens 5 Autos, welche diese Filiale als Heimatstandort haben. Das heisst die Filiale ist verantwortlich für diese Autos. Die Autos werden über ihre Nummernschilder identifiziert. Da die Flotte immer auf dem neusten Stand gehalten wird und keine Autos, die älter als ein Jahr sind, angeboten werden, wird auch das Kaufdatum der Autos gespeichert. Wichtig ist auch, dass der aktuelle Kilometerstand abfragt werden kann, Autos mit zu hohem Kilometerstand werden ebenfalls aussortiert. Es soll jederzeit bekannt sein, welche Autos an welchen Filialen zu welchem Zeitpunkt zur Verfügung stehen. Im Moment werden diese Daten mit einer Excel-Tabelle namens Verfügbarkeit, welche eine Spalte Auto, eine Spalte Filiale und eine Spalte von-bis hat, verwaltet. Diese Tabelle soll auch ins System integriert werden. Mitarbeiter unterhalten sich folgendermassen über Verfügbarkeiten: Kannst du mir die Verfügbarkeit 7 von Auto ZH12345 geben? Nun kann natürlich ein Kunde nicht direkt ein Auto reservieren. Er macht eine Reservation für eine Autoklasse. Die Klasse A zum Beispiel besteht aus Kleinwagen ohne irgendwelche Extras. Jede Autoklasse wird durch ein Kürzel gekennzeichnet. Zudem wird vermerkt wie viele Sitze Autos dieser Klasse haben. Falls es Extras gibt, so werden dieses ebenfalls angegeben. Extras sind zum Beispiel ein Automatikgetriebe, Airbags, Klimaanlage oder Schiebedach. Unsere Luxusautos haben natürlich mehrere Extras. Es kann sein dass eine neue Klasse erstmal definiert wurde, ohne dass es bereits Autos gibt, welche dieser Klasse angehören. Wenn wir nun ein Auto neu kaufen wird es sofort einer Autoklasse zugeordnet. Autos, die keine oder mehreren Klassen zugehören, gibt es nicht. Ein paar Tage bevor die Reservation beginnt schaut sich ein Mitarbeiter die Verfügbarkeitsliste an und sucht ein Auto, welches der reservierten Klasse entspricht und während der Reservationsdauer verfügbar ist. Er legt dann eine so genannte Benutzung an. Diese bekommt eine Nummer zur Identifikation. Hier wird nun ein spezifisches Auto zugeteilt. Eine Benutzung entsteht immer aus einer Reservation, und es gibt genau eine Benutzung pro Reservation. Wenn ein Kunde eine Reservation storniert wird trotzdem eine Benutzung angelegt, weil es trotzdem sein kann, dass für den Kunden Kosten entstehen. Es wird dann aber kein Auto zugeteilt. Sobald der Kunde das Auto abholt, wird der Abholzeitpunkt festgehalten. Bei der Rückgabe wird der Rückgabezeitpunkt notiert. Aus diesen zwei Daten kann nun die aktuelle Mietdauer abgeleitet werden. Ebenso wird festgehalten wie viele Kilometer der Kunde gefahren ist. Falls der Kunde noch Extras gebucht hat (zum Beispiel einen zweiten Fahrer oder eine Versicherung), werden diese Extras vermerkt. Für die Abrechnung ist dann wichtig dass diese Seite 3 / 5
Extras einheitlich verbucht werden. Darum gibt es für jedes mögliche Extra einen Code, eine Beschreibung, einen Preis und es wird vermerkt ob der Preis pro Tag pauschal berechnet wird. Gleich bei der Rückgabe wird zur Benutzung eine Rechung erstellt. Es wird aus Mietdauer, gefahrenen Kilometern und gebuchten Extras ein Preis für die Miete berechnet. Zu jeder Rechung für auch das Fälligkeitsdatum gespeichert. Sobald der Kunde die Rechung bezahlt hat wird dies ebenfalls im System vermerkt und der Prozess der Automiete ist abgeschlossen. Normalerweise wird pro Benutzung eine Rechnung erstellt. Es gibt aber auch Kunden, die so oft Autos mieten, dass einmal pro Monat eine Gesamtrechnung verschickt wird. a) Erstellen Sie ein Datenmodell (ein klassisches ERM bzw. GBM) anhand des oben beschriebenen Sachverhalt. Verwenden Sie die Notation aus der Vorlesung. Zur Lösung gehören Gegenstände, Beziehungen, Attribute und Kardinalitäten. b) Erklären Sie anhand der Gegenstandstypen Kunde und Reservation, sowie den dazugehörigen Beziehungen, wie eine Objektanalyse zur Erstellung eines Datenmodells funktioniert. Wie findet man Gegenstände, Attribute, Schlüsselattribute, Kardinalitäten und Beziehungen? c) Was ist das Ziel eines Datenmodells? d) Welche Aspekte der Realität werden nicht abgebildet. Suchen Sie im Text nach zwei verschiedenen Aspekte, welche durch ein Datenmodell nicht abgebildet werden können. Aufgabe 3 (5%) Erstellen Sie gemäss dem Beispiel aus der Vorlesung eine Aufstellung der Attribute des Gegenstandstyps Ice-Cream Benutzen Sie wie im Beispiel auch die Attributkardinalitäten und halten Sie sich an folgende Angaben: Jede Ice-Cream-Sorte hat einen Namen Jede Ice-Cream-Sorte hat eine gewisse Anzahl Gramm Fett pro 100 Gramm Ice-Cream Jede Ice-Cream hat genau 2 Preise Einen Preis für Restaurants Einen Preis für Endkunden Für jedes Ice-Cream wird festgehalten, in welchen Eisbechern sie vorkommt, es wird dabei der Name des Eisbechers notiert. Gleichzeitig wird festgehalten, wie viele Kugeln der Ice-Cream im Eisbecher vorkommen, zuerst als Absolute Zahl und dann als Prozentsatz des gesamten Kugeln im Eisbecher. Die einzelnen Angaben werden durch Kommas getrennt. Eine Ice-Cream kommt in maximal 10 Eisbechern vor, ganz exotische Sorten kommen in gar keinen Eisbechern vor. Seite 4 / 5
Aufgabe 4 (5%) Datenmodelle sind nur Vorbilder für die Organisation der Daten in einer Datenbank. Ausser wenn ein Datenmodell einer schon bestehenden Datenbank gemacht wird, sind Datenmodelle keine Abbilder. Entity-Relationship-Modelle müssen dauernd angepasst werden da sich die Datenbestände der Datenbank laufend ändern. Es ist nicht erlaubt Beziehungen zwischen Attributen zu modellieren. Mit Hilfe von Kardinalitäten können Eigenschaften von Attributen (zum Beispiel die Tatsache dass ein Mitarbeiter mindestens 16 Jahre alt sein muss) modelliert werden. Objektanalyse und Ereignis-Reaktions-Analyse sind beides geeignete Vorgehensweisen um ein Datenmodell zu erstellen. Seite 5 / 5