2.1 Datenbanksysteme
2.1.2 Aufbau von Datenbanksystemen
Wir diskutieren zunächst die sogenannte Schemaarchitektur zentralisierter DBS, mit der unterschiedliche Sichtweisen auf eine Datenbank unterstützt werden. Anschließend beschreiben wir den internen Aufbau von DBVS anhand eines dreistufigen Schichtenmodells.
Schemaarchitektur
Ein wesentlicher Vorteil moderner Datenbanksysteme liegt in der Bereitstellung einer hohen Datenunabhängigkeit sowie der Möglichkeit, verschiedenen Benutzern unterschiedliche Sichtweisen auf eine Datenbank zu ermöglichen. Dies wird durch eine dreistufige Schemaarchitektur unterstützt (Abb. 2-3), welche von dem ANSI/SPARC-Kommittee vorgeschlagen wurde und in vielen DBS realisiert ist. Im einzelnen sind dabei drei Arten von Schemata zur Beschreibung des Datenbankaufbaus zu unterscheiden:
- Im Mittelpunkt steht dabei das konzeptionelle Schema, das den logischen Aufbau der Datenbank vollständig beschreibt. Im Falle relationaler Datenbanken enthält das konzeptionelle Schema die Definition sämtlicher Relationen, Attribute, Domains, Integritätsbedingungen etc.
- Benutzer bzw. Anwendungsprogramme greifen i.a. nicht direkt über das konzeptionelle Schema auf die Datenbank zu, sondern über auf ihre Anforderungen und Zugriffsrechte ausgerichtete externe Schemata. Ein externes Schema enthält i.a. nur eine Teilmenge der Objekte des konzeptionellen Schemas, wodurch sich für die betreffende Benutzergruppe eine einfachere DB-Benutzung ergibt sowie eine Zugriffskontrolle unterstützt wird. Es wird damit auch ein höherer Grad an Datenunabhängigkeit als mit dem konzeptionellen Schema erreicht, da Änderungen im logischen DB-Aufbau nur dann Rückwirkungen auf Anwendungen haben, falls sie Objekte des jeweiligen externen Schemas betreffen (logische Datenunabhängigkeit).
- Das interne Schema beschreibt, wie logische Objekte des konzeptionellen Schemas physisch gespeichert werden sollen (Clusterbildung, Komprimierung etc.) und welche Indexstrukturen vom DBVS zu warten sind. Diese Angaben werden vom Datenbank-Administrator festgelegt und sind für den DB-Benutzer vollkommen transparent (physische Datenunabhängigkeit).
Abb. 2-3: DB-Schemaarchitektur nach ANSI/SPARC
Die Schemaangaben repräsentieren Beschreibungsinformationen oder Metadaten über den Datenbankaufbau, die vom DBVS innerhalb eines Katalogs (Data Dictionary) geführt werden, ebenso wie benutzerspezifische Angaben (Zugriffsrechte etc.). Die Daten selbst werden physisch gemäß der Spezifikation des internen Schemas gespeichert. Beim Datenzugriff sind durch das DBVS gemäß der Schemaarchitektur entsprechende Abbildungen zwischen externer und interner Repräsentation vorzunehmen.
Schichtenmodell
Der interne Aufbau eines Datenbankverwaltungssystems kann durch mehrstufige Schichtenmodelle beschrieben werden [Hä87]. Dabei werden die Funktionen des DBVS aufeinander aufbauenden Schichten zugeordnet, welche Operationen und Objekte der DBVS-Schnittstelle schrittweise auf interne Strukturen abbilden bis hinunter auf die Bitebene der Externspeicher. Abb. 2-4 verdeutlicht diesen Abbildungsprozeß anhand eines dreistufigen DBVS-Schichtenmodells bestehend aus einem Daten-, Zugriffs- und Speichersystem.
Abb. 2-4: Schichtenmodell eines zentralisierten Datenbanksystems
Das Datensystem bildet in diesem Modell die oberste Schicht, welche die mengenorientierten DB-Operationen einer deskriptiven Anfragesprache auf Objekten eines externen Schemas zu verarbeiten hat. Diese Operationen werden entweder im Rahmen vordefinierter Anwendungsprogramme gestellt oder aber interaktiv als Ad-hoc-Anfragen abgesetzt (direkt durch den Endbenutzer bzw. von einem Benutzer-Tool erzeugt). Aufgabe des Datensystems ist es, zu den DB-Operationen entsprechende Ausführungspläne zu erstellen (Query-Übersetzung und -Optimierung) und zu bearbeiten. Dabei werden u.a. externe Objektbezeichnungen auf interne Namen abgebildet und die Verwendung von Basisoperatoren wie Selektion (Scan), Projektion oder Join festgelegt. Für jeden der Basisoperatoren können mehrere Implementierungsalternativen bestehen, unter denen in Abhängigkeit der DB-Operation, vorhandener Indexstrukturen sowie anderer Faktoren eine Auswahl erfolgt. Die Ausführung der Operatoren erfolgt mit den satzorientierten Operationen des Zugriffssystems.
Das Zugriffssystem verwaltet die DB-Sätze innerhalb der Seiten und unterstützt entsprechende Satzoperationen. Daneben werden dort Zugriffspfade und Indexstrukturen geführt. In existierenden DBS ist der B*-Baum Standard als Zugriffspfadtyp, da er sowohl den direkten Satzzugriff über Schlüsselwerte als auch die sortiert sequentielle Verarbeitung (z.B. zur Auswertung von Bereichsanfragen) effizient unterstützt. Hash-basierte Speicherungsstrukturen erlauben einen noch schnelleren Direktzugriff über Schlüsselwerte, sind jedoch für sequentielle Zugriffsmuster ungeeignet. Clusterbildung (Clusterung) von häufig zusammen referenzierten Sätzen ist ebenfalls eine wirkungsvolle Technik, um die Anzahl von Seiten- und damit Plattenzugriffen zu reduzieren.
Das Speichersystem schließlich ist für die Verwaltung von DB-Seiten zuständig, wobei insbesondere ein DB-Puffer (Systempuffer) im Hauptspeicher verwaltet wird, um Lokalität im Referenzverhalten zur Einsparung physischer E/A-Vorgänge zu nutzen. Die Zugriffe auf Externspeicher erfolgen üblicherweise über die Dateiverwaltung des Betriebssystems, welche eine Abstraktion von physischen Geräteeigenschaften bietet. Die zur Transaktionsverwaltung benötigten Systemfunktionen (Synchronisation, Logging, Recovery, Integritätssicherung; s. Kap. 2.1.3) sind in diesem Schichtenmodell nicht explizit berücksichtigt, da sie i.a. mehrere Schichten betreffen und nicht direkt am Abbildungsprozeß beteiligt sind.