Datenbanken besitzen in der Praxis eine immense Bedeutung. So schätzt man, dass mehr als 50% der Software-Entwicklung in der Industrie auf dem Gebiet der betrieblichen Informationssysteme erfolgt. Hinter jedem größeren Informatiksystem, sei es nun ein Webshop, ein Content-Management-System oder ein Enterprise-Resource-Planning-System, steckt ein Datenbanksystem.
In den frühen Anfängen der Informatik wurden Daten von Anwenderprogrammen direkt in sequentiellen Dateien gespeichert. Diese Form der Datenspeicherung hatte erhebliche Nachteile. Sollte z. B. ein Datensatz um ein Datenfeld erweitert werden, musste man ein eigenes Konvertierungsprogramm schreiben, das die bisherige Datendatei eingelesen und mit der erweiterten Struktur neu geschrieben hat. Wurde von einem anderen Datenprogramm die gleiche Datei benutzt, so musste auch dieses Programm entsprechend verändert werden.
Beispiel An der Schule werden an verschiedenen Stellen Stammdaten der Schüler wie Vorname, Nachname, Geburtsdatum benötigt, z. B. im Sekretariat, in der Bibliothek und beim Studienleiter, der die Kurse einteilt. Alle nutzen unterschiedliche Programme und verwalten dabei ihre eigene Schülerdatei.
Die Probleme, die hierbei auftreten, sind ersichtlich:
In den 1960er Jahren wurde daher als neues Konzept eine separate Softwareschicht zwischen Dateiverwaltung und Anwenderprogramm eingeführt. Ein Datenbanksystem - bestehend aus dem Datenbankmanagementsystem (DBMS) und den Datenbanken - repräsentiert dieses Konzept.
Das Datenbankmanagementsystem bildet nun eine einheitliche Schnittstelle zwischen den Benutzern und Daten. Aus ihm resultiert eine Drei-Ebenen-Architektur, bei der auf jeder Ebene spezifische Aspekte des Datenbanksystems beschrieben und realisiert werden.
Das DBMS stellt Benutzern - das können Menschen, aber auch Programme sein - die Daten in einer für sie brauchbaren Form in individuellen Benutzersichten zur Verfügung. Ändert sich eine Anwendung, dann muss nicht mehr die Datenorganisation geändert werden, sondern lediglich eine neue „externe Sicht“ (View) auf die Daten geschaffen werden. Datensicherheit und Datenschutz können leichter gewährleistet werden. So erhält ein Benutzer durch seine spezifische Sicht nur Zugriff auf Daten, für die er eine Zugriffsberechtigung besitzt. Der Anwendungsprogrammierer entwickelt die Formulare, Datenbankskripte bzw. Anwendungsprogramme für die Nutzung der Datenbank.
Das DBMS verwaltet zentral alle Daten eines Unternehmens, einer Institution, eines Projekts usw. Redundanzen und Inkonsistenzen können so vermieden werden und gemeinsame Standards werden eingehalten. Die Daten sind gemäß ihren logischen Zusammenhängen organisiert und nicht entsprechend den Anforderungen spezieller Anwendungen. Das DBMS kann durch spezifische Kontrollen beim Eingeben, Löschen und Ändern von Daten Fehler vermeiden helfen. So ist es z.B. nicht möglich, einem nicht existierenden Schüler Kurse zuzuweisen oder Kurse zu belegen, deren Kursnummern in der Datenbank nicht vorkommen. Sie enthält die logische Gesamtsicht auf das Datenmodell. Mit Hilfe von Relationen wird beschrieben, welche Daten in der Datenbank gespeichert sind und wie die Beziehungen zueinander sind. Die Relationen werden aus der Entity-Relationship-Modellierung abgeleitet. Der Datenbankadministrator arbeitet auf dieser Ebene.
Das DBMS realisiert auch die Speicherung der Daten auf den Speichermedien. Es geht um Fragen der physischen Speicherung der Daten, wie z. B. welche Daten werden zu Einheiten (Datensätzen) auf einem Massenspeicher zusammengefasst, in welcher Organisationsform werden die Daten gespeichert, wie erfolgt ein schneller Zugriff (Suchbaum, Hashtabelle usw.) und welche Sortierverfahren werden angewendet. Die Realisierung der internen Ebene ist Sache des Datenbanksystem-Entwicklers.
Aus der Drei-Ebenen-Architektur ergeben sich klare Vorteile.
1. Es soll eine Datenbank für eine Bücherei eingerichtet werden. Ein einzelnes Buch sei beschrieben durch die folgenden Merkmale: Inventarnummer des Buches, ISBN-Nummer, Autor, Titel, Fachgebiet, Verlag, Erscheinungsort und -jahr, Auflage, Preis.
a) Zu welcher Ebene gehört diese Beschreibung?
b) Nehmen wir an, die Datenbank soll in Pascal oder Java geschrieben werden. Welche Hilfsmittel stehen dann zur Verfügung, um möglichst saubere Schnittstellen zwischen den einzelnen Ebenen zu realisieren? Welche Designentscheidungen bei der Planung des Programms gehören zur physischen, welche zur konzeptuellen, welche zur externen Ebene? Inwieweit lässt sich Datenunabhängigkeit wahren?
2. Analysieren Sie bei jeder der folgenden Umstellungen, auf welcher der Ebenen eines bestehenden Datenbanksystems jeweils etwas geändert werden muss:
a) Neuer Rechner, aufwärts kompatibel, gleiches Betriebssystem, gleiches Datenbanksystem.
b) Neuer Rechner, anderes Fabrikat, gleiches Betriebssystem, gleiches Datenbanksystem.
c) Neue Platten mit anderer Struktur.
d) Ein neues Programm benutzt bestehende Daten.
e) Ein neues Programm X benutzt bestehende Daten und zusätzliche neue Datenstrukturen.
f) Eine neue Verbindung zwischen zwei existierenden Typen wird eingeführt, bisher gab es z.B. zwischen Schülern und Lehrern nur die Verbindung, wer Tutor ist. Jetzt gebe es zusätzlich die Verbindung, wer für jeden Schüler frei wählbarer Vertrauenslehrer ist.
g) Der Bestand einer Datenbank wird geteilt.