Schichtenarchitektur
Wenn eine Datenbank aufgesetzt und mit Daten gefüllt wird, dann ist davon auszugehen, dass diese Datenbank über einen langen Zeitraum, Jahre, vielleicht sogar Jahrzehnte in Gebrauch ist. Die Anwendungen, die auf sie zugreifen, können sich über die Zeit ändern, auch können neue Anwendungen hinzu kommen.
Die Datenbank soll dabei von den Anwendungen entkoppelt sein, d. h. bei einer Änderung einer Anwendung soll die Datenbank nicht geändert werden müssen. Wir sprechen auch von Anwendungsunabhängigkeit. Dies ist auch unseren Geschäftsleuten vom Limo-Shop wichtig:
Die Webseite ist ein Erfolg und nun soll der Limo-Shop auch über eine mobile App für das Smartphone erreichbar sein.
Gleichzeitig wünscht ein Großhändler der Region eine Möglichkeit, die Produkte des Shops in das eigene Sortiment automatisiert einzubinden. Hierfür müssen Schnittstellen geschaffen werden. Dabei sollen möglichst wenige Änderungen an der Datenbank vorgenommen werden, damit die existierende Webseite nicht „kaputt geht“ und weiterhin für Bestellungen verwendet werden kann.
Anwendungsunabhängigkeit bedeutet, dass unsere Datenbank von diesen Änderungen entkoppelt ist.
Viele verschiedene relationale Datenbanksysteme sind auf dem Markt erhältlich, darunter IBM DB2, Microsoft SQL Server, PostgreSQL und MySQL. Es besteht das Interesse, Datenbanken unabhängig von der konkreten Realisierung in einem Datenbanksystem (DBS) zu modellieren. Für die Modellierung einer Datenbank soll es irrelevant sein, wie die Daten intern gespeichert sind. Wir sprechen von Implementierungsunabhängigkeit
Um Anwendungsunabhängigkeit und Implementierungsunabhängigkeit zu erreichen, folgen Datenbanksysteme Datenbankarchitekturen, die verschiedene Schichten voneinander abgrenzen. Wir betrachten in diesem Modul vor allem die Drei-Schema-Architektur, auch ANSI-SPARC-Architektur genannt.
ANSI-SPARC-Architektur
Bei der Drei-Schema-Architektur werden drei Schichten unterschieden: die externe Ebene, die konzeptionelle Ebene und die interne Ebene.
Die Funktionen dieser Schichten sind im Detail:
Zur externen Ebene gehören im Limo-Shop alle Benutzeroberflächen und Sichten mit Datenbezug, also z. B. das Bestellformular oder die Rechnung, welche dem Kunden zugestellt wird. Auch die Schnittstellen, die geschaffen werden, damit der Großhändler die Produkte automatisiert abrufen kann, gehören zur externen Ebene.
Die konzeptionelle Ebene wollen wir in diesem Datenbankmodul betrachten. Dabei lernst du, wie eine relationale Datenbank konzeptionell modelliert wird. und dieses Modell in ein Relationenmodell überführt werden kann.
Die interne Ebene (auch physische Ebene), stellt die physische Sicht der Datenbank im Computer dar. In ihr wird beschrieben, wie und wo die Daten in der Datenbank gespeichert werden, also z. B. das Speichermedium selbst oder das Datenbankprodukt. Muss der Datenbankserver einmal „umziehen“ also physisch auf einem anderen Rechner installiert werden, soll sich das nicht auf die konzeptionelle Modellierung der Datenbank auswirken.