Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs



Ähnliche Dokumente
Synchronisation in Datenbanksystemen in a nutshell

Software-Engineering und Datenbanken

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Grundlagen verteilter Systeme

Transaktionen und Synchronisation konkurrierender Zugriffe

Synchronisierung von Transaktionen ohne Sperren. Annahme: Es gibt eine Methode, zu erkennen, wann eine Transaktion die serielle Ordnung verletzt.

P.A. Bernstein, V. Hadzilacos, N. Goodman

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Korrelation (II) Korrelation und Kausalität

Datenintegrität und Transaktionskonzept

Datenbanken: Transaktionskonzept und Concurrency Control

Probeklausur Grundlagen der Datenbanksysteme II

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Einführung in die Algebra

Datenbanksysteme II SS Übungsblatt 9: Wiederholung

1 Mathematische Grundlagen

Übungen zur Vorlesung. Datenbanken I

Monitore. Klicken bearbeiten

Grundlagen der Theoretischen Informatik, SoSe 2008

Softwarelösungen: Versuch 4

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

7 Rechnen mit Polynomen

Kapitel 12 Integrität der Datenbank

Transaktionsverwaltung

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Lehrer: Einschreibemethoden

)XQNWLRQVWDVWH8PEXFKHQ

S7-Hantierungsbausteine für R355, R6000 und R2700

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Primzahlen und RSA-Verschlüsselung

Anleitung über den Umgang mit Schildern

Mathematischer Vorbereitungskurs für Ökonomen

Erstellen von x-y-diagrammen in OpenOffice.calc

Erfahrungen mit Hartz IV- Empfängern

Nutzung von GiS BasePac 8 im Netzwerk

1 topologisches Sortieren

Anmerkungen zur Übergangsprüfung

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

Wie Sie mit Mastern arbeiten

Informationsblatt Induktionsbeweis

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Es kann maximal ein Prozess die Umladestelle benutzen.

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Strom in unserem Alltag

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

ecaros2 - Accountmanager

myfactory.go! - Verkauf

Hilfedatei der Oden$-Börse Stand Juni 2014

WinVetpro im Betriebsmodus Laptop

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

AutoCAD Dienstprogramm zur Lizenzübertragung

Mediator 9 - Lernprogramm

Freischaltung eines neuen VR-NetKeys mit SecureGo

Professionelle Seminare im Bereich MS-Office

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Software-Engineering SS03. Zustandsautomat

Lineare Gleichungssysteme

Inventur. Bemerkung. / Inventur

How to do? Projekte - Zeiterfassung

Mehrbenutzer-Synchronisation

Abschluss Version 1.0

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Transaktionsempfehlungen im ebase Online nutzen

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

2 Evaluierung von Retrievalsystemen

Speicher in der Cloud

Beweisbar sichere Verschlüsselung

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Quadratische Gleichungen

Win-Digipet V 9.2 Premium Edition Wie bastele ich mir steuerbare Kontakte. Wie bastele ich mir steuerbare Kontakte? -Quick-And-Dirty-Lösung-

Algorithmen und Datenstrukturen 2

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

WS 2013/14. Diskrete Strukturen

A Lösungen zu Einführungsaufgaben zu QueueTraffic

Kostenloser Apple-Softclient zur Nutzung von TeSign

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Musterlösungen zur Linearen Algebra II Blatt 5

Anleitung Postfachsystem Inhalt

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Einführung in. Logische Schaltungen

Studienplatzbeschaffung

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Vorgehensweise bei Lastschriftverfahren

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Lichtbrechung an Linsen

Transkript:

9. Mehrbenutzerbetrieb: DBS bedient gleichzeitig mehrere Benutzer Benutzer arbeiten zwar unabhängig voneinander, können aber die gleiche Relation oder sogar den gleichen Datensatz bearbeiten! Aktivität eines Benutzers: seuentieller Prozeß Aktivitäten mehrerer Benutzer: variable Menge von inneinander verzahnt ablaufenden Prozessen gemeinsame Nutzung der Datenbasis Benutzer Z ESQL DBMS SQL Benutzer X ESQL DB SQL Benutzer V Benutzer Y Seite 213 von 234

