Architektur von Datenbanksystemen Vorlesung Datenbanksysteme Michael Tschuggnall, PhD Dr. Eva Zangerle Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)
3 Schichten Grafik entnommen aus R. Elmasri, S. Navathe: Fundamentals of Database Systems, 7th edition, Pearson, 2015. 2
Generische technische Sicht eines DBMS Programm 1 Programm 2 Programm 3 Kommunikationssystem Anwendungen (Programme) Datenbank-Managementsystem Betriebssystem Datenbank Grafik basierend auf Gottfried Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, 5. Auflage, Oldenbourg, 2008. 3
5-Schichten-Architektur Ebene 1 der Benutzersprache Ebene 2 der Anfrageverarbeitung Ebene 3 der Zugriffsstrukturen und Code-Erzeugung Ebene 4 der Synchronisation paralleler Zugriffe Ebene 5 der Speicherverwaltung Grafik basierend auf Gottfried Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, 5. Auflage, Oldenbourg, 2008. 4
SQL, embedded SQL APPL DB-Applikationen SQL, embedded SQL,..., Benutzerprogramm function foo (a, b) {... EXEC SQL...... } 5
SQL, embedded SQL APPL DB-Applikationen SQL, embedded SQL,..., Benutzerprogramm function foo (a, b) {... EXEC SQL...... } Relationen DBV DB-Verwalter DDL mit Katalogverwaltung, DML mit Übersetzer, Optimierer, Recovery, Concurrency SQL, R1 (... ) R2 ( A, B,...) 6
SQL, embedded SQL APPL DB-Applikationen SQL, embedded SQL,..., Benutzerprogramm function foo (a, b) {... EXEC SQL...... } Relationen DBV DB-Verwalter DDL mit Katalogverwaltung, DML mit Übersetzer, Optimierer, Recovery, Concurrency SQL, R1 (... ) R2 ( A, B,...) π Relationale Algebra RAV Relationaler Algebra-Verwalter Operatorgraph, Ausführungsplan, Relationaler Algebra Interpreter σ R1 R2 7
SQL, embedded SQL APPL DB-Applikationen SQL, embedded SQL,..., Benutzerprogramm function foo (a, b) {... EXEC SQL...... } Relationen DBV DB-Verwalter DDL mit Katalogverwaltung, DML mit Übersetzer, Optimierer, Recovery, Concurrency SQL, R1 (... ) R2 ( A, B,...) π Relationale Algebra RAV Relationaler Algebra-Verwalter Operatorgraph, Ausführungsplan, Relationaler Algebra Interpreter σ Tupel RTV Relationen/Tupelverwaltung Mengen von Tupeln / Einzeltupel B*-Baum R1 R2 Zugriffstrukturen (z.b. B*-Bäume), temporäre Zwischenergebnisse, Utilities (Sortieralg.,...), Cursor für embedded SQL 8
SQL, embedded SQL APPL DB-Applikationen SQL, embedded SQL,..., Benutzerprogramm function foo (a, b) {... EXEC SQL...... } Relationen DBV DB-Verwalter DDL mit Katalogverwaltung, DML mit Übersetzer, Optimierer, Recovery, Concurrency SQL, R1 (... ) R2 ( A, B,...) π Relationale Algebra RAV Relationaler Algebra-Verwalter Operatorgraph, Ausführungsplan, Relationaler Algebra Interpreter σ Tupel RTV Relationen/Tupelverwaltung Mengen von Tupeln / Einzeltupel Zugriffstrukturen (z.b. B*-Bäume), temporäre Zwischenergebnisse, Utilities (Sortieralg.,...), Cursor für embedded SQL B*-Baum R1 R2 Segmente (Blöcke, Seiten) SV Segmentverwaltung Seiten, Seitenmengen, DB-Cache, Freispeicherverwaltung Seite 232, 24% frei, 76% belegt, Seitenadresse auf Platte, KachelNr. im HSp, Update-flag. 9
SQL, embedded SQL APPL DB-Applikationen SQL, embedded SQL,..., Benutzerprogramm function foo (a, b) {... EXEC SQL...... } Relationen DBV DB-Verwalter DDL mit Katalogverwaltung, DML mit Übersetzer, Optimierer, Recovery, Concurrency SQL, R1 (... ) R2 ( A, B,...) π Relationale Algebra RAV Relationaler Algebra-Verwalter Operatorgraph, Ausführungsplan, Relationaler Algebra Interpreter σ Tupel RTV Relationen/Tupelverwaltung Mengen von Tupeln / Einzeltupel Zugriffstrukturen (z.b. B*-Bäume), temporäre Zwischenergebnisse, Utilities (Sortieralg.,...), Cursor für embedded SQL B*-Baum R1 R2 Segmente (Blöcke, Seiten) SV Segmentverwaltung Seiten, Seitenmengen, DB-Cache, Freispeicherverwaltung Seite 232, 24% frei, 76% belegt, Seitenadresse auf Platte, KachelNr. im HSp, Update-flag. Plattenblöcke Auftrag Antwort PSV Peripherie-Speicherverwaltung - Plattenspeicherverwaltung - CD-Speicherverwaltung - Tape-Speicherverwaltung (BS-Teil, z.b. Unix-Kern) Original 10
5-Schichten-Architektur: Schnittstellen Ebene 1 der Benutzersprache Ebene 2 der Anfrageverarbeitung Mengen-Schnittstelle Ebene 3 der Zugriffsstrukturen und Code-Erzeugung Ebene 4 der Synchronisation paralleler Zugriffe Tupel-Schnittstelle Record-Schnittstelle Seiten-Schnittstelle Ebene 5 der Speicherverwaltung Grafik basierend auf Gottfried Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, 5. Auflage, Oldenbourg, 2008. 11
5-Schichten-Architektur: Schnittstellen Schnittstelle Objekte Operationen 1 2 Views, Relationen select, insert, delete, modify 2 3 Cursor, Tupel fetch, stores, erase, update 3 4 (Index-) Records retrieve, add, dispose, change 4 5 Seiten, Segmente read, write Tabelle basierend auf Gottfried Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, 5. Auflage, Oldenbourg, 2008. 12
Schnittstelle zwischen Datenbanksystem und Betriebssystem Beachten Sie: Diagramm beschreibt Abstraktionsebenen der Auftragsabwicklung (Kontrollstrukturen), nicht die Prozessstruktur RTV und untergeordnete Dienste: physische Datenorganisation Schnittstelle zwischen DBS und BS: sehr kritische Entscheidung für Leistung und Fehlerbehandlung extreme Lösungen: Alle BS-Funktionen werden für DBS-Zwecke umgangen -> spezielle DB-Maschinen RTV ist File-Schnittstelle des BS übliche Lösung: DBS-BS-Schnittstelle zwischen SV und PSV Prozessstrukturierung und -kommunikation abhängig vom BS: pipes, shared-memory, synchron, asynchron 13
Umsetzung
Hauptkomponenten Grafik übernommen J. Hellerstein, M. Stonebraker, J. Hamilton: Architecture of a Database System, Foundations and Trends in Databases 1, 2, 141-259, 2007. 15
Client-Kommunikationsmanager Software, die mit dem DBMS kommuniziert und beispielsweise SQL-Befehle absetzt Treiber, Datenbankanbindung Application Programmer s Interface (API) der Datenbank wird verwendet Embedded SQL: in Wirtssprache (z.b. C, Java) eingebettetes SQL (über Precompiler in Wirtssprache umgewandelt, umderen Datenbank-Schnittstelle zu verwenden) I/O-Verwaltung: Kommandos als Input, Resultatmengen (oder Fehlermeldungen) als Output 16
Abfrageverarbeitung Relational Query Processor Parsen der eingehenden SQL-Query, Überprüfung auf syntaktische Korrektheit Überprüfung, ob angeforderte Tabellen, Datenbanken, etc. vorhanden sind ( Catalog Manager) Überprüfung, ob DB danach auch noch in konsistentem Zustand (Consistency) durch Integrity Constraints wie z.b. Fremdschlüssel Überprüfung, ob Zugriff für den Benutzer erlaubt ist ( Admission Control) Rewrite der Abfrage (Normalisierung, Vereinfachung auf Schemaebene; keine Daten!) Optimierung der Abfrage (Optimierung der relationalen Algebra, heuristische Optimierung der Abfrageabarbeitung (z.b. Join-Optimierung, etc.)) durch Berechnung eines Query Execution Plan Ausführung des berechneten Query Execution Plan DDL wird getrennt behandelt, da Optimierung etc. nicht zutrifft 17
Transaktionsmanager Transactional Storage Manager verwaltet alle Schreib- und Leseoperationen Verwaltet Indexstrukturen, Tabellen (Access Methods) Sperren über Tabellen oder Zeilen müssen verwaltet werden (Lock-Manager), um ACID sicherstellen zu können und Transaktionen verwalten zu können (Atomicity, Isolation) Logs über ausgeführte Operationen und resultierende Daten müssen geschrieben werden (Durability), um Wiederherstellung/Recovery er Datenbank zu ermöglichen Buffermanager entscheidet, wann welche Daten zwischen Speicher und Festplatte transferiert werden 18
Prozessmanager Verteilung der Aufgaben an verschiedene Threads Beispiel: neu eintreffende Query muss einem Thread zugewiesen werden Überprüfung, ob Benutzer bzw. Prozess berechtigt ist, Operationen auszuführen Schnittstelle mit Betriebssystem ( Threads) 19
Utilities und gemeinsame Komponenten Verwaltung der Statistiken über Datenbestand und Kataloge für Query- Optimierung Index-Erzeugung und physikalische Reorganisation (Partitionieren, Datei- Verwaltung, etc. ) Möglichkeiten für Backup, Export der Daten Bulk-Loading von Daten zum Import großer Datenmengen Überwachung aller Datenbank-Prozesse und des Gesamtzustands des DBMS 20
Hauptkomponenten: diese Vorlesung Grafik übernommen J. Hellerstein, M. Stonebraker, J. Hamilton: Architecture of a Database System, Foundations and Trends in Databases 1, 2, 141-259, 2007. 21