Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

Kurs

Datenmodellierung: Realität goes Datenbank

1 Übersicht: Datenmodellierung

In diesem Kurs lernst du, wie du eine reale Situation in eine geeignete Datenbank überträgst. Dabei verwendest du einiges aus der objektorientierten Modellierung:

Kursdauer: 60 Minuten

2 Filmfans unter sich

Simone und ihre Freunde haben großen Spaß daran, gemeinsam Filme zu schauen oder sich ihre Lieblingsfilme zu empfehlen und auszuleihen.

Leider verliert man dabei schnell den Überblick, was man schon geschaut hat, was man gut fand, wo der Lieblingsfilm gerade ist und was man als Nächstes anschauen wollte.

Bild

Deshalb hat die Gruppe sich entschlossen, eine private Datenbank aufzusetzen, die diese Fragen in Zukunft beantworten soll und eine Übersicht über ihr Hobby geben soll.

3 Pflichtenheft erstellen

Die erste Frage bevor sie sich an die Computer setzen, ist, was man aus den Informationen in der Datenbank eigentlich herauslesen können soll.

Dafür erstellt die Gruppe ein Pflichtenheft. Dort schreiben sie in Form von sogenannten User Stories, was sie mit ihrer Datenbank später vorhaben.

Ein Beispiel von Marcel:

Beispiel

"Ich möchte die Datenbank fragen können, welche Filme ich auf einer Skala von 1 bis 10 besser bewertet habe als 9."

Und eine weitere User Story von Sophie:

Beispiel

Wenn ich einen neuen Film gekauft habe, möchte ich in der Datenbank natürlich vermerken, dass ich ihn habe. Wenn ich ihn dann verleihe, möchte ich wissen, an wen.

So sammelt die Gruppe immer weiter, was sie sich von der Datenbank erwarten. Natürlich wird es immer komplizierter, desto mehr Features die Gruppe will. Deshalb wählt sie ihre wichtigsten Stories aus und schreibt sie sich gut sichtbar auf. Diese werden für die Modellierung benötigt.

Überlege doch noch mal selbst, bevor du weiterblätterst: Was für Anforderungen hättest du noch an deine ganz persönliche Filmdatenbank?

4 Vom Pflichtenheft zum Datenmodell

Die Gruppe hat sich auf ihre TOP 10 Userstories geeinigt und diese auf Klebezettel an der Wand befestigt. (Wenn du auf das Bild klickst, wird es groß angezeigt)

User Stories zur Filmdatenbank

Sie einigen sich darauf, erstmal die fünf Stories auf der linken Seite zu bearbeiten, bevor sie sich die schwierigeren auf der rechten Seite vornehmen (die anderen Stories landen im sogenannten Backlog).

Der nächste Schritt ist nun, diese Stories in ein objektorientiertes Datenmodell zu übersetzen.

Noch nie gehört? Keine Angst, du wirst dieses Modell ab der nächsten Seite Schritt für Schritt im Kurs erstellen und lernst so, auf was es ankommt.

5 Schritt für Schritt modelliert

Laden

6 Das fertige Datenmodell

Nachdem die Freunde die fünf User Stories genau angeschaut haben, sind sie auf folgendes Datenmodell gekommen:

Filmdatenbank minimaler Aufbau

Als nächstes wird dieses objektorientierte Datenmodell zu einem Datenbankschema gemacht. Dafür braucht es Datentypen, Schlüssel und eine genauere Betrachtung der Beziehungen.

Das Datenschema der Ausgangssituation sieht schon mal so aus:

Datenbankschema der Ausgangssituation

Wie gerade eben gilt: Falls du einen Begriff nicht kennst, lernst du ihn auf den nächsten Folien kennen.

7 Schlüssel

Damit später unsere Klassen in der Datenbank Relationen werden, muss gewährleistet werden, dass kein Eintrag doppelt eingefügt wird und jeder Eintrag eindeutig identifiziert werden kann. Das erreichst du mit einem Schlüssel pro Klasse.

Ein Schlüssel ist ein Attribut der Klasse (oder mehrere Attribute gemeinsam), das einen Datensatz eindeutig identifiziert.