Anwendung eines DBS: Kontoverwaltung Benutzer soll eine Buchung von einem Konto A auf ein Konto B vornehmen können. folgende Anforderung besitzt dabei der Bankkunde bzw. die Bank Buchung sollte nicht teilweise durchgeführt werden. alle Konsistenzbedingungen sollen nach einer Buchung gewahrt bleiben: z. B. Kontostände dürfen nicht unter 10000,- fallen gleichzeitig ablaufende Buchungen dürfen keinen Einfluß haben auf das Ergebnis dieser Buchung. erfolgreiche Buchung ist auch tatsächlich in der Datenbank wirksam geworden. Datenbanksystem mehrere Elementaroperationen werden miteinander zu einer Einheit verschmolzen. Der Ablauf dieser Einheit wird eine Transaktion genannt. neue Operationen zur Ablaufsteuerung von Transaktionen Seite 214 von 234

Operationen 9.1 Transaktionen Elementaroperationen, die sich auf die Datenbasis beziehen Lesen des Werts eines Objekts A in eine Programmvariable a: read(a,a) bzw. r(a) Zuweisung eines Werts einer Programmvariable a an ein Objekt A der Datenbank write(a, a) bzw. w(a) Elementaroperationen, die keine Auswirkung auf die Datenbasis haben. Ablaufsteuerung Anfang einer Transaktion: BOT Ende der Transaktion: commit alle in der Transaktion erzeugten Änderungen der Datenbasis werden festgeschrieben. Abbruch einer Transaktion:abort alle in der Transaktion vorgenommen Änderungen der Datenbasis werden unwirksam. Seite 215 von 234

Eigenschaften von Transaktionen Eine Transaktion (TA) ist eine Folge von Elementaroperationen. Eine TA erfüllt die ACID-Bedingungen: A: TA ist die kleinste, atomare Ausführungseinheit. entweder alle durch einen TA vorgenommenen Änderungen werden in der Datenbasis wirksam oder gar keine. C: eine TA überführt eine konsistenten Datenbankzustand in einen anderen konsistenten Datenbankzustand. innerhalb einer TA sind Inkonsistenzen erlaubt. I: eine TA ist gegenüber anderen TAs isoliert, d. h. das Ergebnis einer TA kann nicht direkt durch eine andere TA beeinflußt werden. jede TA wird logisch so ausgeführt, als gäbe es keine andere TA. D: ist eine TA einmal erfolgreich abgeschlossen, dann bleibt ihre Wirkung auf die Datenbasis dauerhaft erhalten. dies gilt auch im Fall eines Systemfehlers Seite 216 von 234

Transaktionsmanagement T m T m+1 T n TA-Manager verzahnter Ablauf der TAs Synchronisation der TAs Isolation Einschränkung bei den verzahnten Abläufe Zurücksetzen einer oder mehrerer TAs Atomarität Dauerhaftigkeit Einschränkung bei den verzahnten Abläufe Seite 217 von 234

Notation Transaktionen: T 1, T 2,, T n Transaktion T j setzt sich aus folgenden Elementaroperationen zusammen: 1. Leseoperation: r j (A) 2. Schreiboperation: w j (A) 3. Abbruch: a j 4. Commit: c j 5. weitere Operationen, die aber auf die Datenbank keine Auswirkung haben. Ablauf einer Transaktion T j wird durch einen Aufruf von a j und c j beendet: es gibt keine weitere Operation von T j, die danach ausgeführt wird. einzelne Operationen r j, w j, a j, und c j werden seuentiell nacheinander ausgeführt für ein Ablauf einer TA T j gibt es eine Ordnungsrelation < j, welche die seuentielle Ordnung der Elementaroperationen ausdrückt: op 1 < j op 2 : op 1 wird vor op 2 ausgeführt. Seite 218 von 234

