Datenbanksysteme sind ein weit verbreitetes technisches Hilfsmittel zur effizienten, rechnergestützten Organisation, Speicherung, Manipulation, Integration und Verwaltung großer Datensammlungen. Sie basieren auf der Idee, Daten über die reale Welt, welche von Anwendungsprogrammen verarbeitet werden, als von diesen Programmen unabhängige und integrierte Ressource zu behandeln, und stellen dazu spezifische Funktionalität bereit.
Schichtenmodell eines Datenbanksystems
Ein Datenbanksystem besteht aus einer aus mehreren Komponenten zusammengesetzten Systemsoftware sowie aus Schnittstellen zu anderen Systemen und zur unterliegenden Hardware und verwaltet eine oder mehrere Datenbanken. Die wesentlichen Komponenten, welche im Allgemeinen in Schichten bzw. in einer Hierarchie von aufeinander aufbauenden Diensten angeordnet werden (Lockemann, Dittrich 2004, S. 43 f.), und ihre Abstraktionsebenen zeigt Abb. 1.
Abb. 1: Die zentralen Ebenen und Komponenten eines Datenbanksystems
Die Benutzersprache ist der nach außen sichtbare Teil eines Datenbanksystems. Hier wird primär SQL verwendet sowie je nach Bedarf eine SQL-Anbindung (an eine Programmiersprache oder ein Anwendungssystem). Da Anfragen an eine Datenbank somit in einer Hochsprache formuliert werden, ist eine Anfrageverarbeitung nötig, welche Syntax, Zugriffsberechtigungen u. Ä. prüft. Zu internen Verarbeitung von Anfragen und anderen Aufträgen muss das Datenbanksystem auf der Grundlage vorhandener Zugriffsstrukturen (Indexe u. Ä.) eine Code-Erzeugung vornehmen. Die Transaktionskomponente ist für die Synchronisation paralleler Zugriffe verantwortlich. Die Speicherverwaltung regelt den Zugriff auf den Sekundärspeicher sowie die Kommunikation zwischen diesem und dem Datenbank-Puffer.
Der wesentliche Vorteil, der sich durch diese Aufteilung der Funktionen eines Datenbanksystems ergibt, ist die klare Strukturierung der durch das System bereitgestellten Dienste. So umfasst die Anfrageverarbeitung insbesondere eine Anfrageoptimierung, durch welche von Benutzern oder Anwendungssystemen stammende Anfragen vor ihrer Ausführung optimiert werden. Die Transaktionskomponente garantiert die ACID-Eigenschaften (Atomicity, Consistency Preservation, Isolation, Durability) für alle vom System verarbeiteten Benutzeraufträge (Transaktionen) durch Concurrency Control- sowie Recovery-Subkomponenten. Die Speicherverwaltung muss nicht vollständig als Teil des Datenbanksystems realisiert werden, sondern kann zumindest in Teilen auch dem jeweiligen Betriebssystem überlassen werden.
3-Ebenen-Benutzersicht
Die verschiedenen Komponenten eines Datenbanksystems unterstützen, dass Datenbankbenutzern eine Sicht ihrer Datenbank auf drei Ebenen zur Verfügung gestellt werden kann (s. Abb. 2), die auch auch als das ANSI-SPARC-Modell bekannt sind (Kemper, Eickler 2015; ANSI 1975).
Abb. 2: 3-Ebenen-Architektur einer Datenbank
Die interne Ebene liegt dem Speicher am nächsten. Die hier zu verwendende Sicht der Daten wird im internen Schema festgelegt, in welchem Informationen über die Art und den Aufbau der verwendeten Datenstrukturen und spezieller Zugriffsmechanismen hierauf oder über die Aufteilung des logischen Adressraums enthalten sind. Auf der konzeptionellen Ebene wird die logische Gesamtsicht aller Daten in der Datenbank und ihrer Beziehungen untereinander im konzeptionellen Schema repräsentiert. Dazu bedient man sich der sprachlichen Mittel eines Datenmodells, welches insbesondere von der internen Sicht abstrahiert (z. B. Relationenmodell, Entity-Relationship-Modell). Die externe Ebene umfasst alle Sichten der einzelnen Benutzer oder Benutzergruppen auf die Datenbank.
Der ANSI-Vorschlag, dessen Hauptziel die Gewährleistung von logischer sowie physischer Datenunabhängigkeit ist, sieht neben den drei Abstraktionsebenen eine Reihe weiterer Einzelheiten vor. Zu diesen zählen Systemaktivitäten sowie Schnittstellen. Speziell wird unterstellt, dass gerade in einer großen Organisation das konzeptionelle Schema in der Verantwortung eines Unternehmens-Administrators liegt; das interne Schema fällt in die Zuständigkeit eines Datenbank-Administrators, die externen in die eines Anwendungs-Administrators.
Erscheinungsformen
Während Datenbanksysteme seit den 1970er Jahren als monolithische, zentralisierte oder verteilte Systeme entwickelt und vertrieben wurden, haben sich nach und nach weitere Erscheinungsformen etabliert. Die hier beschriebene Komponentensicht lässt sich dahingehend ausnutzen, dass ein Datenbanksystem aus unterschiedlichen funktionalen Komponenten, die sogar von unterschiedlichen Herstellern stammen können, zusammengesetzt wird (Dittrich und Geppert 2001). Werden diese Komponenten als individuelle Dienste realisiert, die aus der Cloud über ein Application Programming Interface (API) im Web abgerufen werden können, resultiert die aktuellste Entwicklung, die als Database-as-a-Service (DaaS) bezeichnet wird. Daneben wurden und werden seit einigen Jahren immer neue Systeme entwickelt, die entweder auf spezifische Anwendungen (z. B. Blockchain) ausgerichtet sind oder auf bestimmte “klassische” Datenbankeigenschaften (wie z. B. strenge Transaktions-Konsistenz bzw. Serialisierbarkeit) verzichten. Zahlreiche neuere Entwicklungen sind der NoSQL-Kategorie (“Not only SQL”) zuzurechnen; daneben befinden sich heute In-Memory-Systeme am Markt; Datenbankfunktionalität wird ferner von diversen Cloud-Providern (u. A. AWS) angeboten, vgl. z. B. Lemahieu et al. (2018).
Literatur
ANSI: X3/SPARC Study Group on Data Base Management Systems. Interim Report. FDT ACM SIGMOD Record, 7(2), 1975.
Dittrich, Klaus R.; Geppert, Andreas; (Hrsg.): Component Database Systems. Morgan Kaufmann Publishers, San Francisco, CA 2001.
Lemahieu, W., vanden Broucke, S., Baesens, B.: Principles of Database Management; Cambridge University Press, 2018.
Lockemann, Peter C.; Dittrich, Klaus R.: Architektur von Datenbanksystemen. dpunkt.verlag : Heidelberg 2004.
Kemper, Alfons; Eickler, Andre: Datenbanksysteme – Eine Einführung. 10. Auflage, R. Oldenbourg Verlag : München 2015.