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:

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.