Ausführungsplan (Historie) Definition (Ausführungsplan, Historie): Seien T 1,,T n Transaktionen. Dann wird eine Folge H aller Operationen der TAs T 1,,T n ein Ausführungsplan genannt, falls folgende Bedingungen erfüllt sind: es gibt nur Elementaroperationen vom Typ r j, w j, a j, c j, Ordnungsrelationen < j der einzelnen Transaktionsabläufe bleiben bewahrt. Bemerkungen: Durch den Ausführungspan H ist eine Ordnungsrelation < H definiert. Nicht alle Ausführungspläne erzeugen einen konsistenten Datenbankzustand (siehe Beispiele) Verzahnter Ablauf der TAs wird oft auch als parallele Ausführung bezeichnet. Seite 219 von 234

Transaktion t 1 : read(a, a); a := a + 10; write(a, a); read(b, b); b := b-10; write(b, b); commit; Transaktion t 2 : read(b, b); b := b + 10; write(b, b); read(c, c); c := c-10; write(c, c); commit Beispiel ein Ablauf: t 1 t 2 read(a, a); read(b, b); a:= a + 10; write(a, a); b := b + 10; read(b, b); write(b, b); b := b-10; read(c, c); write(b, b); commit; c := c-10; write(c, c); commit; Zeit Ausführungsplan: r 1 (A); r 2 (B); w 1 (A); r 1 (B); w 2 (B); r 2 (C); w 1 (B); c 1 ; w 2 (C); c 2 ; Seite 220 von 234

9.1.1 Synchronisationsprobleme Ausführungsplan müssen gewisse Kriterien erfüllen, damit die Isolationseigenschaft garantiert ist. Sonst kann es Probleme geben: Problem des lost update Transaktion T 1 und T 2 erhöhen das Gehalt der Mitarbeiter jeweils um 100,- DM T 1 T 2 Ausführungsplan read(gehalt, g); r 1 (Gehalt); read(gehalt, h); r 2 (Gehalt); g := g + 100; write(gehalt, g); w 1 (Gehalt); commit; c 1 h := h + 100; write(gehalt, h); w 2 (Gehalt); Konsistenz der DB ist i.a. nicht verletzt commit; c 2 Resultate der Anfragen sind nicht offenkundig falsch Seite 221 von 234

Problem der inkonsistenten Sicht auf die Datenbank A und B seien zwei Kontostände für die A+B=0 gelten soll. T 1 und T 2 sind zwei Transaktionen, wobei T 1 ändert und T 2 nur vom Konto ließt. T 1 T 2 read(a, a); a := a-1; write(a, a); read(a, c); read(b, d); commit; read(b,b); b := b+1; write(b,b); commit; Transaktion T 2 ließt somit inkonsistente Daten aus der Datenbank, obwohl die Datenbank nach c 1 wieder in einem konsistenten Zustand ist. Seite 222 von 234

Problem der inkonsistenten Datenbank A und B seien im folgenden zwei Kontostände, die stets A = B erfüllen. T 1 T 2 read(a, a); a := a + 10; write(a, a); read(a, c); c := c*1.1; write(a, c); read(b, b); b := b*1.1; write(b, b); commit; read(b, d); d := d +10; write(b,d); commit; Datenbank hat dauerhaft einen inkonsisten Zustand: A neu = (A+10)*1.1 B*1.1+10 = B neu Seite 223 von 234

