Vorlesung Datenbanktechnik Studienfach Informationstechnologie Prof. Dr. Nikolai Preiß Duale Hochschule Baden-Württemberg Stuttgart & Dipl.-Ing. (BA) Holger Seubert hseubert@me.com 1
Inhalt 1. Einführung 2. Physische Datenspeicherung Unsortierte und sortierte Datei Hash-Datenbank 3. Indexierung Flache Indexe Mehrstufige Indexe (B- und B + -Bäume) 4. Anfrageoptimierung Anfragebaum Auswertung 5. Transaktionskonzept Recovery Mehrbenutzerbetrieb 6. Verteilte Datenbanken Verteilungskonzepte Anfrageauswertung Transaktionskonzept 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 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) 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 5
1.1. Allgemeine Einführung Quelle: Elmasri, R. / Navathe, S.B. (2000) 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 ) Port. Port db2start db2stop get dbm cfg update dbm cfg <params> reset dbm cfg 7
1.1. Allgemeine Einführung - Beispiel DB2 DB2 Server Instanz ( DB2, db2inst1 ) Datenbank 1 Innerhalb einer Instanz können mehrere unabhängige Datenbanken angelegt werden. Dabei hat jede Datenbank: System Katalog Tabellen (Metadaten) Eine eigene Datenbank-Konfiguration (DB CFG) Ein Transaktions-Log Diagnoseinformationen. DB CFG LOG Files create database <parameter> drop database <parameter> Datenbank n connect to database <parameter> DBM CFG Instanz ( myinst ) Port. Port get db cfg update db cfg <parameter> db2sampl 8
1.1. Allgemeine Einführung - Beispiel DB2 - SAMPLE DB 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 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) 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) ) 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 EXTERNE EBENE K-Nr Artikel Art-Nr Art-Name..... Art-Nr Kunden K-Nr K-Name.. (Datensicht für Programm 1) (Datensicht für Programm 2) Externe Schemata KONZEPTIONELLE EBENE Kunde K-Nr K-Name bestellt 0..* 0..* Artikel Art-Nr Art-Name Konzeptionelles Schema (Entity-Relationship-Datenmodell) Kunde K-Nr K-Name Bestell K-Nr Art-Nr Logisches Schema (Relationales Datenmodell) Artikel Art-Nr Art-Name INTERNE EBENE Satzspeicherungsart, Speichergröße, Blockgröße, Verteilung, Indexe, Transaktionsverhalten,.. Internes Schema 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. 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. 15
1.2. DBS-Architektur Quelle: Elmasri, R. / Navathe, S.B. (2000) 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 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 18
1.2 Am Beispiel DB2 - Architektur Concurrency Control DDL/ Query Compiler RTDP Recovery system Stored Data Manager 19
DBT Primärorganisation Sekundärorganisation (Indexe) Anfrageauswertung unsortiert sortiert Hash Selektion flach statisch dynamisch Primärindex Clusterindex Sekundärindex mehrstufig B-Baum B + -Baum linear binär Hash Index Themenübersicht Vorlesung Datenbanktechnik Verbund Anfragebaum Nested loop join Single loop join Sort merge join Recovery (Reihenfolge Commits) Transaktionskonzept Mehrbenutzerkontrolle (2-Phasen-Sperr-Protokoll + wait-die) Verteilte Datenbanken Anfrageauswertung Transaktionskonzept Selektion (Selektions- Verrechnung ) Verbund (Semi-Verbund) 2-Phasen-Commit-Protokoll Recovery Reihenfolge Commits 20 Mehrbenutzerkontrolle (2-Phasen-Sperr-Protokoll + wait-die)