Datenmodell
Als Datenmodell bezeichnet man die Struktur zur Speicherung von Daten eines bestimmen Programmeses (Software) damit dieses seiner Aufgabe gerecht werden kann in der elektronischen Datenverarbeitung (EDV). Dabei gibt es nicht ein einziges Datenmodell, das dieser Aufgabe gerecht werden kann, sondern bereits bei trivialen Aufgaben eine Vielzahl möglicher Datenmodelle, die ihrer Aufgabe in unterschiedlicher Hinsicht verschieden gerecht werden.Das Datenmodell spielt dabei eine wichtige Rolle dabei
- wie gut die Aufgabe erfüllt wird,
- wie effizient ein Programm mit Speicherplatz umgeht,
- wie schnell Teilaufgaben verarbeitet werden können,
- wie gut die Aufgabe erweitert oder verändert werden kann
In aller Regel werden Daten dabei in Datenbanken abgelegt, die mittels Anlegen eines Datenmodells auf die Aufgabe vorbereitet wurden. Der mit Abstand verbreitetste Typ ist hierbei die relationale Datenbank, gefolgt von Filesystemenen und objektorientierten Datenbanken.
Auf dem Vormarsch befindet sich das plattform-unabhängige XML, ein selbstbeschreibendes Datenmodell (siehe aber auch DTD). Das Beispiel unten ließe sich genauso flexibel - aber weniger effizient per XML definieren.
Table of contents |
2 Beispiel 3 Siehe auch |
Datendefinition
Zur Definition des Datenmodells werden im Vorfeld die zu speichernden Daten analysiert und ihr Datentyp bestimmt. Grob und umgangssprachlich eingeteilt bedeutet dies, dass entschieden wird
- ob es sich um natürliche Zahlen handelt,
- ob es sich um Fließkommazahlen handelt,
- wie groß oder wie genau diese Zahlen sein können und müssen,
- ob Text abgelegt werden soll und in welcher Länge,
- ob die Länge variieren kann
Die so definierten Daten werden in Tabellen oder Dateien möglichst sinnvoll gruppiert und zu einander in Beziehung gestellt, daher auch der Begriff relationale Datenbank. Dies alles zusammen ergibt das Datenmodell. Objektorientierte Datenbanken gehen hier noch weiter und erlauben die Definition von Objektenen.
Beispiel
Am besten wird dies an einem kleinen Beispiel deutlich, da ein Datenmodell für Menschen, die nichts mit Informatik zu tun haben, eher abstrakt ist:
Nehmen wir an, wir möchten die Stundenpläne einer Schule mit einem Programm verwalten. Dabei sollen diese nicht nur als Matrix pro Klasse nach Tag / Stunde und Fach / Lehrer ablegen werden, also so, wie sie jeder Schüler kennt. Es soll auch direkt daraus resultierend abrufbar sein, wie sieht diese Matrix für die Lehrer aus. Interessant könnte auch die Matrix nach Fächern sein, wenn es um Spezialräume geht, wie Sport, Biologie, Chemie. All dem wird eine einfache Tabelle in einem Tabellenkalkulationsprogramm oder einer Textverarbeitung nicht gerecht.
Beispiel Stundenplan Klasse 8b:
Stunde | Montag | Dienstag | Mittwoch | Donnerstag | Freitag |
1 | Erdkunde Hr. Neustadt | Sport Hr. Reck | Kunst Fr. Schön | Deutsch Fr. Einsilbig | Englisch Hr. Becker |
2 | Biologie Fr. Stein | Sport Hr. Reck | Kunst Fr. Schön | Deutsch Fr. Einsilbig | Englisch Hr. Becker |
3 | Englisch Hr. Becker | Religion Hr. Fromm | Mathematik Fr. Zoll | Französisch Fr. Metz | Erdkunde Hr. Neustadt |
4 | Englisch Hr. Becker | Chemie Fr. Stein | Mathematik Fr. Zoll | Französisch Fr. Metz | Physik Hr. Hebel |
5 | Mathematik Fr. Zoll | Deutsch Fr. Einsilbig | Physik Hr. Hebel | Biologie Fr. Stein | Mathematik Fr. Zoll |
6 | Mathematik Fr. Zoll | Deutsch Fr. Einsilbig | Französisch Fr. Metz | Chemie Fr. Stein | Französisch Fr. Metz |
Dabei sehen die Tabellen, wenn man den Inhalt listet, beispielhaft wie folgt aus:
Tabellen die alle Schulklassen enthält:
Klassen_ID | Klasse |
1 | 5a |
2 | 5b |
3 | 5c |
4 | 6a |
5 | 6b |
6 | 6c |
7 | 7a |
8 | 7b |
9 | 7c |
10 | 8a |
11 | 8b |
12 | 8c |
... | ... |
Tabellen die alle Fächer enthält:
Fach_ID | Fach |
1 | Erdkunde |
2 | Biologie |
3 | Chemie |
4 | Physik |
5 | Mathematik |
6 | Englisch |
7 | Französisch |
8 | Deutsch |
9 | Sport |
10 | Kunst |
11 | Religion |
... | ... |
Tabellen die alle Lehrer enthält:
Lehrer_ID | Name |
1 | Hr. Neustadt |
2 | Fr. Stein |
3 | Hr. Becker |
4 | Fr. Zoll |
5 | Hr. Reck |
6 | Hr. Fromm |
7 | Fr. Einsilbig |
8 | Fr. Schön |
9 | Hr. Hebel |
10 | Fr. Metz |
... | ... |
Tabellen in der der Unterricht durch Verknüpfung mit den anderen Tabellen abgelgt wird:
Unterricht_ID | Klassen_ID | Lehrer_ID | Fach_ID | Wochentag | Stunde |
1 | 11 | 1 | 1 | Mo | 1 |
2 | 11 | 2 | 2 | Mo | 2 |
3 | 11 | 3 | 6 | Mo | 3 |
4 | 11 | 3 | 6 | Mo | 4 |
5 | 11 | 4 | 5 | Mo | 5 |
6 | 11 | 4 | 5 | Mo | 6 |
7 | 11 | 5 | 9 | Di | 1 |
8 | 11 | 5 | 9 | Di | 2 |
9 | 11 | 6 | 11 | Di | 3 |
10 | 11 | 2 | 3 | Di | 4 |
11 | 11 | 7 | 8 | Di | 5 |
12 | 11 | 7 | 8 | Di | 6 |
13 | 11 | 8 | 10 | Mi | 1 |
... | ... | ... | ... | ... | ... |