Datenbank
Eine Datenbank soll Daten in strukturierter Form speichern und diese Struktur soll ein Wiederfinden und Bearbeiten dieser Daten ermöglichen. Damit dienen Datenbanken nicht nur zur reinen Datenspeicherung sondern auch der Verwaltung, Auswertung und Bearbeitung dieser Daten.
Die Daten selbst können alle Informationen sein, die man speichern und später in verschiedenen Zusammenhängen wiederverwenden kann. Zahlen, Texte, Datums- und Zeitangaben, Adressen, aber auch Bilder und Videos. Wirklich aussagekräftig werden Daten aber erst dann, wenn sie zueinander in Beziehungen gebracht werden können. So wird eine Straße erst dann zu einer Adresse, wenn man sie mit einem Namen und einem Ort verknüpfen kann. Die Struktur, die eine Datenbank zur Verfügung stellt, kann diese Verknüpfungen natürlich nicht selbst erstellen. Sie ermöglicht aber, die Daten auszuwerten, zu bearbeiten und die Verknüpfungen zu erstellen.
Je nach Einsatzgebiet bieten sich verschiedene Datenbankmodelle an, die sich vor allem darin unterscheiden, wie die Daten miteinander in Verbindung gebracht werden können. So können Daten in der hierarchischen Datenbank nur mit einer übergeordneten Datenmenge verknüpft werden, wie z.B. in einem Katalog. Jede Ware hat eine Verknüpfung mit einer Warengruppe, die wiederum zu einer bestimmten Kategorie gehört.
Eine Kaffeemaschine findet man also nur unter Haushaltsgeräten und dort unter Kleingeräten wieder.
Es kann unendlich viele übergeordnete Datenmengen geben, aber die einzelnen Daten können auf jeden Fall immer nur mit einer davon verknüpft sein. Das Problem der Datenbank liegt daran, dass eine Datenmenge, die eigentlich zu mehreren Kategorien gehört, auch in beiden aufgelistet werden muss. Auch ist eine Änderung der Struktur nur schwer möglich.
Deswegen wurde 1969 von der CODASYL (Conference on Data Systems Languages) die Netzwerk Datenbank formuliert, in dem theoretisch jede Datenmenge mit jeder anderen Datenmenge verbunden sein kann. Was sich in der Theorie gut anhört und bis zu einem gewissen Grad auch funktioniert, hat aber einen sehr großen Nachteil. Je komplexer die Datenbank wird, desto verschachtelter wird die Struktur und die Übersicht, welche Verknüpfungen existieren immer schwieriger.
Schon 1970 hat sich deswegen E. F. Codd Gedanken gemacht und die relationale Datenbank entworfen. Hier werden die Daten in Tabellen organisiert, die weitgehend voneinander unabhängig sind und bestimmte Attribute repräsentieren. Die Verknüpfung der Daten geschieht nicht mehr in Abhängigkeit zu anderen Daten sondern dadurch, ob sie miteinander Attribute teilen.
Der größte Vorteil dieser Datenbank ist, dass sich ihre Struktur sehr schnell verändern lässt, indem man Tabellen hinzufügt oder entfernt. Weiterhin kann man beliebig viele Sichtweisen schaffen, indem man verschiedene Tabellen miteinander kombiniert. Dazu muss die Datenbank nicht physisch verändert werden.
Ende der 80er Jahre wurde die Objektdatenbank entwickelt, die die Daten nicht mehr in einer einheitlichen Struktur verwaltet sondern als separate Objekte. Dies ist vor allem für abstrakte Datentypen und Multimediainhalte nützlich.