Datenbanksysteme 1 Organisatorisches und Einführung 14.4.2008 Felix Naumann Datenbanken 2 Anwendung Anwendung Datenbankmanagementsystem Datenbank Felix Naumann | VL Datenbanksysteme II | SS 2008 Zoom heraus: MehrSchichtenarchitekturen 3 1 Schicht: PC 2 Schichten: Client 2 Schichten: Datei/DatenbankS erver DBS Business Logik 3 Schichten: Application/Web Server 3 Schichten: Backend/Datenb kS bank Server FS Auftrags AuftragsDBMS Felix Naumann | VL Datenbanksysteme II | SS 2008 Produkt nach h Katalog [Tomczyk03] Zoom herein: ANSI/SPARC Architektur eines DBMS 4 Felix Naumann | VL Datenbanksysteme II | SS 2008 Zoom in die interne Ebene: Die 5Schichten Architektur 5 Mengenorientierter Zugriff Datenmodellebene Satzorientierter Zugriff Logischer g Zugriff g Interne Satzschnittstelle Speicherstrukturen Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Geräteschnittstelle Felix Naumann | VL Datenbanksysteme II | SS 2008 Anfrageübersetzung, Zugriffspfadwahl, Zugriffskontrolle, Integritätskontrolle Sortierung, Transaktionsverwaltung, C Cursorverwaltung, lt Data D t Di Dictionary ti Physical Record Manager, Index Manager, g , Sperrverwaltung, p g, Log g/ Recovery Seitenverwaltung, Puffermanagement Caching Puffermanagement, Externspeicherverwaltung Überblick 6 ■ Vorstellung der Arbeitsgruppe ■ Organisatorisches ■ Implementierung I l ti von D Datenbanken t b k ■ Ausblick auf das Semester Felix Naumann | VL Datenbanksysteme II | SS 2008 Arbeitsgruppe Informationssysteme 7 project fusem project ViQTOR Prof. Felix Naumann Jens Bleiholder Patricia Hobro Data Fusion DQ Assessment Paul Führing Information Integration Information Quality Peer Data Management Systems Matching Armin Roth Service-Oriented Se ce O e ed Sys Systems e s project System P Karsten Draba project HumMer Data Cleaning Duplicate Detection Data Integration for Life Science Data Sources Melanie Weis & Sascha Szott project XClean project Aladin Ontologies Personal Information Management Alexander Albrecht Mohammed AbuJarour Felix Naumann | März 2008 Frank Kaufer Jana Bauckmann Data Profiling for Schema Management Lehrveranstaltungen in diesem Semester 8 Vorlesungen ■ DBS II ■ Informationsintegration I f ti i t ti Seminare ■ Bachelor: Beauty is our Business ■ Bachelor: www.ligageschichte.de ■ Master: Duplikaterkennung ■ Forschungsseminar Felix Naumann | VL Datenbanksysteme II | SS 2008 Vorstellung – Hörer 9 ■ Welches Semester? □ 2tes, 4tes, 6tes ■ HPI oder d IfI? ■ Erasmus o.ä.? ■ DBS I bei mir? Felix Naumann | VL Datenbanksysteme II | SS 2008 Überblick 10 ■ Vorstellung der Arbeitsgruppe ■ Organisatorisches ■ Implementierung I l ti von D Datenbanken t b k ■ Ausblick auf das Semester Felix Naumann | VL Datenbanksysteme II | SS 2008 Termine 11 ■ Vorlesung □ Montags 9:15 - 10:45 ◊ in HS 3 □ Donnerstags 9:15 - 10:45 ◊ in HS 3 ■ Erste Vorlesung □ 14.4.2008 ■ Letzte Vorlesung □ 17.7.2008 17 7 2008 ■ Feiertage □ 1.5. Maifeiertag (Do) □ 12.5. Pfingstmontag ■ Sondertermine □ 17.4. (Do): IBM Tag □ 21.4. und 24.4.: Sascha ■ Übungen □ Ungefähr 1 SWS □ Verteilt auf Doppelstunden im Semester □ Bitte immer www beachten □ Zwei Übungsgruppen ◊ Montags 9:15 in HS 3 ◊ Di Dienstags t 17:00 17 00 in i HS 1 ■ Klausur Felix Naumann | VL Datenbanksysteme II | SS 2008 □ Eine Woche nach Semester □ 1.5 vs. 2 vs. 4 vs. 8 Stunden Feedback 12 ■ Folien ■ Fragen bitte jederzeit! □ Vor der VL im WWW ◊ ASAP □ Datiert bei Updates ■ Anregungen A zur Verbesserung: V b □ Gebrauch der Folien □ Infos im WWW □ … Felix Naumann | VL Datenbanksysteme II | SS 2008 □ In der Vorlesung g □ Sprechstunde ◊ Dienstags 15:00 – 16:00 ◊ Raum R A A-1.13 1 13 ◊ Am liebsten mit Anmeldung □ Email: [email protected] Literatur 13 Database Systems - The Complete Book ■ Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Pearson Education International, 2002. Ebenfalls empfehlenswert ■ Datenbanksysteme Alfons Kemper, André Eickler ISBN: 3486273922 ■ Datenbanken: Implementierungstechniken Gunter Saake, Andreas Heuer, KaiUwe Sattler Und viele andere mehr… Felix Naumann | VL Datenbanksysteme II | SS 2008 Übungen und Leistungserfassung 14 ■ Übungen – Organisatorisches □ Mehr von Sascha Szott bei erster Übung □ Zweiergruppen □ Vermutlich nur 5 Übungsblätter □ Mind. 50% der Punkte auf jedem Blatt ◊ Kein Freischuss □ Tutor ◊ Florian Reinhart ■ Übungen – Inhaltliches □ „Theoretische“ Übungen ◊ Auf A f Papier P i □ Praktische Übungen p ◊ DB2 im Studentenpool ◊ Neuer DB2 Server! Felix Naumann | VL Datenbanksysteme II | SS 2008 Überblick 15 ■ Vorstellung der Arbeitsgruppe ■ Organisatorisches ■ Implementierung I l ti von D Datenbanken t b k ■ Ausblick auf das Semester Felix Naumann | VL Datenbanksysteme II | SS 2008 Das Megatron 2002 DBMS 16 ■ Naive Sicht □ DBMS sollte recht einfach sein ■ Megatron M t 2002 □ Unter UNIX verfügbar □ Relationales Datenmodell □ SQL Anfragen Felix Naumann | VL Datenbanksysteme II | SS 2008 Megatron - Implementierungsdetails 17 ■ Zuerst: NDA unterzeichnen! ■ Relationen R l ti werden d iin ASCII D Dateien t i gespeichert. i h t □ Relation Studenten(Name, Matrikel, Studiengang) □ Wird zu Datei /usr/db/Studenten ■ Eine Zeile pro Tupel ■ Felder werden mit „#“ separiert Smith # 123 # CS Jones # 522 # EE ... Felix Naumann | VL Datenbanksysteme II | SS 2008 Megatron - Implementierungsdetails 18 ■ Schema wird in gesonderter ASCII Datei gespeichert □ /usr/db/schema ■ Eine Ei Z Zeile il pro R Relation l ti ■ Zeile beginnt mit Relationenname ■ Gefolgt von Attributname/Datentyp Paaren □ Getrennt durch „#“ R1 # A # INT # B # STR … R2 # C # STR # A # INT … ... Felix Naumann | VL Datenbanksysteme II | SS 2008 Eine Session mit Megatron 19 ■ Maschine: dbhost ■ Megatron prompt: & ■ dbhost> MEGATRON3000 Welcome to MEGATRON 3000! ■ & ... ... ■ & quit ■ dbhost> Felix Naumann | VL Datenbanksysteme II | SS 2008 Eine Session mit Megatron 20 ■ SQL Anfragen werden mit # beendet ■ & SELECT * FROM Studenten # Name Matrikel Fach__ Smith 123 Informatik Jones 522 Mathematik ■ Speicherung von Anfrageergebnissen in einer Datei ■ & SELECT * FROM Studenten WHERE Matrikel > 500 | HoheMtr # ■ Erzeugt neue Datei /usr/db/HoheMtr mit einer Zeile Felix Naumann | VL Datenbanksysteme II | SS 2008 Anfrageausführung in Megatron 21 ■ & SELECT * FROM R WHERE <Bedingung> 1. Schema-Datei lesen um Attribute und Datentypen von R zu bestimmen 2. Prüfe, ob Bedingung semantisch korrekt ist. g jjedes Attribut als Zeilenkopf p an 3. Zeige 4. Male eine Linie 5. Lese die Datei namens R. Für jede Zeile 1. Prüfe Bedingung 2 Zeige Zeile als Tupel an 2. an, falls Bedingung erfüllt ist ist. Felix Naumann | VL Datenbanksysteme II | SS 2008 Anfrageausführung in Megatron 22 ■ & SELECT * FROM R WHERE <Bedingung> | T # 1. Schema-Datei lesen um Attribute und Datentypen von R zu bestimmen 2. Prüfe, ob Bedingung semantisch korrekt ist. 3. Lesen der Datei namens R. Für jjede Zeile 1. Prüfe Bedingung 2. Schreibe Zeile in Datei /usr/db/T, falls Bedingung erfüllt ist. ist 4. Füge in Datei /usr/db/schema eine Zeile hinzu für Relation T Felix Naumann | VL Datenbanksysteme II | SS 2008 Anfrageausführung in Megatron 23 ■ & SELECT Büro FROM Studenten, Fachbereiche WHERE Studenten.Name = „Smith“ AND Studenten.Fach = Fachbereich.Name # 1. Schema-Datei lesen um Attribute und Datentypen von Studenten und Fachbereiche zu bestimmen. 2. Prüfe, ob Bedingungen semantisch korrekt sind. 3. Lesen von Datei /usr/db/Studenten. Für jede Zeile: 1 L 1. Lesen von Datei D t i /usr/db/Fachbereiche. / /db/F hb i h Für Fü jede j d Zeile: Z il 1. Erzeuge Join-Tupel 2. Prüfe Bedingungen 3. Zeige Tupel an, falls Bedingung erfüllt Felix Naumann | VL Datenbanksysteme II | SS 2008 Probleme mit Megatron 2002 24 Felix Naumann | VL Datenbanksysteme II | SS 2008 Probleme mit Megatron 2002 25 ■ Tupel-Layout auf der Festplatte □ Falls sich ein Wert ändert muss gesamte Datei neu geschrieben werden. werden ◊ Alle Zeichen bewegen sich entsprechend in der Datei. □ ASCII Speicherung ist teuer □ Löschung ist ebenfalls teuer ■ Teure Suche □ Es kann nicht schnell, z.B. basierend auf einem Schlüssel, ein bestimmtes Tupel gefunden werden □ Es wird immer gesamte Relation gelesen gelesen, selbst bei strengen Nebenbedingungen Felix Naumann | VL Datenbanksysteme II | SS 2008 Probleme mit Megatron 2002 26 ■ Anfrageausfühung ist brute force □ Joinoperationen können wesentlich schneller implementiert werden. □ Selektionen sollten früher ausgeführt werden ■ Kein Puffermanagement □ Hauptspeicher wird nicht genutzt □ Sämtliche Daten werden stets von Festplatte gelesen ■ Keine Nebenläufigkeitskontrolle □ Mehrere Nutzer könnten gleichzeitig Datei ändern ■ Keine Zuverlässigkeit □ Daten können bei Systemabsturz verloren gehen □ Operationen könnten nur teilweise ausgeführt werden Felix Naumann | VL Datenbanksysteme II | SS 2008 Probleme mit Megatron 2002 27 ■ Keine Sicherheit □ Dateisystem ist unsicher □ Granularität G l ität iistt grob b ■ Wenig Metadatenfähigkeiten □ Statistiken, Statistiken Nebenbedingungen ■ Kein API □ Wie können anderen Anwendungen auf die Daten zugreifen? ■ Keine Interaktion mit anderen DBMS ■ Keine GUI Felix Naumann | VL Datenbanksysteme II | SS 2008 Überblick 28 ■ Vorstellung der Arbeitsgruppe ■ Organisatorisches ■ Implementierung I l ti von D Datenbanken t b k ■ Ausblick auf das Semester Felix Naumann | VL Datenbanksysteme II | SS 2008 Kurzüberblick 29 ■ Physische Speicherstrukturen (2) ■ Physische Repräsentation von Daten (1) ■ Indexstrukturen (5) ■ Anfrageausführung (2) ■ Optimierung (4) ■ Benchmarking (1) ■ Recovery (2) ■ Transaktionsmanagement (3) Effi i t U it großen ß D t Effizienter Umgang mit Datenmengen Teil 1: Umgang mit großen Datenmengen Teil 2: Effiziente Manipulation der Daten Felix Naumann | VL Datenbanksysteme II | SS 2008 Physische Speicherstrukturen 30 ■ Speicherhierarchie □ Cache, RAM, Sekundärspeicher, Tertiärspeicher ■ Festplatten □ Mechanik, Controller, Charakteristiken, Read/Write ■ Algorithmen für Sekundärspeicher □ Bsp: Sortierung mit „Two-Phase, Multiway Merge-Sort“ ■ Zugriffsbeschleunigung □ Clustering, Clustering Multiple Disks Disks, Spiegelung, Spiegelung Prefetching ■ Diskfehler □ Checksums,, Stable Storage g ■ Disk Recovery □ RAID: Spiegelung, Parity Blocks, … Felix Naumann | VL Datenbanksysteme II | SS 2008 Physische Repräsentation von Daten 31 ■ Datenelemente und Felder □ Relationale Datenbankelemente, Datentypen, Datensätze ■ Adressierung Ad i □ Client/Server, Physische vs. Logische Adresse ■ Datentypen variabler Länge □ Variable Felder, Variable Datensätze, Nullwerte, BLOBs ■ Schreiboperationen □ Insert, Update, Delete Felix Naumann | VL Datenbanksysteme II | SS 2008 Indexstrukturen 32 ■ Indizes auf sequentiellen Dateien □ Sortiert, dicht-besetzter und dünn-besetzter Index, Mehrstufiger Index, Index Updates ■ Sekundärindizes g , Indirektion,, Invertierte □ Nicht sortiert,, Aufbau,, Anwendungen, Indizes (IR) ■ B-Bäume □ Aufbau, Anwendungen, Bereichsanfragen, Insert, Delete ■ Hashverfahren (für Sekundärspeicher) □ Insert, Insert Delete, Delete erweiterbares Hashen, Hashen Lineares hashen ■ Eventuell: Multidimensionale Indizes □ GIS, DWH ■ Eventuell: Bitmap Indizes Felix Naumann | VL Datenbanksysteme II | SS 2008 Anfrageausführung 33 ■ Physische Operatoren □ Scan, Sortierung, I/O Kosten, Iteratoren ■ One-Pass Operationen □ Unär: Selektion, Projektion, Duplikateliminierung, Gruppierung □ Binär: Mengenoperationen (∪∩—×), Join □ Nested-Loop p Join ■ Two-Pass Operationen (mittels Sortierung) □ Duplikateliminierung, Gruppierung, Mengenoperationen (∪∩—×), MergeSort Join ■ Two-Pass Operationen (mittels Hashing) □ …, Hash-Join, … ■ Index Index-basierte basierte Algorithmen □ Clustering Indizes, Selektion, Joins ■ Puffermanagement □ Architektur, Architektur Strategien (LRU, (LRU FIFO, FIFO …)) ■ Parallele Algorithmen Felix Naumann | VL Datenbanksysteme II | SS 2008 Optimierung 34 ■ Teils schon in DBS I: □ Parsing, Algebraische Transformationsregeln ■ Kostenmodell K t d ll □ Projektion, Selektion, Verteilungen, Join ■ Kostenbasierte Optimierung □ Histogramme, Statistiken, Heuristiken, Enumerierung aller Pläne ■ Joinreihenfolge □ Links vs. rechts, Dynamische Programmierung, greedy Algorithmus ■ Physische Anfragepläne □ Selektionsmethode, Join Join-Methode, Methode, Pipelining Felix Naumann | VL Datenbanksysteme II | SS 2008 Benchmarking 35 ■ Leistungsbewertung □ Komponenten eines Benchmarks, Ziele ■ TPC Benchmarks B h k □ TPC A, B □ TPC C: OLTP □ TPC D/H: Decision Support DWH □ TPC W: e-Commerce Felix Naumann | VL Datenbanksysteme II | SS 2008 Recovery 36 ■ Fehlerarten □ Medienfehler, Systemfehler, Transaktionen en detail ■ Undo U d Logging L i □ Log-Datensätze, Log-Regeln, Wiederherstellung mit Undo, Checkpoints p ■ Redo Logging □ Log-Regeln, Wiederherstellung mit Redo, Checkpoints ■ Undo/Redo Logging □ Best of both worlds, Regeln, Wiederherstellung, Checkpoints ■ Archivierung h □ Archive, Nebenläufige Archivierung, Wiederherstellung mit Archiven und Logs Felix Naumann | VL Datenbanksysteme II | SS 2008 Transaktionsmanagement 37 ■ Fortsetzung aus DBS I: □ Transaktionen, Schedules, 2PL, Sperren ■ Mehrere Sperr Sperr-Modi Modi □ Shared und exclusive Sperren, Aufwertung von Sperren, UpdateSperren, Inkrement-Sperren ■ Scheduler □ Architektur, Sperrtabelle ■ Hierarchisches Sperren p □ Sperrgranulate (Tabellen, Blöcke, Tupel), warnende Sperren ■ Baumprotokolle □ Motivation (z.B. B-Bäume), Regeln, Beweis ■ Nichtsperrende Verfahren □ Zeitmarken (Timestamps), Validierung, Optimistische Verfahren Felix Naumann | VL Datenbanksysteme II | SS 2008 Systemarchitektur nach Garcia-Molina 38 Strategy Selector User Transaction Concurrency Control Lock Table Query Parser User Transaction Manager Buffer Manager File Manager Statistical Data Recovery Manager M M Buffer M.M. Indexes User Data Felix Naumann | VL Datenbanksysteme II | SS 2008 y Data System Log Systemarchitektur nach Leser 39 „Naive“ N i “ Benutzer Fortgeschrittene F t h itt Benutzer Interaktive Anfrage Anwendung AnwendungsA d Programmierer Verwaltungswerkzeug Präcompiler DML Compiler DML-Compiler DDL Compiler DDL-Compiler Anfragebearbeitung Mehrbenutzersynchr. Fehlerbehandlung DatenbankD t b k administratoren DBMS Datenbankmanager Schemaverwaltung Dateiverwaltung Logdateien Indexe Datenbasis Felix Naumann | VL Datenbanksysteme II | SS 2008 Datenwörterbuch Feedback 40 Fragen bitte jederzeit! ■ In der VL ■ Sprechstunde: S h t d Dienstags Di t 15-16 15 16 Uhr Uh ■ Email: [email protected] ■ Telefon: (0331) 5509 280 Anregungen zur Verbesserung: ■ Z.B. zu □ Gebrauch der Folien □ Infos im WWW Felix Naumann | VL Datenbanksysteme II | SS 2008