Vorlesung Datenbanktechnik Studienfach Informationstechnologie Prof. Dr. Nikolai Preiß Duale Hochschule Baden-Württemberg Stuttgart & Dipl.-Ing. (BA) Holger Seubert [email protected] © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 1 Inhalt 1. Einführung 2. Physische Datenspeicherung • • 3. Indexierung • • 4. Anfragebaum Auswertung Transaktionskonzept • • 6. Flache Indexe Mehrstufige Indexe (B- und B+-Bäume) Anfrageoptimierung • • 5. Unsortierte und sortierte Datei Hash-Datenbank Recovery Mehrbenutzerbetrieb Verteilte Datenbanken • • • Verteilungskonzepte Anfrageauswertung Transaktionskonzept © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 2 Literatur Connolly, T. / Begg, C. (2005): Database Systems, 4. Auflage, Addison-Wesley-Verlag, ISBN 0-321-21025-5 Elmasri, R. / Navathe, S.B. (2000): Fundamentals of Database Systems, Third Edition, Addison-Wesley, ISBN 0-201-54263-3 (5. Auflage 2006 verfügbar, ISBN 0-321-41506-X) Elmasri, R. / Navathe, S.B. (2009) Grundlagen von Datenbanksystemen, 3. aktualisierte Auflage, Pearson Studium, ISBN 3-86894-012-X (deutsche Übersetzung der verkürzten englischsprachigen Originalausgabe) Heuer, A. / Saake, G. / Sattler, K.-U. (2003) Datenbanken kompakt, 2. Auflage, mitp-Verlag, ISBN 3-8266-0987-5 Saake, G. / Heuer, A. / Sattler, K.-U. (2005) Datenbanken: Implementierungstechniken, 2. akt. u. erw. Auflage, mitp-Verlag, ISBN 3-8266-1438-0 Silberschatz, A. / Korth, H. / Sudarshan, S. (2006) Database System Concepts, 5. Auflage, McGraw-Hill-Verlag, ISBN 007-124476-X Vossen, G. (2007): Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, 5. Auflage, Oldenbourg-Verlag, ISBN 3-486-27574-7 © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 3 1. Einführung 1.1. Allgemeine Einführung Wir bleiben bei traditionellen Datenbankanwendungen, d.h. OnLine Transaction Processing Systemen (OLTP) ‣ Verarbeitung von einfach strukturierten Massendaten (numerisch, textform) ‣ also keine : • noSQL Datenbanken • In-Memory Datenbanken • objektorientierten Datenbanken (im 6. Semester) • Web-Datenbanken (Content Management System) (z.B. XML-DBs im 6. Semester) • Multimedia-Datenbanken (Audio, Video, Bilder – DBS bspw. mit Ausschnitt-Abfragemöglichkeiten) • geographischen Informationssysteme (Landkarten, Wetterkarten, Satelittenbilder) • Data Warehouse - OLAP (sehr große Datenmengen, Unterstützung unternehmerischer Entscheidungsprozesse) • Echtzeit-Datenbanken (z.B. Computer Integrated Manufacturing, Telefonanlagen) © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 4 1.1. Allgemeine Einführung Bestandteile eines Datenbanksystems Datenbank (DB) = Sammlung zusammenhängender Daten • einfach strukturiert, logisch zusammenhängend • Ausschnitt der realen Welt („Miniwelt“) Datenbankmanagementsystem (DBMS) = Menge von (System-) Programmen, um Datenbanken zu verwalten • definieren, manipulieren, abfragen • Strukturen und Daten • Wartung und Administration Datenbanksystem (DBS) = Datenbank + DBMS • Benutzer: - interaktiver Anwender - (Anwendungs-) Programme © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 5 1.1. Allgemeine Einführung Quelle: Elmasri, R. / Navathe, S.B. (2000) © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 6 1.1. Allgemeine Einführung - Beispiel DB2 DB2 Server Instanz („DB2“, „db2inst1“) An der Spitze der DB2 Hierarchie steht die Instanz (DBMS) bzw. das DB2 Subsystem (DB2 z/OS) Eine Instanz ist eine unabhängige Umgebung in der Datenbanken erstellt, und Anwendungen ausgeführt werden können (eigene Konfiguration). Dabei stellt eine Instanz diverse Systemresourcen wie Speicher, CPU Management Policies und Netzwerk-Ports zur Verfügung. db2icrt <instance_name> db2idrop <instance_name> db2ilist DBM CFG Instanz („myinst“) db2start Port .. db2stop get dbm cfg update dbm cfg <params> Port © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert reset dbm cfg Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 7 1.1. Allgemeine Einführung - Beispiel DB2 Innerhalb einer Instanz können mehrere unabhängige Datenbanken angelegt werden. DB2 Server Instanz („DB2“, „db2inst1“) Datenbank 1 Dabei hat jede Datenbank: § System Katalog Tabellen (Metadaten) § Eine eigene Datenbank-Konfiguration (DB CFG) § Ein Transaktions-Log § Diagnoseinformationen DB CFG .. Datenbank n DBM CFG LOG Files create database <parameter> drop database <parameter> connect to database <parameter> Port .. Instanz („myinst“) get db cfg update db cfg <parameter> db2sampl Port © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 8 1.1. Allgemeine Einführung - Beispiel DB2 - SAMPLE DB © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 9 1.1. Allgemeine Einführung - Beispiel DB2 - Katalog ‣ Jede Datenbank hat seinen eigenen System-Katalog mit Tabellen,Views, Funktionen etc. ‣ ‣ ‣ Im Katalog werden Metadaten über alle Datenbankobjekte gespeichert Der Katalog kann wie jede andere Tabelle auch abgefragt werden DB2 Katalogobjekte befinden sich in dem Datenbankschemata SYS*, wie z.B.: • SYSIBM – Basistabellen (Metadaten) • SYSCAT – Views basierend auf SYSIBM Tabellen, optimiert für „ease of use“ • SYSSTAT – Datenbank-Statistiken • SYSIBMADM – Views über Administrative Informationen, wie z.B. die CONTAINER • UTILIZATION Beispiele: - SYSCAT.TABLES - SYSCAT.INDEXES - SYSCAT.COLUMNS - SYSCAT.FUNCTIONS - SYSCAT.PROCEDURES © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 10 1.1. Allgemeine Einführung Vorteil Datenbanksystem im Vergleich zur Dateiverwaltung: ‣ fertiges Datenverwaltungssystem mit • interaktiver Schnittstelle und • API (Programmierschnittstelle) => Datenverwaltung unabhängig von Programmlogik ‣ zentrale oder verteilte Datenbank (Skalierbarkeit) möglich (mit unterschiedlichen Benutzersichten), hohe Verfügbarkeit ‣ einfache, standardisierte Datenbanksprache (SQL, XQuery / SQL/PL, PL/SQL, T-SQL) ‣ optimierte, strukturierte Datenablage (Objekte mit Beziehungen - relationales Datenmodell), Vermeidung von Redundanz ‣ Datensicherheit (Zugriffsschutz, Sicherheits- und Autorisierungssubsystem, Backup/ Restore) ‣ schnelle Zugriffe • mit geeigneten Datenblöcken • mit Indexen ‣ Überwachung von Integritätsbedingungen (Wertebereiche, RI, unique, not null, …), Sicherstellung der Konsistenz ‣ Transaktionskontrolle mit • Koordination konkurrierender Benutzer (Concurrency Control/ Nebenläufigkeitskontrolle) • Wiederherstellung eines korrekten Datenbank-Zustands im Fehlerfall (Recovery) © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 11 1.1. Allgemeine Einführung Berufsbilder im Umgang mit Datenbanksystemen: ‣ Endanwender • fragen DBs ab (Reports) oder manipulieren DBs • Gelegenheitsanwender (bspw. Manager) bis hin zum DB-Spezialisten ‣ Software-Ingenieur • (DB-) Anwendungsentwickler: Analytiker + Programmierer ‣ DB-Designer (Datenmodellierer) • zentrale Stelle für Analyse und Design der Datenmodelle • unternehmensweites Datenmodell + unternehmensweites Relationenmodell ‣ DB-Administrator • überwacht DB-Betrieb (DB + DBMS + (DB-) Anwendungen) • mit geeigneten Tools: Performance, Reorg (Umstellung/Optimierung Primär-/Sekundärorganisation), Backup, Ressourcenzuteilung, Zugriffsrechte ‣ DBS-Hersteller (Vendor) • eigentliches DBS • ergänzende Tools (bspw. Performance-Monitor, CASE-Tool (bspw. für Datenmodellierung) ) © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 12 1.2. DBS-Architektur 3-Ebenen-Architektur (nach ANSI/SPARC, 1978) für den Aufbau einer Datenarchitektur mit einem DBS => Trennung Benutzer von physischer Ebene Kunden-Bestellungen …….. Artikel-Bestellungen Artikel Art-Nr Art-Name …..... ……… Art-Nr Kunden K-Nr K-Name …….. …… ………… (Datensicht für Programm 1) (Datensicht für Programm 2) Externe Schemata Kunde K-Nr K-Name bestellt 0..* 0..* Artikel Art-Nr Art-Name Konzeptionelles Schema (Entity-Relationship-Datenmodell) INTERNE EBENE KONZEPTIONELLE EBENE EXTERNE EBENE K-Nr Kunde K-Nr K-Name Bestell K-Nr Art-Nr Artikel Art-Nr Art-Name Logisches Schema (Relationales Datenmodell) Satzspeicherungsart, Speichergröße, Blockgröße, Verteilung, Indexe, Transaktionsverhalten, ….. Internes Schema © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 13 1.2. DBS-Architektur Übersicht über die Komponenten eines DBMS Figure 2.3 illustrates, in a simplified form, the typical DBMS components. The database and the DBMS catalog are usually stored on disk. Access to the disk is controlled primarily by the operating system (OS), which schedules disk input/ output (I/O). A higher-level stored data manager module of the DBMS controls access to DBMS information that is stored on disk, whether it is part of the database or the catalog. The dotted lines and circles marked A, B, C, D, and E in Figure 2.3 illustrate accesses that are under the control of this stored data manager. The stored data manager may use basic OS services for carrying out low level data transfer between the disk and computer main storage, but it controls other aspects of data transfer, such as handling buffers in main memory. Once the data is in main memory buffers, it can be processed by other DBMS modules, as well as by application programs. The DDL compiler processes schema definitions, specified in the DDL, and stores descriptions of the schemas (meta-data) in the DBMS catalog. The catalog includes information such as the names of files, data items, storage details of each file, mapping information among schemas, and constraints, in addition to many other types of information that are needed by the DBMS modules. DBMS software modules then look up the catalog information as needed. The run-time database processor handles database accesses at run time; it receives retrieval or update operations and carries them out on the database. Access to disk goes through the stored data manager. © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 14 1.2. DBS-Architektur The query compiler handles high-level queries that are entered interactively. lt parses, analyzes, and compiles or interprets a query by creating database access code, and then generates calls to the run-time processor for executing the code. The precompiler extracts DML commands from an application program written in a host programming language. These commands are sent to the DML-compiler for compilation into object code for database access. The rest of the program is sent to the host language compiler. The object codes for the DML commands and the rest of the program are linked, forming a canned transaction whose executable code includes calls to the run-time database processor. The concurrency control / recovery system is based on the concept of transaction processing. It ensures the correctness of database operations when multiple users are working on the database at the same time. It also recovers the database from a system failure. Figure 2.3 is not meant to describe a specific DBMS; rather it illustrates typical DBMS modules. The DBMS interacts with the operating system when disk accesses - to the database or to the catalog are needed. lf the computer system is shared by many users, the OS will schedule DBMS disk access requests and DBMS processing along with other processes. The DBMS also interfaces with compilers for general-purpose host programming languages. User-friendly interfaces to the DBMS can be provided to help any of the user types shown in Figure 2.3 to specify their requests. © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 15 1.2. DBS-Architektur Quelle: Elmasri, R. / Navathe, S.B. (2000) © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 16 1.2. DBS-Architektur Übersicht über die Komponenten eines DBMS Erläutern Sie anhand der Abbildung 2.3 und der zugehörigen Beschreibung in Stichworten die folgenden DBMS-Komponenten: ‣ Stored Data Manager (SDM) • regelt Datentransfer zwischen Platte und Hauptspeicher • mit Hilfe von Betriebssystem-Routinen ‣ DDL-Compiler • übersetzt Schema-Definitionen • speichert diese in den Katalog • arbeitet mit Hilfe des SDM © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 17 1.2. DBS-Architektur ‣ Run-Time Database Processor (RTDP) • führt den Datenbankzugriff zur Laufzeit aus • mit Hilfe des SDM ‣ Query Compiler • übersetzt interaktive Datenbankanfragen und lässt diese ausführen • aktiviert RTDP ‣ Concurrency control / Recovery System • regelt den konkurrierenden Zugriff mehrerer Benutzer • stellt den konsistenten Zustand der Datenbank nach einem Datenbanksystemfehler wieder her © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 18 1.2 Am Beispiel DB2 - Architektur Concurrency Control DDL/ Query Compiler Recovery system RTDP Stored Data Manager © DHBW Stuttgart, Prof. Dr. Nikolai Preiß, Holger Seubert Vorlesung Datenbanktechnik (Informationstechnologie) V2.0 19 unsortiert Primärorganisation statisch dynamisch sortiert Hash Primärindex Clusterindex Sekundärindex flach Sekundärorganisation (Indexe) Themenübersicht Vorlesung Datenbanktechnik B-Baum mehrstufig B+-Baum linear Selektion DBT Anfrageauswertung Verbund binär Hash Index Nested loop join Single loop join Anfragebaum Sort merge join Recovery (Reihenfolge Commits) Transaktionskonzept Mehrbenutzerkontrolle (2-Phasen-Sperr-Protokoll + wait-die) Selektion (Selektions-“Verrechnung“) Anfrageauswertung Verbund (Semi-Verbund) 2-Phasen-Commit-Protokoll Verteilte Datenbanken Recovery Transaktionskonzept Reihenfolge Commits 20 Mehrbenutzerkontrolle (2-Phasen-Sperr-Protokoll + wait-die)