Wenn man genauer darüber nachdenkt, gibt es in diesem Beispiel keine natürlichen Schlüssel, also keine Attribute oder Attributpaare, die einen Datensatz eindeutig identifizierbar machen: Zwei Leute könnten den gleichen Namen haben (Marcel und Marcel) und zwei Filme könnten gleich heißen (Ghost von 1990 und Ghost von 2020). Deshalb brauchst du künstliche Schlüssel, also neue Attribute, die du in den Klassen ergänzt.

Klassendiagramm des Filmbeispiels

8 Schlüssel ergänzen

Die Gruppe entscheidet sich dazu, dass jeder von ihnen einen eindeutigen Nickname bekommt und dass sie jedem Film eine Nummer geben - so wie Bücher eine ISBN haben.

Du siehst, dass diese Attribute jetzt im Klassendiagramm sind und als Zeichen dafür, dass es Schlüssel sind, sind sie unterstrichen.

Klassendiagramm mit Schlüsseln

Das ergänzt du jetzt im Datenbankschema:

Datenbankschema mit Schlüsseln

9 Beziehungen (1/2)

Die Datenbank muss später auch die Beziehungen zwischen den Objekten der Klassen abbilden. Hierbei ist es natürlich von der Situation abhängig, ob man eine neue Relation braucht. Es gibt aber auch Empfehlungen zu den verschiedenen Beziehungen.

Filmdatenbank mit Schlüsseln

Da maximal eine Person einen Film besitzt, kann man in der Relation "FILM" ein Feld für den Besitzer einfügen. Damit man aus dem Modell gut auf das Datenschema schließen kann, kannst du dieses Attribut hat nennen.

Die Attributwerte werden später auf die PERSON referenzieren (=verweisen), indem hier nur ein Nickname einer der Freunde gespeichert wird. Dies realisiert man durch einen Fremdschlüssel.

10 Beziehungen (2/2)

Bild

Komplizierter als bei der hat-Beziehung ist es bei der schaut-Beziehung. Hier kannst du in keiner der beiden Relationen Attribute hinzufügen, da ja beliebig viele FILME bzw. PERSONEN erfasst werden müssen. Deshalb ergänzt du hier eine neue Relation schaut, die nur die FilmID aus der Relation FILM und den Nickname aus der Relation PERSON enthält.

Das neue Datenschema:

Datenbankschema mit Fremdschlüssel

Hierbei sind die Fremdschlüssel unterstrichen.

Abschließend musst du dir noch die Datentypen anschauen.

11 Datentypen der Attribute

Als Nächstes musst du dir überlegen, als was die Attributwerte von der Datenbank später gespeichert werden sollen. Sagst du der Datenbank jetzt, dass Name eine Zahl ist, so kannst du später keine Person einpflegen, die "Tim" heißt. Du musst also die Datentypen der Attribute festlegen.

Das ist gar nicht so schwer, deshalb darfst du das auf der nächsten Folie als Übungsaufgabe machen.

12 Datentypen ergänzen

Laden

13 fertiges Datenbankschema

Jetzt hast du ein Datenbankschema mit allen nötigen Relationen, Schlüsseln und Datentypen. Damit ist es sehr einfach, im Datenbankverwaltungssystem loszulegen.

Fertiges Datenbankschema

Wie das aussehen kann, ist je nach Programm und deinen Skills anders. Deshalb wird es in diesem Kurs nicht behandelt.

14 weitere Übungsaufgabe

Hier wird noch eine weitere Übungsaufgabe entstehen. Du hast eine gute Idee und möchtest eine Aufgabe anlegen und hier einbinden? Dann leg los!

15 Zusammenfassung

Bevor die Filmfans ihre Filmdatenbank aufsetzen und benutzen können, nehmen sie sich erst die Zeit, ein geeignetes Datenmodell und Datenbankschema zu entwickeln.

Dabei durchlaufen sie folgende Schritte:

  1. Pflichtenheft mit den Anforderungen aufstellen

  2. Aus dem Pflichtenheft ein objektorientiertes Datenmodell mit Klassendiagramm machen

  3. In ein Datenbankschema übertragen und dabei je nach Beziehung zwischen den Relationen neue Relationen einfügen

  4. Schlüssel und Datentypen nicht vergessen!

Modellierungsablauf

Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?