Vorlesung Informationssysteme 5. Datenbank-Technologie Wintersemester 2016/2017; Mo, 8:00-9:45, CAP3, HS2; Di, 16:15-17:45, OS40, N.-Gansel-HS 30. 1. 2017 Prof. Dr. Bernhard Thalheim Information Systems Engineering Group Computer Science Institute Kiel University, Germany Wiederholung: DBMS Architecture Presentation system (playout (story)) 5. Technologie 30. 1. 2017 B. Thalheim Input-output processor Authority control Parser Pre-compiler ?6 Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept DBMS Communication subsystem Topic Application system (workflow (functionality)) Compiler - Update processor Query processor Optimizer Access plan generation Code generation Integrity control and enforcement Distribution management Recovery Synchronization Transaction manager of parallel management access Scheduler DBS = Storage management DBMS + { DB } Data manager 6? 6 ? Buffer manager 6 Supporting Data systems Log (graphical book - dictionary etc. ) ? Database 6? Operating system Wiederholung: 5-Schichten-Modell eines DBMS (1) (2) (3) (4) (5) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Ebene derBenutzersprache Benutzerschnittstelle Ebene der Anfrageverarbeitung Ebene der Zugriffstrukturen und Code-Erzeugung Ebene der Synchronisation paralleler Zugriffe Ebene der Speicherverwaltung Geräteschnittstelle Darauf aufbauend hat das System verschiedene Schnittstelle Mengen-Schnittstelle 1 ↔ select, insert, delete, modify 2 ↔ Tupel-Schnittstelle fetch, store, erase, update Record-Schnittstelle 3 ↔ retrieve, add, change, dispose, change Seiten-Schnittstelle 4 ↔ read, write 2 5 views, Relationen 3 Cursor, Tupel 4 (Index-)Records Seiten, Segmente Transaktionsverwaltung und Integritätskontrolle 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Transaktionen: einige Vorüberlegungen 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic - nicht nur einzelne Handlungen, sondern auch (formale) Handlungsfolgen - semantische Bedingungen (als statische Gesichtspunkte) auch als dynamische Gesichtspunkte: - Aufzählungen nur derart ändern, daß anschließend die semantischen Bedingungen wieder erfüllt sind - bei Änderungswünschen bezüglich mehrerer Objekte oder interrelationalen Bedingungen, neben der eigentlich gewünschten Änderung auch noch Folgeänderungen notwendig; möglicherweise werden die Bedingungen zwischenzeitlich verletzt - Änderungsfolgen als unteilbare Operationen, die entweder gar nicht oder vollständig ausgeführt werden - Daten für viele und verschiedenartige Benutzer verfügbar halten: diese arbeiten im Allgemeinen parallel und möglichst unabhängig voneinander Das Transaktionsparadigma Praktizierte Definition der Transaktion: Eine Transaktion ist eine Folge von DB-Operationen (DML-Befehlen), welche die Datenbank von einem logisch konsistenten Zustand in einen neuen logisch konsistenten Zustand überführt. Das DBS gewährleistet für Transaktionen die sogenannten A.C.I.D.Eigenschaften 5. Technologie 30. 1. 2017 B. Thalheim A.C.I.D.-Prinzip Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Atomicity: “Alles oder Nichts” (Fehlerisolierung) Consistency: eine erfolgreiche Transaktion erhält die DB-Konsistenz (Menge der definierten Integritätsbedingungen) Isolation: alle Aktionen innerhalb einer Transaktion müssen vor parallel ablaufenden Transaktionen verborgen werden (logischer Einbenutzerbetrieb) Durability: Überleben von Änderungen erfolgreich beendeter Transaktionen trotz beliebiger (erwarteter) Fehler garantieren (Persistenz). Das Transaktionsparadigma Das Transaktionsparadigma befreit den DB-Anwendungsprogrammierer von allen Aspekten des Fehlerfalls (failure transparency) und der Nebenläufigkeit (concurrency transparency). Es erlaubt also eine fehlerfreie Sicht auf die Datenbank im logischen Einbenutzerbetrieb. Programmierschnittstelle für Transaktionen - begin of transaction (BOT) - commit transaction (commit workı̈n SQL) - rollback transaction (rollback workı̈n SQL) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Mögliche Ausgänge einer Transaktion Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic ACID ACID vereinfacht DB-Anwendungsprogrammierung erheblich - Fehlertransparenz (failure transparency) - Transparenz der Nebenläufigkeit (concurrency transparency) - erlaubt also eine fehlerfreie Sicht auf die Datenbank im logischen Einbenutzerbetrieb 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Probleme der praktizierten Definition Annahme von der Existenz einer DB-Maschine Komplexe Modelle im Falle von komplexen Integritätsbedingungen und Triggern Geschachtelte Transaktionen Transaktionsbeispiel: Debit/Credit 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Transaktionsbeispiel: Debit/Credit 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Transaktionsverwaltung Mechanismen zur Einhaltung der ACID-Eigenschaften • Synchronisation (Concurrency Control) • Logging, Recovery, Commit-Behandlung • Integritätskontrolle 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Enge Abhängigkeiten untereinander sowie zu anderen Systemfunktionen (Pufferverwaltung, etc.) Das ACID-Paradigma eignet sich vor allem für relativ kurze Transaktionen, die in den meisten Anwendungen vorherrschen Transaktionsbeispiel: Debit/Credit 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic TA’s - parallel und voneinander unabhängig muß i.a. durch das Informationssystem selbst durchgesetzt werden 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic von den Benutzern wird gegebenenfalls verlangt, dass ihre Transaktionen einen vorgeschriebenen Aufbau (Protokolle) einhalten der Scheduler hat dann die Aufgabe, die Anweisungen von parallel auszuführenden Transaktionen in einer geeigneten Reihenfolge anzuordnen Zwei Randfälle 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Scheduler kann beliebig TA’s ineinander verschränkt mischen: - einfache Verwirklichung derart, dass die Anweisungen in der Reihenfolge angeordnet bleiben, wie sie angefordert werden - Scheduler im Wesentlichen nur Warteschlange für Anweisungen - einerseits hohe Parallelität - andererseits große Unsicherheit über die wechselseitige Beeinflussung der Transaktionen Scheduler ordnet TA’s als Ganzes seriell an: - einfache Verwirklichung derart, dass die Transaktionen in der Reihenfolge angeordnet werden, wie sie angefordert werden - Scheduler im Wesentlichen nur Warteschlange für Transaktionen - einerseits im Wesentlichen keine Parallelität - andererseits wechselseitige Beeinflussung der Transaktionen genau vorhersehbar Korrekte Reihenfolgen und Serialisierbarkeit um die Vorteile der beiden Randfälle möglichst gut gleichzeitig zu erreichen, sollen folgende Reihenfolgen als korrekt (geeignet) definiert werden: 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic K1. Sichere Vorhersehbarkeit: eine Reihenfolge, die durch beliebige serielle Anordnung der Transaktionen als Ganzes entsteht, sei korrekt K2. Erlaubte Parallelität: jede Reihenfolge, deren Auswirkung (unter den jeweils getroffenen Annahmen) ununterscheidbar von der Auswirkung einer nach K1 korrekten Reihenfolge ist, sei ebenfalls korrekt in Praxis und Theorie: verschiedene Annahmen und Auswirkungen führen zu verschiedenen Begriffen von Korrektheit bzw. Serialisierbarkeit Planung 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Menge von Operatoren (Aktionen): A Menge von Objekten: O Menge der Anweisungen: S := A × O Menge der Transaktionen: T := {t | t : {1, ..., n} → S, t ist injektiv} Plan (schedule) zu T: für eine Menge von Transaktionen T = {t1 , ..., tk } mit ti = (ti.1 , ..., ti.ni ) Plan ist Funktion P : {1, ..., n1 + ... + nk } −→ { i.j |1 ≤ i ≤ k, 1 ≤ j ≤ ni } mit - P ist bijektiv - für alle i, für alle j1 , j2 gilt : j1 < j2 ⇔ P−1 (i.j1 ) < P−1 (i.j2 ) Synchronisation DBS müssen Mehrbenutzerbetrieb unterstützen ohne Synchronisation kommt es zu sogenannten Mehrbenutzer-Anomalien 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic • Verlorengegangene Änderungen (lost updates) • Abhängigkeiten von nicht freigegeben Änderungen (dirty read, dirty overwrite)v • inkonsistente Analyse (non-repeatable read) • Phantom-Probleme Anomalien sind nur durch Änderungen verursacht Synchronisation erfolgt automatisch durch das DBS offene Fragen • Korrektheitskriterium ? • Realisierung ? • Leistungsfähigkeit ? Atomaritätsproblem: Beispiel 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Verlorengegange Änderung (Lost Update) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Schmutziges Lesen (Dirty Read) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Inkonsistente Analyse (Non-repeatable Read) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Phantom-Problem 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Synchronisation von Transaktionen: Modellannahmen Transaktion: Ein Programm T mit DB-Anweisungen, so daß: Wenn T allein auf einer 5. Technologie 30. 1. 2017 B. Thalheim konsistenten DB ausgeführt wird, dann terminiert T (irgendwann) und hinterläßt die DB in einem konsistenten Zustand. Während der Transaktionsverarbeitung werden keine Konsistenzgarantien eingehalten. Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Wenn Transaktionen seriell ausgeführt werden, dann bleibt die Konsistenz der DB erhalten. DB-Anweisungen lassen sich nachbilden durch READund WRITE-Operationen Transaktion: BOT, Folge von READ- und WRITE-Anweisungen auf Objekte, EOT Die Ablauffolge von Transaktionen mit ihren Operationen kann durch einen Schedule beschrieben werden: r1 (x), r2 (x), r3 (y), w1 (x), w3 (y), r1 (y), c1 , r3 (x), w2 (x), a2 , w3 (x), c3 , ... Beispiel eines seriellen Schedules: Content Information r1 (x), w1 (x), r1 (y), c1 , r3 (y)c3 , r2 (x), w2 (x), c2 , ... BOT ist implizit, EOT wird durch ci (Commit) oder ai (Abort / Rollback) dargestellt Concept Topic Transaktion als Schnittstelle 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Transaktion als Schnittstelle 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Verhalten von Transaktionen Syntax: Transaktion T über (S, Σ) als endliche Folge o1 ; o2 ; o3 ; ...; om von Basismodifikationsoperationen (insert, delete, update) und Retrievaloperationen map(filter(join(...), ψ), S) über (S, Σ). 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Semantik der Anwendung: Effekt der Anwendung einer TA T auf S C : transition constraint preserving transformation { T(S C ) falls T(S C ) |= Σ C T(S ) = SC falls T(S C ) ̸|= Σ Effekt definiert die Granularität der Transaktion TA’s sind i.a. invariant state transitions invariant bzgl. der Menge der statischen IC Potentiell parallele Ausführung von TA’s T1 , T2 konkurrieren falss read(T1 ) ∩ write(T2 ) ̸= ∅ oder read(T2 ) ∩ write(T1 ) ̸= ∅ or write(T2 ) ∩ write(T1 ) ̸= ∅ . 5. Technologie 30. 1. 2017 B. Thalheim read(Ti ) bzw. write(Ti ) : Lokalisierung der Objekte von Ti Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Parallele Ausführung von TA’s T1 ∥ T2 is korrekt falls entweder T1 , T2 nicht konkurrieren oder (T1 ∥T2 )(S C ) ∈≡ { T1 (T2 (S C )), T2 (T1 (S C ))} für jede SC Zustandsraum für Transaktionen Status einer TA Status(TA): undef (Inaktivität einer TA in der Warteschlange), 5. Technologie 30. 1. 2017 B. Thalheim active (TA wird z.Z. ausgeführt), commit (TA wurde erfolgreich ausgeführt), ready2commit (TA ist vorbereitet zum Commit), Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic failed (TA wurd nicht erfolgreich ausgeführt), done (TA wurde beendet) Content Content(TA): Folgen der Basisopertionen als Warteschlange Queue(transaction)von Operationen Persistenter DB-Raum StableDB zur Darstellung der DB Globaler Log-Raum: zur Aufzeichnung Log(transaction,action,location) Global- Speichermodelle zur DB-Modifikation Speichertypen primary, nonvolatile memory (secondary und tertiary). 5. Technologie 30. 1. 2017 B. Thalheim Anwendung der Modifikation je nach Speichertyp Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Modification in-place: direktes Durchschreiben der Resultate auf den Speicher (location) Veränderungen werden mitprotokolliert für Recovery UNDO: falls TA fail oder abort. Modification in-private: TA’s mit eigenem lokalem Raum TA commit: Daten oder lokale Daten werden in Sekundarspeicher geflutet Shadow modification: mit Schattenseiten zum vorherigem Zustand der TA-Objekte TA arbeitet auf Originalseiten Zustandsdiagramm von TA’s - Inactive Aborted 6 5. Technologie 30. 1. 2017 B. Thalheim Failed BOT j EOT Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic 6 Committed 6 Run ICtrue j Ready2Commit Erweiterung um 4 Zustände: Ready2Commit, ICtrue, Failed, Inactive Basiert auf 6 ASM Transitionsregeln: CreateOwnDB, PrepareMergeDB, MergeOwnDB, FreeOwnDB, ReadOwnDB, WriteOwnDB TA by modification-in-private BOT: Status(Self) = undef 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Status(Self) := active Queue(Self) := Content(Self) CreateOwnDB() RUN: Status(Self) = active IF Queue(Self) ̸= ∅ THEN CASE Top(Queue(Self)) OF read(loc): ReadOwnDB(loc) write(loc,val): WriteOwnDB(loc,val) compute(expr,loc): WriteOwnDB(loc,compute(expr,loc)) ENDCASE TA by modification-in-private READY2COMMIT: Status(Self) = ready2commit 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic IF OwnDB |= Σ THEN Status(Self) := ICtrue ELSE Status(Self) := ICfalse ENDIF FAILED: (Status(Self) = failed ∨ Status(Self) =ICfalse) Status(Self):= aborted ABORTED: Status(Self) = aborted IF CanReschedule(Self) THEN Status(Self) := undef FreeOwnDB() TA by modification-in-private ICTRUE: Status(Self) = ICtrue 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic PrepareMergeDB() Status(Self) := committed COMMITTED: Status(Self) = committed MergeOwnDB() FreeOwnDB() Status(Self) := done Program(Self) := undef TA by modification-in-private Satz 1. Wenn eine Anwendung der Transaktionen t1 , ..., tk in dieser Reihenfolge anwendbar ist, dann ist dies auch in der modification-in-private-Strategie für t1 , ..., tk anwendbar, atomar und konsistent . 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Satz 2. Die Dauerhaftigkeit ist garantiert für modification-inprivate. Satz 3. Die Transaktionsausführung bei der modification-inprivate-Strategie · mit einem pessimistischen Locking zu Beginn, · mit einem Abort, wenn die Locks nicht erworben werden können und · mit einer Auflösung am Ende Ξ̆ ist eine konservative Erweiterung der Relation −→ . Serialisierbarkeit Ziel der Synchronisation: logischer Einbenutzerbetrieb, d.h. Vermeidung aller Mehrbenutzeranomalien Gleichbedeutend mit dem formalen Korrektheitskriterium der Serialisierbarkeit: 5. Die parallele Ausführung einer Technologie Menge von n Transaktionen ist 30. 1. 2017 B. Thalheim serialisierbar, wenn es eine serielle Ausführung derselben Transaktionen gibt, die den gleichen DB-Zustand Transaktionen Synchronisation und die gleichen Ausgabewerte wie die ursprüngliche Ausführung erzielt. Recovery Algorithmik Hintergrund: Optimierung - serielle Ablaufpläne sind korrekt Realisierung - jeder Ablaufplan, der denselben Integrität Effekt wie ein serieller erzielt, Indexes ist akzeptierbar Denormalisation Metadata Content Information Concept Topic Nachweis der Serialisierbarkeit Führen von zeitlichen Abhängigkeiten zwischen Transaktionen in einem Abhängigkeitsgraphen (Konfliktgraphen) Abhängigkeit (Konflikt) besteht, wenn zwei Transaktionen auf dasselbe Objekt mit nicht reihenfolgeunabhängigen Operationen zugreifen 5. Technologie 30. 1. 2017 B. Thalheim Konfliktarten: Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic - Schreib-/Lese-Konflikt - Lese-/Schreib-Konflikt - Schreib-/Schreib-Konflikt Serialisierbarkeit liegt vor, wenn der Abhängigkeitsgraph keine Zyklen enthält y Abhängigkeitsgraph beschreibt partielle Ordnung zwischen TA’s, die sich zu einer vollständigen erweitern läßt (Serialisierungsreihenfolge) Anomalien im Schreib/Lese-Modell 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Konsistenzerhaltende Ablaufpläne 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Die Transaktionen T1 bis T3 müssen so synchronisiert werden, daß der resultierende DB-Zustand gleich dem ist, der bei der seriellen Ausführung in einer der folgenden Sequenzen zustande gekommen wäre. bei n Transaktionen bestehen n! mögliche serielle Schedules T1T2T3 T1T3T2 T2T1T3 T2T3T1 T3T1T2 T3T2T1 Sinnvolle Einschränkungen: - Reihenfolgeerhaltende Serialisierbarkeit: jede Transaktion sollte wenigstens alle Änderungen sehen, die bei ihrem Start (BOT) bereits beendet waren - Chronologieerhaltende Serialisierbarkeit: jede Transaktion sollte stets die aktuellste Objektversion sehen Zweiphasen-Sperrprotokolle (2 Phase Locking) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Einhaltung folgender Regeln gewährleistet Serialisierbarkeit: 1. vor jedem Objektzugriff muß Sperre mit ausreichendem Modus angefordert werden 2. gesetzte Sperren anderer Transaktionen sind zu beachten 3. eine Transaktion darf nicht mehrere Sperren für ein Objekt anfordern 4. Zweiphasigkeit: - Anfordern von Sperren erfolgt in einer Wachstumsphase - Freigabe der Sperren in Schrumpfungsphase - Sperrfreigabe kann erst beginnen, wenn alle Sperren gehalten werden 5. Spätestens bei EOT sind alle Sperren freizugeben Striktes Zwei-Phasen-Sperren 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic 2PL garantiert Serialisierbarkeit lediglich in einer fehlerfreien Umgebung Fehler während Schrumpfungsphase können zu “Dirty Read” etc. führen Lösungsalternativen - Lesen schmuziger Daten und Abhängigkeiten bei Commit überprüfen (Problem: kaskadierende Rollbacks) - Besser: strikte Zwei-Phasen-Sperrverfahren mit Sperrfreigabe nach Commit RX-Sperrverfahren Sperranforderung einer Transaktion: R (Read) oder X (eXclusive bzw. Write) Gewährter Sperrmodus des Objektes: NL, R, X Kompatibilitätsmatrix: 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic unverträgliche Sperranforderung (Sperrkonflikt) führt zur Blockierung Problem von Sperrkonversionen 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Sperrkonversionen führen oft zu Deadlocks Erweitertes Sperrverfahren - Ziel: Verhinderung von Konversions-Deadlocks - U-Sperre (Update) für Lesen mit Änderungsabsicht - bei Änderung Konversion U X, andernfalls U R (Downgrading) aktueller Modus angeforderter Modus R U X R + - - U + - - X - - - - u.a. in DB2 eingesetzt - das Verfahren ist unsymmetrisch - was würde eine Symmetrie bei U bewirken? Konsistenzstufen von Transaktionen Usprüngliche Definition von Gray et al. (1976) Konsistenzstufe 0: Die Transaktionen halten kurze Schreibsperren auf den Objekten, die sie ändern 5. Technologie 30. 1. 2017 B. Thalheim Konsistenzstufe 1: Transaktionen halten lange Schreibsperren auf den Objekten, die sie ändern Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Konsistenzstufe 2: Transaktionen halten lange Schreibsperren auf den Objekten, die sie ändern, sowie kurze Lesesperren auf Objekten, die sie lesen Konsistenzstufe 3: Transaktionen halten lange Schreibsperren auf den Objekten, die sie ändern, sowie lange Lesesperren auf Objekten, die sie lesen. Konsistenzebenen in SQL92 SQL92: vier Konsistenzebenen (Isolation Level) bzgl. Synchronisation - Konsistenzebenen sind durch die Anomalien bestimmt, die jeweils in Kauf genommen werden - Lost-Update muß generell vermieden werden - Default ist Serialisierbarkeit (serializable) 5. Technologie 30. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata SQL-Anweisung zum Setzen der Konsistenzebene: SET TRANSACTION <tx mode>, ISOLATION LEVEL <isolation level> - tx mode: READ WRITE (Default) bzw. READ ONLY Content Information Concept Topic SET TRANSACTION READ ONLY, ISOLATION LEVEL READ COMMITTED READ UNCOMMITTED für Änderungstransaktionen unzulässig Zusammenfassung Transaktionskonzept vereinfacht Datenbank-Programmierung und -Nutzung: Transparenz gegenüber Fehlern und Mehrbenutzerbetrieb Transaktionsverwaltung zur Sicherung der ACID-Eigenschaften 5. Technologie 30. 1. 2017 B. Thalheim - Synchronisation - Logging / Recovery - Integritätskontrolle Integritätskontrolle möglichst weitgehend im DBS Transaktionen Synchronisation Recovery Zwei-Phasen-Commit: erfolgreicher Transaktionsabschluss (Commit) Algorithmik mit Gültigstellung von Änderungen erst nach Sicherstellung Optimierung aller Integritätsbedingungen sowie der Wiederholbarkeit von Realisierung Änderungen Integrität Indexes Denormalisation ACID v.a. für kurze Transaktionen geeignet y Bedarf für erweiterte Transaktionskonzepte Metadata Content Information Concept Topic Anmerkung: Vielzahl von Ergänzungen Recovery-Unterstützung automatische Behandlung aller erwarteten Fehler durch das DBMS Voraussetzung: Sammeln redundanter Informationen während Normalbetrieb (Logging) Transaktionsparadigma verlangt: 5. Technologie 31. 1. 2017 B. Thalheim • Alles-oder-Nichts-Eigenschaft von Transaktionen • Dauerhaftigkeit erfolgreicher Änderungen Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Zielzustand nach Recovery: jüngster, transaktionskonsistenter Zustand vor Erkennen des Fehlers Fehlerarten: • Transaktionsfehler: vollständiges Zurücksetzen auf Transaktionsbeginn (Undo) • Systemfehler (Rechnerausfall, DBMS-Absturz) • REDO für erfolgreiche Transaktionen (Wiederholung verlorengegangener Änderungen) • UNDO aller durch Ausfall unterbrochenen Transaktionen (Entfernen derer Änderungen aus der permanenten DB) • Gerätefehler (Plattenausfall): • vollständiges Wiederholen (REDO) aller Änderungen auf einer Archivkopie • oder: Spiegelplatten bzw. RAID-Disk-Arrays Systemkomponenten für Recovery 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Pufferung von Log-Daten im Hauptspeicher (Log-Puffer) - Ausschreiben spätestens am Transaktionsende (“Commit”) Temporäre Log-Datei zur Behandlung von Transaktions- und Systemfehler Behandlung von Gerätefehlern: Archivkopie + Archiv-Log Überblick zur Algorithmik von Operationen 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Einführung zur Realisierung von Operationen Selektion Verbundalgorithmen - Nested-Loop-Join - Sort-Merge-Join - Hash-Join Sortierung Weitere Operationen Eigenschaften von Operationen Ableitung von Prinzipien der Optimierung Algorithmen zur Implementierung der Selektion Nutzung des Scan-Operators 5. Technologie 31. 1. 2017 B. Thalheim - Definition von Start- und Stop-Bedingung - Definition von einfachen Suchargumenten - Attributprojektion (ohne Duplikateliminierung) Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Algorithmen Relationen-Scan - immer möglich - Scan-Operator implementiert die Selektionsoperation Index-Scan - Auswahl des kostengünstigsten Index - Spezifikation des Suchbereichs (Start-, Stop-Bedingung) TID-Algorithmus - Auswertung aller “brauchbaren” Indexstrukturen - Auffinden von variabel langen TID-Listen - Boole’sche Verknüpfung der einzelnen Listen - Zugriff zu den Tupeln entsprechend der Zielliste - TID-Sortierung zur Minimierung von Plattenzugriffsarmbewegungen sinnvoll Boole’sche Verknüpfung von Bitindizes Auswertungsstrategien für Selektion 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Lineare Suche (brute force) Binäre Suche (erfordert Sortierung, nur möglich bei geclusterter Speicherung) Nutzung eines Primärindexes (falls vorhanden) Nutzung eines Sekundärindexes Konjunktive Suchprädikate Schnittmengenbildung für TID-Listen Bewertungsparameter: Selektivität eines Suchprädikates Verbund-Algorithmen Verbund - satztypübergreifende Operation: gewöhnlich sehr teuer - häufige Nutzung: wichtiger Optimierungskandidat - typische Anwendung: Gleichverbund - allgemeiner Θ-Verbund selten 5. Technologie 31. 1. 2017 B. Thalheim Implementierung der Verbundoperation kann gleichzeitig Selektionen auf den beteiligten Relationen R und S ausführen SELECT * FROM R,S WHERE R.VA 1Θ S.VA AND PR AND PS Transaktionen Synchronisation Recovery - VA: Verbundattribute - PR und PS : Prädikate definiert auf Selektionsattributen (SA) Algorithmik von R und S Optimierung Mögliche Zugriffspfade Realisierung Integrität - Scans über R und S (immer möglich) - Scans über I(R(VA)), I(S(VA)) (wenn vorhanden) liefern Indexes Sortierreihenfolge nach VA Denormalisation - Scans über I(R(SA)), I(S(SA)) (wenn vorhanden) Metadata ggf. schnelle Selektion für PR und PS Content Information Concept Topic - Scans über andere Indexstrukturen (wenn vorhanden) ggf. schnelleres Auffinden aller Sätze Verbund-Algorithmen:Nested-Loop-Join Annahme: - Sätze in R und S sind nicht nach den Verbundattributen geordnet oder - es sind keine Indexstrukturen I(R(VA)) und I(S(VA)) vorhanden 5. Technologie 31. 1. 2017 B. Thalheim Berechnung allgemeiner Θ-Joins Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes 2 Denormalisation Komplexität: O(N ) (Kardinalität N : Maximum für R und S) Metadata Content Information Concept Topic Nested-Loop-Join: Varianten Nested-Loop-Join mit Indexzugriff auf innere Relation S (Gleichverbund) 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Nested-Block-Join: (Sort-) Merge-Join 2-Phasen-Algorithmus: - Phase 1: Sortierung von R und S nach R(VA) und S(VA) (falls nicht bereits vorhanden), dabei frühzeitige Eliminierung nicht benötigter Sätze (y PR , PS ) 5. Technologie 31. 1. 2017 B. Thalheim - Phase 2: schritthaltende Scans über sortierte R- und S-Sätze mit Durchführung des Verbundes bei r.VA = s.VA Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Komplexität: O (N) bei vorliegender Sortierung, ansonsten O(N log N) Metadata Content Information Concept Topic (Sort-) Merge-Join Spezialfall: Ausnutzung von Indexstrukturen auf Verbundattributen (Annahme: I(R(VA)) und I(S(VA)) vorhanden) - schritthaltende Scans über I(R(VA)) und I(S(VA)) 5. Technologie 31. 1. 2017 B. Thalheim - falls R(VA) = S(VA), Überprüfung von PR und PS in den zugehörigen Sätzen - falls PR und PS , Bildung des Verbundes Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Hash-Join nur für Gleichverbund Idealfall: kleinere (innere) Relation S fast vollständig in Hauptspeicher - Building-Phase: Einlesen von S und Speicherung in einer Hash-Tabelle 5. Technologie 31. 1. 2017 B. Thalheim unter Anwendung einer Hash-Funktion h auf dem Join-Attribut - Probing-Phase: Einlesen von R und Überprüfung für jeden Join-Attributwert, ob zugehörige S-Tupel vorliegen (wenn ja, erfolgt Übernahme ins Join-Ergebnis) Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Vorteile - lineare Kosten O(N) - Hashing reduziert Suche nach Verbundpartnern auf Sätze einer Content Hash-Klasse (Partitionierung des Suchraumes) - Nutzung großer Hauptspeicher Information Concept Topic - auch für Joins auf Zwischenergebnissen gut nutzbar Hash-Join allgemeiner Fall: kleinere Relation paßt nicht vollständig in Hauptspeicher y Überlaufbehandlung erforderlich 5. Technologie 31. 1. 2017 B. Thalheim Lösung: Partionierung der Eingaberelationen (z.B. durch GRACE Hash-Join) - Partitionierung von S und R in q Partitionen über (Hash-)Funktion g auf dem Join-Attribut, so daß jede S-Partition in den Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Hauptspeicher paßt - q-fache Anwendung des Basisalgorithmus’ auf je zwei zusammengehörigen Partitionen rund 3-facher I/O-Aufwand gegenüber Überlauf Basisverfahren ohne Hash-Join: Varianten Hybrider Hash-Join - direkte Erstellung der Hash-Tabelle für die k ersten S-Partitionen während Partitionierung (nur noch q-k Ausgabepartitionen) 5. Technologie 31. 1. 2017 B. Thalheim - analoge Partitionierung für R; bezüglich k erster Partitionen erfolgt direkte Verbundberechnung Speicheradaptiver Hash-Join Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata - Speicherzuordnung für Hash-Joins gemäß aktueller Lastsituation (Ausmaß konkurrierender Transaktionen/Queries) - variable Anzahl von S-Partitionen im Hauptspeicher TID-Hash-Join - zur Platzersparnis werden in Hash-Tabelle nur Kombinationen: (Verbundattributwert, TID) gespeichert - separate Materialisierungsphase für Ergebnistupel erforderlich Nutzung von Bitvektoren - während Partitionierung von S wird Bitvektor erstellt, in dem Content Information Concept Topic vorhandenen Join-Attributwerten zugeordnete Bits gesetzt werden - nur solche R-Tupel werden weiter berücksichtigt, für deren Join-Attributwert zugehöriges Bit gesetzt ist Verbundalgorithmen - Vergleich 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Nested-Loop-Join ist immer anwendbar jedoch ist dabei stets das vollständige Durchsuchen des gesamten Suchraums in Kauf zu nehmen Sort-Merge-Join benötigt die geringsten Suchkosten, wenn Indexstrukturen auf beiden Verbundattributen vorhanden sind Sonst reduziert das Sortieren beider Relationen nach den Verbundattributen den Kostenvorteil in erheblichem Maße. Hash-Join partitioniert den Suchraum Gleiche Hash-Funktion h auf die Relationen R und S angewendet Content Information Concept Topic Partitionsgröße (bei der kleineren) Relation richtet sich nach der verfügbaren Puffergröße im Hauptspeicher. Mehr-Wege-Join N-Wege-Verbund kann durch N-1 2-Wege-Joins realisiert werden 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic komplexe Optimierung - N! mögliche Verbundreihenfolgen - Festlegung von N-1 Verbundmethoden - Nutzung von Pipelining, um Speicherung temporärer Zwischenergebnisse zu reduzieren Einsatz des SORT-Operators 5. Technologie 31. 1. 2017 B. Thalheim SORT-Optionen zur Duplikateliminierung: N = keine Eliminierung K = Duplikateliminierung bezüglich Sortierkriterium Transaktionen S = STOP sobald Duplikat entdeckt wird Synchronisation SORT als Basisoperator für Operationen auf höherer Ebene Recovery Algorithmik Bsp.: JOIN zwischen R1 und R2 Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Externes Sortieren große Datenmengen können nicht im Hauptspeicher sortiert werden Merge-Sort - Einlesen und Zerlegung der Eingabe in mehrere Läufe (runs) 5. Technologie 31. 1. 2017 B. Thalheim - Sortieren und Zwischenspeichern (Zurückschreiben) der sortierten Läufe - Einlesen und sukzessives Mischen der Läufe bis 1 sortierter Lauf entsteht Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Mischen: y Externes Sortieren Anzahl der initialen Läufe m ist abhängig vom verfügbaren Hauptspeicher - bei P+1 HS-Seiten können P Läufe gemischt werden (1 Seite zur Generierung der Ausgabe) 5. Technologie 31. 1. 2017 B. Thalheim y Zerlegung der unsortierten Eingabe in höchstens P Läufe (m ≤ P) - der Umfang eines initialen Laufes kann höchstens P Seiten umfassen, um eine interne Sortierung zu ermöglichen L ≤ Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic N P (N = #Seiten der Eingaberelation) Idealfall: P ≥ √ N y 1 Durchgang ausreichend (# Durchgänge D=1) Externes Sortieren Replacement Selection Sort: Erhöhung der Run-Länge für initiale Zerlegung der (unsortierten) Eingabe y Sortierung erfordert weniger Durchgänge 5. Technologie 31. 1. 2017 B. Thalheim Prinzip - bei Ausgabe des nächst-kleinsten Elements erfolgt Übernahme des nächsten Elementes x aus der Eingabe - x kann noch im gleichen Run untergebracht werden, sofern x nicht kleiner als das größte schon ausgegebene Element ist Transaktionen - Ersetzung erfolgt solange bis alle Schlüssel im Auswahlbereich Synchronisation kleiner sind als der zuletzt ausgegebene ( y neuer Run) Recovery - im Mittel verdoppelt sich die Run-Länge Algorithmik Optimierung Beispiel 14, 4, 3, 17, 22, 5, 25, 13, 9, 10, 1, 11, 12, 6, 2, 15 (eigentliche Run-Länge sei 4 Realisierung Sätze) Integrität Indexes Denormalisation Metadata Content Information Concept Topic Weitere Operationen skalare Aggregatberechnungen: MIN, MAX, COUNT, SUM, AVG - Nutzung von Indexstrukturen bzw. sequentielle Abarbeitung 5. Technologie 31. 1. 2017 B. Thalheim Kartesisches Produkt: Realisierung gemäß Nested-Loop Join Durchschnitt / Vereinigung / Differenz: als Spezialfälle vom Join realisierbar Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content - Beispiel: innere Relation S in Hauptspeicher-Hash-Tabelle - modifiziertes Probing mit R zur Bestimmung von Duplikaten und des Ergebnisses Duplikat-Eliminierung - 1 Eingaberelation - Realisierung über Sortierung oder Hash-basierte Strategien Gruppierung - Sortierung bzw. Hashing bezüglich Gruppierungsattribut - pro Attributwert Bestimmung der in Anfrage geforderten Aggregatwerte Information Concept Topic (SUM, COUNT, MAX etc.) Zusammenfassung Einfache Algorithmik bei Selektion und Projektion Verbundoperation erfordert besondere Aufmerksamkeit 5. Technologie 31. 1. 2017 B. Thalheim - Nested-loop-join universell aber komplex - Sort-merge-join einfach aber aufwendige Indizes erforderlich - Hash-join nicht immer möglich, erfordert Gleichlauf Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Weitere Operationen durch spezielle Operatoren - Sort-Operator als Basis-Operator Zurückführung aller anderen Operationen auf Basisoperationen - Warum können wir dies annehmen? Komplex Anfrageoptimierung Vorgehensweise 5. Technologie 31. 1. 2017 B. Thalheim Übersetzung vs. Interpretation von DB-Operationen Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Anfragedarstellung Anfragetransformation Erstellung und Auswahl von Zugriffsplänen Kostenbewertung Anfrageoptimierung Informationssystem: stellt einem Benutzer mächtige Anfragesprachen zur Verfügung Benutzer: kann damit Anfragen ausdrücken, die im Wesentlichen beschreiben, was (welche Aussagen, Tupel, Objekte, Objektwerte) er als Ergebnisse erwartet 5. Technologie 31. 1. 2017 B. Thalheim Informationssystem: um Anfragen effizient zu bearbeiten, ermittelt aus der Anfrage, wie die gewünschten Ergebnisse bzw. deren Bestandteile möglichst schnell (und platzsparend) erzeugt bzw. aufgefunden werden können Transaktionen Synchronisation Optimierungsaufgabe: bestimme aus der Beschreibung des Was (einer Anfrage) einen guRecovery ten Plan für das Wie (einen Algorithmus)! Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Anfrageoptimierung Optimierung: besonders wichtig und besonders schwierig - einerseits kann Benutzer anwendungsnahe, mächtige Sprachmittel auf sehr große Mengen von Daten anwenden 5. Technologie 31. 1. 2017 B. Thalheim - andererseits muß Informationssystem die volle Kluft zwischen Benutzersprache und Speicherzugriffen über alle Zwischenschichten hinweg überbrücken zentrales Problem Transaktionen - Umsetzung deskriptiver Anfragen in eine zeitoptimale Folge Synchronisation interner DBMS-Operationen Recovery - Anfrageübersetzer/-optimierer des DBMS ist im wesentlichen für eine Algorithmik effiziente Abarbeitung verantwortlich, nicht der Programmierer Optimierung Realisierung Polyoptimierung mit runtime-Änderungen Integrität mit z.T. nicht genau erfaßbar, nur mit Statistiken unterlegbar Indexes Alternativen: algebraisch-basiert, statistisch-basiert Denormalisation Metadata Content Information Concept Topic Anfrageoptimierung hohe Komplexität der Übersetzung, da die Auswahlmächtigkeit - an der Prädikatenlogik erster Stufe orientiert ist; durch zusätzliche 5. Technologie 31. 1. 2017 B. Thalheim Prädikate wie EXISTS, MATCHES, NULL, LIKE u. a. wird diese sogar deutlich übertroffen - nicht auf einen Satztyp beschränkt ist - unabhängige oder korrelierte Teilanfragen zur Bestimmung von Suchargumenten in beliebiger Schachtelungstiefe zuläßt Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic - zusätzlich den Einsatz von Built-in- und Sortier-Funktionen auf Partitionen der Satzmenge gestattet zusätzliche Anforderungen - auch die Manipulationsoperationen sind mengenorientiert - referentielle Integrität durch referentielle Aktionen zu wahren - Operationen können sich auf Sichten von Relationen beziehen - vielfältige Optionen der Datenkontrolle sind zu berücksichtigen Formulierung von ‘nicht angemessenen’ Anfragen wird durch deskriptive Sprachen sehr einfach - oft extreme Kostenunterschiede zwischen funktional äquivalenten Zugriffsplänen Ziel der Optimierung Auswertung einer Anfrage: - zunächst bestimmte Daten (Werte, Tupel, Objekte) in der gegenwärtigen Instanz des Informationssystems auffinden - anschließend aus bzw. in Abhängigkeit von diesen aufgefundenen Daten, die gewünschten Ergebnisse erzeugen 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Damit ergeben sich folgende Wunsch-Anforderungen (die i.a. kaum erfüllbar sind): O1. [Suchraum beschränken ] ausschließlich auf die zu findenden Daten zugreifen O2. [Wiederholungen vermeiden ] auf jedes zu findende Datum nur einmal zugreifen Methoden der Optimierung 1. Äquivalente Umformungen der Anfrage: auf der Ebene der Anfragesprache äquivalente Anfragen bestimmen, in denen - (im Sinne der Semantik) redundante Teile entfernt sind oder 5. Technologie 31. 1. 2017 B. Thalheim - Variable (bzw entsprechende Konzepte) an möglichst kleine Mengen gebunden werden 2. Erstellung von Ausführungsplänen: so bestimmte Anfragen jeweils übersetzen in ein oder mehrere Ausführungspläne, deren Anweisungen auf Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata tieferen Schichten des Informationssystems liegen 3. Aufwandsschätzung: für so gewonnene Ausführungspläne den voraussichtlichen Aufwand abschätzen 4. Suche nach einem kostengünstigen Ausführungsplan: alle erfolgversprechenden äquivalenten Umformungen erzeugen (1. ") und deren Übersetzungen in Pläne (1. " ) und jeweils deren Aufwand (3. ") bestimmen mit dem Ziel, möglichst schnell einen Plan als kostengünstig (oder im besten Fall als kostengünstigsten) im Vergleich mit den anderen erzeugten Plänen zu erkennen Content Information Concept Topic Nutzbares Wissen zur Optimierung - Kenntnisse über die Semantik von Anfragen, insbesondere Regeln für äquivalenzerhaltende Umformungen 5. Technologie 31. 1. 2017 B. Thalheim - Schemavereinbarung, insbesondere semantische Bedingungen Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata - Laufzeitinformation über gespeicherte Objekte (z.B. Anzahl der gespeicherten Tupel einer Relation) - Kenntnisse über verfügbare Datenstrukturen und Algorithmen Content Information Concept Topic - Laufzeitinformation über bereits angelegte Zugriffsstrukturen Heuristiken zur Optimierung - Ausdrücke zusammenfassen - Redundanz entfernen - Selektionen und Projektionen vorziehen - Verbund-Reihenfolge auswählen Anfragedarstellung direkte Repräsentation der Anfrage als Zeichenstring (Relationenalgebra, Relationenkalkül) 5. Technologie 31. 1. 2017 B. Thalheim syntaktischer Aufbau der Anfrage z.B. durch Syntaxgraphen Darstellung der Auswertungsstrategie durch Operatorgraph Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic - Knoten stellen Operatoren (z.B. der Relationenalgebra) dar - Kanten beschreiben operator-kontrollierten Datenfluß - Verfeinerung um innere Operatoren möglich Anfragetransformation Ziele der Anfragetransformation (algebraische Optimierung) - standardisierte Ausgangsdarstellung 5. Technologie 31. 1. 2017 B. Thalheim - Elimination der Redundanz - Verbesserung der Auswertbarkeit Standardisierung Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata - Wahl einer Normalform, z.B. konjunktive Normalform (A11 OR ... OR A1n) AND ... AND (Am1 OR ... OR Amn) - Verschiebung von Quantoren Elimination der Redundanz / Vereinfachung - Behandlung/Eliminierung gemeinsamer Teilausdrücke (A1 = a11 OR A1 = a12) AND (A1 = a12 OR A1 = a11) - Ausdrücke, die an “leere Relationen” gebunden sind, können vereinfacht werden - Konstanten-Propagierung: A op B AND B = const. Content Information Concept Topic - nicht-erfüllbare Ausdrücke, z.B.: A ≥ B AND B ≥ C AND C > A Anfragetransformation Verbesserung der Auswertbarkeit - Nutzung von Äquivalenzbeziehungen für relationale Operatoren 5. Technologie 31. 1. 2017 B. Thalheim siehe Teil 3 der Vorlesung - Zusammenfassung von Operationsfolgen - Minimierung der Größe von Zwischenergebnissen - selektive Operationen (σ, π) vor konstruktiven Operationen 1, ×, ∪ Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Nutzung von Integritätsbedingungen (knowledge-based / semantic query processing) - Bsp.: A ist Primärschlüssel: πA y keine Duplikateliminierung erforderlich - Integritätsbedingungen sind wahr für alle Tupel der betroffenen Relation. Hinzufügen einer Integritätsbedingung zur WHERE-Bedingung verändert den Wahrheitswert nicht Erstellung und Auswahl von Ausführungsplänen Eingabe: 5. Technologie 31. 1. 2017 B. Thalheim - transformierte Anfrage - existierende Speicherungsstrukturen und Zugriffspfade - Kostenmodell Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Ausgabe: optimaler bzw. “guter” Ausführungsplan (Query Evaluation Plan) Alternative Herangehensweisen Algebraische Optimierung Statistische Optimierung Algorithmen zur Optimierung Klassische Optimierungsalgorithmen Approximative Optimierung • Brute-Force-Algorithmen: Breite-Zuerst, Tiefe-Zuerst, Auswahl mit Kostenmodell, beschränktes TiefeZuerst, iterative Tiefe-Zuerst, bidirektionale Tiefe-Zuerst (exponentiell) • Heuristische Algorithmen: Greedy-Algorithmen, A*-Algorithmen, speicherbeschränkte Heuristiken (rekursives Bestes-Zuerst) mit Vielzahl von heuristischen Funktionen • Lokale Algorithmen: Hill-Climbing, Annealing, Beam-Optimierung, genetische Algorithmen Erstellung und Auswahl von Ausführungsplänen Vorgehensweise: 5. Technologie 31. 1. 2017 B. Thalheim 1. Generiere alle “vernünftigen” logischen Zugriffspläne zur Auswertung der Anfrage 2. Zerlege komplexere Operationen in Folge von Ein- und Zwei-Variablen-Ausdrücke Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata 3. Wähle für jeden logischen Operator Implementierungsstrategie unter Berücksichtigung der Zugriffspfade und Speicherungsstrukturen (Clusterung, Sortierreihenfolge etc.) 4. Wähle den billigsten Zugriffsplan " dem vorgegebenen Kostenmodell aus Suchstrategien - voll-enumerativ - beschränkt-enumerativ - zufallsgesteuert Content Reduzierung: bestimmte Suchpfade zur Erstellung von Ausführungsplänen Information Concept Topic werden nicht mehr verfolgt Berechnung der Zugriffskosten Optimizer erstellt Kostenvoranschlag für jeden Zugriffsplan (möglicher Lösungsweg) 5. Technologie 31. 1. 2017 B. Thalheim Berücksichtigung von folgenden Kosten - Berechnungskosten (CPU-Kosten, Pfadlängen) - I/O-Kosten (# der physischen Referenzen) - Speicherungskosten (temporäre Speicherbelegung im DB-Puffer und Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic auf Externspeichern) - im verteilten Fall: Kommunikationskosten (# der Nachrichten, Menge der zu übertragenden Daten) Gewichtete Kostenformel: C = # physischer Seitenzugriffe + W * (#Aufrufe des Zugriffssystems) - gewichtetes Maß für I/O- und CPU-Auslastung - W ist das Verhältnis des Aufwandes für einen ZS-Aufruf zu einem Seitenzugriff Ziel der Gewichtung: Minimierung der Kosten in Abhängigkeit des Systemzustandes Typisches Kostenmodell - statistische Werte statistische Größen: MS Anzahl der Datenseiten des Segmentes S 5. Technologie 31. 1. 2017 B. Thalheim LS Anzahl der leeren Seiten in Segment S NR Anzahl der Tupeln der Relation R (Card(R)) TR,S Anzahl der Seiten in S mit Tupeln von R C Clusterfaktor (Anzahl Tupel pro Seite) R Transaktionen jI Anzahl der Attributwerte / Schlüsselwerte im Index I Synchronisation für Attribut A ( = Card (pA (R)) ) Recovery BI Anzahl der Blattseiten (B*-Baum) für Index I Algorithmik ... Optimierung Realisierung Statistiken müssen im Katalog gewartet werden Integrität - Aktualisierung bei jeder Änderung zu aufwendig (zusätzliche SchreibIndexes und Log-Operationen, Katalog wird zum Sperr-Engpaß) Denormalisation - Alternative: Metadata Content Information Concept Topic - Initialisierung der statistischen Werte zum Lade- oder Generierungszeitpunkt von Relationen und Indexstrukturen - periodische Neubestimmung der Statistiken durch eigenes Kommando/Dienstprogramm Grundsätzliche Probleme Anfrageoptimierung beruht i.a. auf zwei fatalenÄnnahmen 1. Alle Datenelemente und alle Attributwerte sind gleichverteilt 2. Suchprädikate in Anfragen sind unabhängig 5. Technologie 31. 1. 2017 B. Thalheim beide Annahmen sind jedoch im allgemeinen Fall falsch ! Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Lösung: Verbesserung der Statistiken / Heuristiken Verfeinerte Kostenmodelle verbesserte Ansätze zur Schätzung der Verteilung von Attributwerten - parametrisierte Verteilungen (z.B. Normalverteilung) 5. Technologie 31. 1. 2017 B. Thalheim - Histogramme - Stichproben Histogramme Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic - Unterteilung des Wertebereichs in Intervalle; Häufigkeitszählung pro Intervall - äquidistante Intervalle vs. Intervalle mit etwa gleicher Häufigkeit von Werten (Equi-Depth-Histogramme) Zusammenfassung Interpretation vs. Übersetzung - Interpretation: hoher Aufwand zur Laufzeit (v.a. bei wiederholter Ausführung einer Anweisung) 5. Technologie 31. 1. 2017 B. Thalheim - Übersetzung: pro DB-Anweisung wird zugeschnittenes Programm zur Übersetzungszeit erstellt y hohe Laufzeiteffizienz Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Kernproblem der Anfrageoptimierung: Übersetzung (multi-)mengenorientierter DB-Sprachen - Analyse - Anfragetransformation / Algebraische Optimierung - Optimierung unter Berücksichtigung von Zugriffspfaden und Operatorimplementierungen (Verwendung von Heuristiken) - Kostenbewertung und Auswahl des günstigsten Plans - Code-Generierung Kostenvoranschläge für Zugriffspläne: - CPU-Zeit und E/A-Aufwand - Anzahl der Nachrichten und zu übertragende Datenvolumina (im verteilten Fall) “fatale” Annahmen: Information Concept Topic - Gleichverteilung aller Attributwerte - Unabhängigkeit aller Attribute Integritätskontrolle Wahrung der logischen DB-Konsistenz Überwachung von semantischen Integritätsbedingungen durch Anwendungen oder durch DBS DBS-basierte Integritätskontrolle 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic • größere Sicherheit • vereinfachte Anwendungserstellung • Unterstützung von interaktiven sowie programmierten DB-Änderungen • leichtere Änderbarkeit von Integritätsbedingungen • ggf. Leistungsvorteile Optionen zu Integritätspflege Benutzer muss dies i.a. durch sorgfältigen Entwurf der Transaktionen erreichen Informationssystem unterstützt dabei durch programmiersprachliche Konstrukte: 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic • Meldungen über den Erhalt bzw. die Verletzung von Bedingungen bei Änderungen, wobei bei Verletzung der Bedingungen eine Liste der betroffenen Objekte geliefert wird, etwa Affected(objekt liste) • Anweisung zum vorzeitigen Abbruch einer Transaktion, die die gesamte Transaktion gar nicht wirksam werden lässt, etwa Abort Trans • Anweisung zum vollständigen Wirksamwerden einer Transaktion, etwa Commit Trans Wiederholung: Arten von Integritätsbedingungen 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Modellinhärente vs. sonstige (modellunabhängige) Integritätsbedingungen - Modellinhärente Bedingungen des RM: Primärschlüsseleigenschaft; referentielle Integrität für Fremdschlüssel; Definitionsbereiche (Domains) für Attribute Reichweite der Bedingung - Attributwert-Bedingungen (z. B. Geburtsjahr > 1900) - Satzbedingungen (z. B. Geburtsdatum < Einstellungsdatum) - Satztyp-Bedingungen (z. B. Eindeutigkeit von Attributwerten) - satztypübergreifende Bedingungen (z. B. referentielle Integrität zwischen verschiedenen Tabellen) Statische vs. dynamische Bedingungen - Statische Bedingungen (Zustandsbedingungen) beschränken zulässige DB-Zustände (z.B. Gehalt < 500000) - dynamische Integritätsbedingungen (Übergangsbedingungen): zulässige Zustandsübergänge (z. B. Gehalt darf nicht kleiner werden) - Variante dynamischer IB: temporale Integritätsbedingungen für längerfristige Abläufe (z. B. Gehalt darf innerhalb von 3 Jahren nicht um mehr als 25 % steigen) Zeitpunkt der Überprüfbarkeit: unverzögerte vs. verzögerte Integritätsbedingungen Zur Erinnerung: Integritätsbedingungen in SQL92 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Primary Key- und Foreign Key-Klauseln - referentielle Integrität: deklarative Spezifikation unterschiedlicher Reaktionsmöglichkeiten für Wegfall (Löschung, Änderung) eines referenzierten Satzes bzw. Primärschlüssels (CASCADE, SET NULL, SET DEFAULT, NO ACTION) Festlegung von Wertebereichen für Attribute durch Angabe eines Datentyps bzw. Domains - optional: Angabe von Default-Werten, Eindeutigkeit (UNIQUE), Nullwerte-Ausschluß (NOT NULL) - allgemeine Wertebereichsbeschränkungen über CHECK-Klausel Spezifikation allgemeiner, z. B. tabellenübergreifender Bedingungen durch CREATE ASSERTION direkte (IMMEDIATE) oder verzögerte (DEFERRED) Überwachung spezifizierbar Integritätsregeln 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Standardreaktion auf verletzte Integritätsbedingung: ROLLBACK Integritätsregeln erlauben Spezifikation von Folgeaktionen, z.B. um Einhaltung von IB zu erreichen - SQL92: deklarative Festlegung referentieller Folgeaktionen (CASCADE, SET NULL, ...) - SQL3: Trigger - allgemeine aktive Datenbanksysteme: ECA-Regeln Trigger bzw. ECA-Regeln teilweise prozedural, jedoch sehr flexibel und mächtig - Realisierungsmöglichkeit für nahezu alle Integritätsbedingungen, u.a. dynamische IB - Zeitpunkte, Verwendung alter/neuer Werte, Aktionsteil im Detail festzulegen - viele Einsatzformen über Integritätskontrolle hinaus Integritätsregeln 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic Probleme von Triggern - Trigger i.a. beschränkt auf Änderungsoperationen einer Tabelle (UPDATE, INSERT, DELETE) - derzeit i.a. keine verzögerte Auswertung von Triggern - Gefahr zyklischer, nicht-terminierender Aktivierungen - Korrektheit des DB-/Trigger-Entwurfes (Regelabhängigkeiten, parallele Regelausführung, ...) Implementierungsaspekte der Integritätskontrolle 5. Technologie 31. 1. 2017 B. Thalheim Transaktionen Synchronisation Recovery Algorithmik Optimierung Realisierung Integrität Indexes Denormalisation Metadata Content Information Concept Topic IC-Überprüfung verlangt vom DBS Entscheidungen - für welche DB-Operationen welche Überprüfungen zusätzlich vorzunehmen sind - wann Überprüfungen durchzuführen sind (direkt, verzögert) - wie Überprüfungen vorzunehmen sind (Ausführungsplan) Behandlung zur Übersetzungszeit (falls Namen der Tabellen, Attribute... bekannt) oder zur Laufzeit in einfachen Fällen können IB über Anfragemodifikation (query modification) behandelt werden - Transformation von Änderungsoperation durch Hinzunahme einzuhaltender IB-Prädikate - verhindert Ausführung integritätsverletzender Änderungen Integritätskontrolle über allgemeines Regelsystem - interne Verwendung von Triggern bzw. ECA-Regeln auch bei deklarativer Spezifikation von IB - dynamische Überwachung regelauslösender Ereignisse sowie der ausgelösten Ausführungen