Phantom-Problem: Transaktion T 1 ließt die Daten aller Angestellten, berechnet wieviel Gehaltserhöhung möglich ist, und erhöht das Gehalt. Transaktion T 2 fügt einen neuen Angestellten ein wird T 2 nach Schritt 1 von T 1 ausgeführt, so ist die Kalkulation von T 1 veraltet. Lösung der Synchronisationsprobleme: strikte seuentielle Ausführung der Transaktionen Nachteil: schlechte Systemauslastung, lange Wartezeiten Beschränkung der Parallelität auf erlaubte Verarbeitungsreihenfolgen Seite 224 von 234

9.1.2 Serialisierung von TAs Sei T* = {T 1,,T n } eine Menge von Transaktionen und H ein dazugehörender Ausführungsplan. Seien T i und T j zwei Transaktionen aus T*, die gemeinsam auf ein Datenobjekt A zugreifen. Es werden nun folgende vier Fälle unterschieden: 1. r i (A) < H r j (A) 2. r i (A) < H w j (A) 3. w i (A) < H r j (A) 4. w i (A) < H w j (A) Bemerkungen: nur im 1. Fall sind die Operationen vertauschbar, ohne daß sich das Ergebnis des Ausführungsplans ändert. in allen anderen Fällen ist davon auszugehen, daß ein Vertauschen der Ausführungsreihenfolge zu einem anderen Ergebnis führt. Man spricht dann auch von einem Konflikt. Seite 225 von 234

Äuivalenz von Ausführungsplänen Definition: Sei T* = {T 1,,T n } eine Menge von Transaktionen. Seien H und G zwei dazugehörige Ausführungspläne. Dann sind H und G äuivalent, falls die Konflikte identisch sind, d.h. wenn für alle Relationen T i und T j und einem beliebigen Datenobjekt A folgende Bedingungen gelten: r i (A) < H w j (A) r j (A) < G w j (A) w i (A) < H r j (A) w j (A) < G r j (A) w i (A) < H w j (A) w j (A) < G w j (A) Durch Vertauschen von zwei benachbarte Operationen, die nicht in Konflikt zueinander stehen, kan man sich einen äuivalenten Ausführungsplan erzeugen. Beispiel: zwei Relationen T 1 und T 2 Ausführungsplan H = (r 1 (A),r 2 (C),w 1 (A),w 2 (C),r 1 (B),w 1 (B),c 1,r 2 (A),w 2 (A),c 2 ) Konflikte: r 1 (A) < H w 2 (A) w 1 (A) < H r 2 (A) Seite 226 von 234

Serialisierbare Ausführungspläne Definition (Serialisierbarkeit): Ein Ausführungsplan ist serialisierbar, falls es einen äuivalenten seuentiellen Ausführungsplan gibt. Serialisierbarkeitsgraph Test auf Serialisierbarkeit eines Ausführungsplans. Graph G = (K,U) mit Knotenmenge K und Kantenmenge zu jeder TA gibt es genau einen Knoten U K K (T 1,T 2 ) U g.d.w. es gibt ein Objekt O, so daß op 1 (O) < H op 2 (O) in Konflikt zueinander stehen. Satz: T 1 T 2 Ein Ausführungsplan ist genau dann serialisierbar, falls G zyklenfrei ist. Beweis: siehe Bernstein, Hadzilacos, Goodman Seite 227 von 234

9.2 Synchronisationsverfahren in einem DBS soll stets Serialisierbarkeit garantiert werden zwei prinzipielle Methoden: verifizierende ( optimistische ) Verfahren: Beobachte ständig die Ausführungspläne (über den Graph G). Falls Serialisierbarkeit nicht garantiert, setze eine TA zurück und starte sie neu. präventive Verfahren: Verhindere nicht-serialisierbare Ausführungspläne. bislang verwendete Verfahren: Sperrverfahren Zeitstempel- und Mehrversionsverfahren Seite 228 von 234

