Architektur von Datenbanksystemen Prof. Dr. Uta Störl Hochschule Darmstadt Fachbereich Informatik Wintersemester 2015/16 Motivation In Datenbanken-Grundvorlesung betrachtet: • Funktionalität von Datenbanksystemen aus Sicht des Datenbank-Entwicklers bzw. -Benutzers: – Datenbank-Entwurf – Datenbank erstellen (logische Sicht) – Datenbankinhalte abfragen – Datenbankanwendungen schreiben Was fehlt? • Betrachtung der Funktionalität von Datenbanksystemen aus Sicht des Datenbank-Administrators bzw. des Software-Architekten – physischer Datenbank-Entwurf – Datenbank erstellen (physische Sicht) – Performance-Optimierung der Datenbank – Performance-Optimierung der Gesamtarchitektur h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 2 Motivation: Beispiele für große Datenbanken • WalMart Data Warehouse – Produktinfos (Verkäufe etc.) von 60.00 Märkten – > 500 TB (2005) – > 2.5 PB (2008) • Lufthansa (2011) – Verarbeitung von 5,7 Mio. Coupons im Monat – 650 Mio. Dokumente (ca. 38 TB) • SAP R/3-Installation der Deutschen Telekom AG – Financial Accounting: Rechnungen, Zahlungsaufford., Lastschriften etc. – 15 SAP R/3-Systeme; jedes verarbeitet 200.000 Rechnungen, 12.000 Mahnungen, 10.000 Änderungen von Kundendaten pro Tag – bis zu jeweils 1000 Nutzer gleichzeitig, > 13.000 Datenbanktabellen • UPS (Winter Corporation Report, 2005) – UPS: 1,1 Milliarden SQL-Statements pro Stunde (DB2 for z/OS) • Facebook (2013) – 300 PB h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 3 DBMS-Benchmarks – 1(2) • … der Versuch, verschiedene DBMS-Plattformen mit realitätsnahen Anwendungsszenarien zu vergleichen • Wichtigste und anerkannteste Benchmarks für DBMS: TPC (Transaction Processing Performance Council, www.tpc.org) Benchmarks: – TPC-C: OLTP-Szenario – aktuell der Benchmark für OLTP – TPC-E: neuer OLTP-Benchmark – TPC-H: Decision Support Szenario – aktuell der Benchmark für OLAP – TPC-DS: neuer Decision Support Benchmark – Inzwischen „obsolet“: TPC-A, -B, -D, -R, -W und -App • Weitere „Spezial“-Benchmarks z.B. für XML-Daten u.ä. außerhalb des TPC-Konsortiums h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 4 DBMS-Benchmarks – 2(2) • TPC-C Benchmark – Modelliert Auftragsverarbeitung in einem Handelsunternehmen – Performance-Maß: tpmC (transactions per minute) – Price/Performance-Maß: $/tpmC • Top 3 by Performance (Stand: 03/2014) Hardware BS DBMS tmpC Price/tpmC Oracle SPARC Oracle Solaris 11 Oracle 11g R2 8.552.523 0,55 US $ Oracle Server Oracle LInux Oracle 11g R2 5.055.888 0,89 US $ IBM System SUSE Linux IBM DB2 9.7 3.014.684 0,59 US $ tmpC Price/tpmC • Top 3 by Price/Performance (Stand: 03/2014) Hardware BS DBMS Cisco UCS C240 Oracle Linux Oracle 11g 1.609.186 0,47 US $ IBM System Red Hat Linux IBM DB2 9.7 1.320.082 0,51 US $ HP ProLiant MS Wind. 2008 MS SQL Server 2005 1.263.599 0,51 US $ h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 5 Ziele der Lehrveranstaltung Erarbeitung eines tiefergehenden Verständnisses • für das Zusammenspiel der Datenbanksystem-Schichten und -Komponenten und der Wechselwirkung von Implementierungsverfahren • zur Erklärung und Verbesserung des Leistungsverhaltens bei der Abwicklung von Datenbankoperationen • für das Entwerfen, Aufbauen und Warten von Datenbanken sowie der Entwicklung von Datenbank-Anwendungen h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 6 Überblick • Architektur von Datenbanksystemen • Verwaltung des Hintergrundspeichers • Dateiorganisation und Zugriffsstrukturen • Basisalgorithmen für Datenbank-Operationen • Anfrageoptimierung • Transaktionsverwaltung und Recovery • Verteilte Datenbankarchitekturen h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 7 Praktikum • Ziel: Vertiefung der in der Vorlesung behandelten Themen anhand der Arbeit mit einem konkreten DBMS (hier: IBM DB2 und teilweise Lehr-DBMS dbj) – sowohl praktische als auch theoretische Aufgabenstellungen • Charakter des Praktikums: stärker auf selbst Erarbeiten und Ausprobieren ausgerichtet, als im Bachelor-Studium entsprechende Vorbereitung notwendig • Organisatorisches – 5 Termine – Unterlagen zu Vorlesung und Praktikum online auf der Homepage – Vor(!)- und ggf. Nachbereitung des Praktikums notwendig – Zusendung des Praktikumsberichts (per Mail) jeweils bis 1 Woche nach dem Praktikumstermin – Arbeit mit VM oder eigener DB2-Installation (siehe Homepage) h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 8 Prüfung • Die Prüfung zur Vorlesung wird als mündliche Prüfung durchgeführt • Zulassungsvoraussetzungen zur Prüfung: erfolgreich bestandenes Praktikum (inkl. termingerechter Abgabe der Praktikumsberichte) h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 9 Literatur Die Vorlesung basiert überwiegend auf dem folgendem Lehrbuch: • G. Saake, A. Heuer, und K. Sattler: Datenbanken: Implementierungstechniken. 2. Auflage, mitp-Verlag, 2005 (3. Auflage 2011) … und einem darauf basierenden Foliensatz von Prof. Dr. Kai-Uwe Sattler (TU Ilmenau) Literatur zur Vertiefung: • T. Härder, E. Rahm. Datenbanksysteme – Konzepte und Techniken der Implementierung. Springer-Verlag, 2001. • J. Gray, A. Reuter. Transaction Processing – Concepts and Techniques. Morgan Kaufmann Publishers, Inc., San Mateo, CA, 1992. h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 10 KAPITEL 1 ARCHITEKTURMODELLE h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 11 Architekturmodelle Inhalte des Kapitels • 5- Schichten-Architekturmodell eines DBMS • Systemarchitektur konkreter DBMS – Komponentenarchitektur – Prozessmodell Lernziele • Verstehen der Architekturmodelle • Kennenlernen der Aufgaben der verschiedenen Schichten des 5-Schichten-Architekturmodells • Einblick in Komponentenarchitektur und Prozessmodelle h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 12 5-Schichten-Architektur eines DBMS • • • • basierend auf Idee von Senko 1973 Weiterentwicklung von Härder 1987 Umsetzung im Rahmen des IBM-Prototyps System R genauere Beschreibung der Transformationskomponenten – schrittweise Transformation von Anfragen/Änderungen bis hin zu Zugriffen auf Speichermedien – Definition der Schnittstellen zwischen Komponenten SQL 100110101 h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 13 5-Schichten-Architektur eines DBMS Mengenorientierte Schnittstelle Datensystem Übersetzung, Zugriffspfadauswahl, Zugriffskontrolle, Integritätskontrolle Zugriffssystem Data Dictionary, Currency Pointer, Sortierung, Transaktionsverwaltung Speichersystem Record Manager, Zugriffspfadverwaltung, Sperrverwaltung, Log/Recovery Satzorientierte Schnittstelle Interne Satzschnittstelle Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Geräteschnittstelle h_da Prof. Dr. Uta Störl Systempufferverwaltung mit Seitenwechselstrategie Externspeicherverwaltung Externspeicher Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 14 5-Schichten-Architektur eines DBMS Mengenorientierte Schnittstelle Relationen Sichten SQL: select … from QBE, … Datensystem Externe Sätze, Scans, FIND NEXT satz Index-Strukturen STORE satz Satzorientierte Schnittstelle Zugriffssystem Interne Satzschnittstelle Speichersystem Systempufferschnittstelle Dateischnittstelle Geräteschnittstelle h_da Prof. Dr. Uta Störl Pufferverwaltung Betriebssystem Externspeicher Interne Sätze, Bäume Speichere internen Satz; Hashtabellen INSERT in B-Baum Segmente Seiten Bereitstellen Seite j Freigeben Seite j Dateien Blöcke Lies Block k Schreibe Block k Zylinder Spuren Treiber Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 15 Aufgaben der Schichten – 1(2) • mengenorientierte Schnittstelle: – deklarative Datenmanipulationssprache auf Tabellen und Sichten (etwa SQL) • durch Datensystem auf satzorientierte Schnittstelle umgesetzt: – navigierender Zugriff auf interner Darstellung der Relationen – manipulierte Objekte: typisierte Datensätze und interne Relationen sowie logische Zugriffspfade (Indexe) – Aufgaben des Datensystems: Übersetzung und Optimierung von SQLAnfragen • durch Zugriffssystem auf interne Satzschnittstelle umgesetzt: – interne Tupel einheitlich verwalten, ohne Typisierung – Speicherstrukturen der Zugriffspfade (konkrete Operationen auf BBäumen und Hash-Tabellen), Mehrbenutzerbetrieb mit Transaktionen h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 16 Aufgaben der Schichten – 2(2) • durch Speichersystem Datenstrukturen und Operationen der internen Satzschnittstelle auf interne Seiten eines virtuellen linearen Adressraums umsetzen – Manipulation des Adressraums durch Operationen der Systempufferschnittstelle – Typische Objekte: interne Seiten, Seitenadressen – Verwendete Operationen: Freigeben und Bereitstellen von Seiten, Seitenwechselstrategien, Sperrverwaltung, Schreiben des Log • durch Pufferverwaltung interne Seiten auf Blöcke der Dateischnittstelle abbilden – Umsetzung der Operationen der Dateischnittstelle auf Geräteschnittstelle erfolgt (i.a.) durch das Betriebssystem h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 17 Systemarchitektur • Prinzipiell lassen sich die fünf Schichten und ihre zugehörigen Komponenten in den meisten (nicht nur relationalen) DBMS identifizieren – Praxis: nicht immer klare Trennung zwischen den Schichten • Konzeptuelle Unterschiede vor allem im – Speichermodell (Organisation der Daten auf dem Externspeicher) – Prozessmodell, d.h. Umsetzung der Komponenten auf Betriebssystemebene und deren Kommunikation h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 18 Typische Komponentenarchitektur eines DBMS Compiler Optimizer RunTime Catalog Manager Index Manager Record Manager Lock Manager Log Manager Buffer Manager File Manager h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 19 Typische Komponentenarchitektur eines DBMS Compiler Optimizer RunTime Catalog Manager Index Manager Record Manager Lock Manager Log Manager Buffer Manager File Manager h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 20 Prozessmodell Oracle – 1(2) Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 21 Prozessmodell Oracle – 2(2) • Client-Prozess: Oracle-Anwendungen (z.B. sqlplus) • Shared-Server-Prozess: implementiert die Transformationskomponenten, d.h. – Übersetzung und Ausführung von Anfragen – Laden von benötigten Seiten von der Festplatte in den Puffer – Rückgabe der Ergebnisse an den Client • System Monitor SMON: übernimmt beim Start das Recovery (Kap. 6) • Prozess Monitor PMON: überwacht die laufenden Server- und Hintergrundprozesse; startet diese ggf. neu • LCK: Sperren (locking) von Ressourcen (Kap. 2 und Kap. 6) • DBWR: Ausschreiben verdrängter und modifizierter Seiten aus dem Puffer (Kap. 2) • LGWR: Ausschreiben der Log-Einträge in die Log-Dateien (Kap. 6) • ARCH: Archivierung der Log-Dateien (Kap. 6) • CHKPT: Schreiben von Sicherungspunkten (checkpoints) (Kap. 6) • RECO: Recovery verteilter Transaktionen (Kap. 7) h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 22 Prozessmodell SQLServer – 1(2) Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 23 Prozessmodell SQLServer – 2(2) • pro Instanz ein Prozess, der als Windows-Dienst realisiert ist • jede Anforderung wird durch einen Worker Thread übernommen • Worker Thread: implementiert die Transformationskomponenten • lazywriter: Ausschreiben verdrängter und modifizierter Seiten aus dem Puffer (Kap. 2) • logwriter: Ausschreiben der Log-Einträge in die Log-Dateien (Kap. 6) • checkpoint: Schreiben von Sicherungspunkten (checkpoints) (Kap. 6) h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 24 Prozessmodell DB2 – 1(2) Quelle: DB2 Dokumentation h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 25 Prozessmodell DB2 – 2(2) • pro Instanz ein Prozess • jede Anforderung wird durch einen db2agent Thread übernommen • db2tcpcm: TCP/IP Kommunikation mit Anwendung • db2ipccm: Inter-Prozess Kommunikation mit Anwendung • db2agent: Bearbeiten SQL Anweisungen; implementiert die Transformationskomponenten • db2pfchr: Buffer Pool Prefetcher (Kap. 2) • db2pclnr: Page Cleaner (Kap. 2) • db2loggr/db2loggw/db2logts: Behandlung des Transaktion Logs (Kap. 6) • db2dlock: Dead Lock Detection (Kap. 2) • … h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 26 Zusammenfassung • 5- Schichten-Architekturmodell als abstraktes Architekturmodell, welches das Zusammenspiel und die Schnittstellen zwischen den Schichten beschreibt • Systemarchitektur konkreter DBMS – Komponentenarchitektur (relativ ähnlich) – Prozessmodell (sehr unterschiedlich) h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 27 Architektur von Datenbanksystemen Architekturmodelle • Verwaltung des Hintergrundspeichers • Dateiorganisation und Zugriffsstrukturen • Basisalgorithmen für Datenbank-Operationen • Anfrageoptimierung • Transaktionsverwaltung und Recovery • Verteilte Datenbankarchitekturen h_da Prof. Dr. Uta Störl Architektur von Datenbanksystemen WS 2015/16 Kapitel 1: Einführung und Übersicht 28