![]() |
TigerJython | xx für Gymnasien |
| Daten einer Datenbank werden in Tabellen gespeichert, deren Zeilen Datensätze (records) enthalten, die Informationsobjekte repräsentieren. Die Spalten repräsentieren die Eigenschaften (Attribute) dieser Objekte. |
|
|
| Bevor man aber die erste Tabelle erzeugt, sollte man das Gesamtkonzept für alle Daten, die man speichern will, überlegen. Man erstellt ein sogenanntes Datenmodell, welches bestimmt, wie die Daten im vorhandenen Datenbanksystem gespeichert werden. In einem relationalen Datenbanksystem, können die Daten auf mehrere Tabellen verteilt werden. |
|
Um die Datenmodellierung aufzuzeigen, wählen wir ein Beispiel, das mit einem nicht relationalen Datenbanksystem kaum realisierbar wäre. Wir zeigen, wie bei Twitter die Informationen über User, Follower und Tweets in einer Datenbank gespeichert werden können. Unsere Datenbank twitter besteht aus drei Tabellen, die in einer Beziehung zu einander stehen. |
In der Tabelle user sind Name, Vorname, Wohnort, Geschlecht und Alter der User gespeichert. Die Spalte Id enthält den Primärschlüssel dieser Tabelle. Der Primärschlüssel identifiziert eindeutig jeden Datensatz, im Unterschied zum Feld Name, das mehrmals vorkommen kann (z.B. Meier) und wird häufig als Index für eine effiziente Suche verwendet. Es wäre sicher keine gute Idee sämtliche Tweets für jeden User in der Tabelle user abzuspeichern. Mit den vielen langen Textfeldern wäre die Tabelle user zu gross und könnte nicht mehr effizient verwaltet werden. Wir speichern die Tweets als Textfelder mit 140 Zeichen in einer zweiten Tabelle tweets . Diese können bei Bedarf über den Fremdschlüssel userId abgerufen werden. |
Es wäre auch nicht sinnvoll, sämtliche Follower eines Users mit ihren Personaldaten in der Tabelle user abzuspeichern. Da die User gleichzeitig Follower anderer Users sind, müssen nur diese Beziehungen in der Datenbank festgehalten werden. In der Tabelle follower wird jede User-Follower-Beziehung gemäss der nebenstehenden Grafik gespeichert. Die Grafik mit Pfeilen, die die Relation "ist ein Follower von" darstellen, wurde übrigens mit einem Python-Programm erstellt (ArrowDiagram.py [►]). |