Lea und Dominik gehen in den Schwimmverein. Um Ihrem Trainer die Arbeit zu erleichtern, wollen sie eine Datenbank für die Vereinsverwaltung zu erstellen. Dazu sammeln Sie zuerst die Anforderungen anhand von Use-Cases:
Wir wollen im folgenden das objektorientierte Datenmodell entwickeln und dieses dann in ein relationales Modell überführen.
Zur Relation "schwimmt" soll noch die Bestzeit je Mitglied und Disziplin gespeichert werden. Dies kann ganz einfach durch ein zusätzliches Attribut "bestzeit_hundertstel_s" in der Beziehungstabelle zur n:m-Relation geschehen. Im Datenmodell wird dies durch die gestichelte Linie veranschaulicht.
Schritte zur Übertragung des Datenmodells in ein relationales Modell:
Wir schreiben das relationale Modell in folgender Kurzform:
Bemerkungen:
schwimmt
sind mitglied_id
und disziplin_id
fremdschlüssel, da in den betreffenden Spalten Werte der Primärschlüssel der Tabellen Mitglied
bzw. Disziplin
gespeichert werden. Gleichzeitig bilden sie zusammen den Primärschlüssel der Tabelle schwimmt
.leiterin_id
in der Tabelle Gruppe
realisiert. Man hätte sie genausogut durch ein Attribut geleitete_gruppe_id
in der Tabelle Mitglied
realisieren können. Bei einer 1:1-Relation kann man sich also aussuchen, auf welcher Seite der Beziehung man das Fremdschlüsselattribut unterbringt.Das Emmy Noether-Gymnasium in Kleinschwabhausen möchte für die umliegenden Schulen (Name) ein Volleyballturnier ausrichten. Die Daten dazu werden in einer Datenbank verwaltet. Gespeichert werden sollen alle Mannschaften (Name, Altersklasse, Geschlecht (m/w/gemischt), Schule) zusammen mit den Schüler/innen (Rufname, Familienname, Geschlecht, Jahrgangsstufe) sowie die Daten der Spiele (wer gegen wen; Ergebnis, Schülerschiedsrichter).
Ein Fahrradgeschäft möchte die Daten seiner Kundinnen (Rufname, Familienname, Anschrift, Tel), Waren (Bezeichnung, Preis, Lieferant, Einheit, Vorrat), Lieferanten (Name, Anschrift, Tel, Ansprechpartner) sowie Bestellungen in einer Datenbank speichern. Die Datenbank soll insbesondere die Beantwortung folgender Fragen ermöglichen:
Bemerkung: Die Lieferanten beliefern das Fahrradgeschäft mit Waren. Das Fahrradgeschäft verkauft die Waren an die Kund/innen.
Eine Autovermietung hat einen Fuhrpark voller Autos, die zu unterschiedlichen Typen gehören (z.B. BMW i3, VW Passat, …). Sie werden gegen eine - je nach Typ unterschiedliche - tägliche Gebühr vermietet. Das Unternehmen benötigt eine Datenbank, in der die Daten seiner Autos (Kennzeichen, Typ) und seiner Kunden (Rufname, Familienname, Anschrift, Telefnonummer) gespeichert werden sollen. Zudem will es wissen, welcher Kunde wann (von … bis) welches Auto entliehen oder reserviert hat und ob die Gebühr schon bezahlt ist.
Die Daten eines großen Baustofflagers sollen in einer Datenbank verwaltet werden. Das Lager besteht aus mehreren Hallen, in denen jeweils mehrere Regale stehen. Jede Halle hat einen Namen (z.B. „Halle 1“), jedes Regal ist mit einem – je Halle eindeutigen – Buchstaben bezeichnet. Auf den Regalen liegen Waren, zu denen jeweils
gespeichert werden sollen.
Ist von einer Ware viel vorhanden, so kann es sein, dass sie auf mehreren Regalen verteilt lagert. Es kann aber auch sein, dass sich in einem Regal mehrere verschiedene Waren befinden. Aus der Datenbank soll sich die Information entnehmen lassen, in welchen Regalen welche Waren in welcher Anzahl lagern.
Beispielsweise könnten 20 Sack Trasszement in Regal C, Halle 1 lagern, weitere 30 Sack Trasszement in Regal F, Halle 4.