Sperrverfahren jede TA sperrt den Teil der DB, auf dem sie arbeiten will solange gesperrt ist, können keine anderen TAs zugreifen Klassifizierung der Sperrverfahren nach Sperrobjekten: Datensatz, Satztyp, Relation, Datenseite Beachte: je feiner die Sperreinheit, desto mehr Parallelität ist möglich je feiner die Sperreinheit, desto mehr Verwaltungsaufwand Sperrmodi lock(a) sperrt das Datenobjekt A unlock(a) gibt die Sperre wieder frei Sperrprotokoll Anforderung: Gewährleistung der Serialisierbarkeit Seite 229 von 234

Zwei-Phasen Sperrprotokoll (2PL) 2-Phasen-Sperrprotokoll: Für jede TA darf nach dem ersten unlock kein lock mehr angefordert werden. #Sperren Verarbeitung Sperren Freigabe Eigenschaften: Bevor auf ein Objekt A zugegriffen wird, muß es mit einem lock gesperrt werden. Insbesondere muß eine Sperre direkt vor dem Lesen des Objekts gesetzt werden. Das gleiche Objekt darf während einer Transaktion bei einem 2PL nur einmal gesperrt und freigegeben (unlock) werden. Wurde das Objekt verändert, muß es vor der Freigabe (unlock) auch geschrieben werden. Zeit Seite 230 von 234

Satz: Jeder durch ein 2-Phasen Sperrprotokoll erzeugte Ausführungsplan ist serialisierbar. Beweisskizze: Annahme: H ist ein Ausführungsplan mit einem Zyklus T i1 -> -> T in -> T i1 Wenn dieser mittels eines 2PL entstanden wäre, dann müßte es Objekte A i1,, A in geben, so daß bzgl. diesen die Transaktionen in Konflikt stehen. Somit muß also ein unlock ij (A ij ) vor einem lock ij (A ij+1 ) für j= 1,,n-1 erfolgt sein und zusätzlich noch ein lock i1 (A in ) nach dem unlockin(a in ) erfolgen. Seite 231 von 234

Varianten des 2PL Preclaiming (konservatives 2PL): EOT-Sperren (striktes 2PL) #Sperren Verarbeitung Freigabe #Sperren Sperren Verarbeitung Zeit keine Verklemmung möglich Objekte müssen bei Beginn der TA bekannt sein häufig wird zu viel und zu lange gesperrt Probleme beim Zurücksetzen einer TA (kaskadierend) Zeit Verklemmungen sind möglich Objekte müssen beim Beginn der TA noch nicht bekannt sein. bei Freigabe der Sperren ist garantiert, daß auf kein Objekt mehr zugegriffen wird. vermeidet Zurücksetzen von bereits abgeschlossener TAs Seite 232 von 234

Sperrmodi Das bisherige Vorgehen ist zu restriktiv, da das Sperren von Objekten, die nur gelesen werden, zu restriktiv ist. Eine Transaktion T 2, die ein Objekt A lesen möchte, muß warten bis die Transaktion T 1 ein unlock auf A ausführt (obwohl T 1 keine Änderungen an A vornimmt). RX-Protokoll Unterscheidung zwischen zwei Sperrmodi R-Sperre: rlock T (A) Das Objekt darf von der Transaktion gelesen, aber nicht geschrieben werden. Auf dem Objekt A sind nun mehrere R-Sperren verschiedener Transaktionen erlaubt. X-Sperre: xlock T (A) Die Transaktion T hat nach dem Sperren des Objekts exklusiven lesenden und schreibenden Zugriff. Es ist somit nur eine X-Sperre auf einem Objekt A erlaubt. Seite 233 von 234

Sperrverfahren für Non-Standard-DBS typischerweise sehr lange TAs auf vielen Objekten TA können häufig durch einen Operationsbaum veranschaulicht werden (je weiter oben die Operationen liegt, desto reicher ihre Semantik) Beispiel (Buchung in einem Reisebüro) Flug Hotel Mietwagen Flug A Flug B Hotel A, YH Seiten Zeit Freigabe der normalen Sperren ist bereits vor der Freigabephase möglich Seite 234 von 234