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.

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:
"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:
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)

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:

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:

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.

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.

Das ergänzt du jetzt im Datenbankschema:

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.

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)

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:

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.

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:
Pflichtenheft mit den Anforderungen aufstellen
Aus dem Pflichtenheft ein objektorientiertes Datenmodell mit Klassendiagramm machen
In ein Datenbankschema übertragen und dabei je nach Beziehung zwischen den Relationen neue Relationen einfügen
Schlüssel und Datentypen nicht vergessen!
