1. Einführung Transaktionsverwaltung

Ähnliche Dokumente
8. Datenkontrolle. Klassifikation von Integritätsbedingungen Integritätsbedingungen in SQL Integritätsregeln / Trigger

7. Datenkontrolle. Klassifikation von Integritästbedingungen Integritätsbedingungen in SQL. Zugriffskontrolle/Autorisierung in SQL 7-1

Transaktionsverwaltung

Datenintegrität und Transaktionskonzept

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

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

Kapitel 8: Transaktionen

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

View. Arbeiten mit den Sichten:

6. Datendefinition und -kontrolle in SQL

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Transaktionskonzept Eine Transaktion ist eine Folge von Operationen mit folgenden ACID Eigenschaften: Atomicity: Es werden alle Operationen oder gar k

Inhaltsverzeichnis. Inhaltsverzeichnis

Datenbanken: Datenintegrität.

6. Datenintegrität. Integritätsbedingungen

Kapitel 2 Transaktionsverwaltung

Tag 4 Inhaltsverzeichnis

PostgreSQL im praktischen Einsatz. Stefan Schumacher

Teil VIII Transaktionen, Integrität und Trigger

11. Integrität und Trigger. Integritätssicherung durch Anwendung. Architekturen zur Integritätssicherung. Anwendung 1. Anwendung n Routinen.

Informations- und Wissensmanagement

9 Transaktionskonzept

Datenbanken: Transaktionskonzept und Concurrency Control

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Software-Engineering und Datenbanken

Teil I Einführung & Grundlagen. 1.1 Was ist eine Transaktion?

Vorlesung Informationssysteme

Kapitel 10: Transaktionen und Datenintegrität

Aufbau Datenbanksysteme

Datenbankadministration

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Datenbanksysteme I Integrität und Trigger Felix Naumann

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

Transaktionen in der Praxis. Dr. Karsten Tolle

Logging und Recovery 0. Einführung - Fehlermodell - Recovery-Arten

Die Grundbegriffe Die Daten Die Informationen

VO Datenmodellierung. Katrin Seyr

1. Einführung / Grundlagen von DBS

Inhalt: Anforderungen an DBS,

Datenbanken II Literatur

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

SQL: statische Integrität

Transaktionsverwaltung

Kapitel 7: Referentielle Integrität

Vorlesung Datenbanken

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

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

Referentielle Integrität

Recovery- und Buffermanager

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Referentielle Integrität

1. Einführung / Grundlagen von DBS

Transaktionsverarbeitung

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Wiederherstellung (Recovery)

Tag 4 Inhaltsverzeichnis

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Transaktionen und Synchronisation konkurrierender Zugriffe

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

SQL. Fortgeschrittene Konzepte Auszug

Übersicht über Datenbanken

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

6. Datendefinition in SQL

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig)

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

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

Wiederanlauf (Recovery)

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Datenintegrität. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Prakt. Datenbankprogrammierung. Sommersemester I,9: Datenmanipulation. Daten-Manipulations-Sprache. Das INSERT-Statement

Datenbanken und SQL. Kapitel 1. Übersicht über Datenbanken. Edwin Schicker: Datenbanken und SQL (1)

Unterabfragen (Subqueries)

Datenintegrität. Bisherige Integritätsbedingungen

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Fehlerbehandlung (Recovery)

Konstante Relationen


SQL (Structured Query Language) Schemata Datentypen

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

Vorlesungsinhalt. Recovery. G. Specht: Datenbanksysteme Kapitel XI. Vorlesung Datenbanksysteme Univ.-Prof. Dr.

Datenbank- Implementierungstechniken

SQL: Weitere Funktionen

Probeklausur Datenbanktechnologie

SQL Einstieg und Anwendung

Datenbanksysteme für Business, Technologie und Web. Nutzerdefinierte Replikation zur Realisierung neuer mobiler Datenbankanwendungen DB I S

Datenbanksysteme I Transaktionsmanagement Felix Naumann

10 Transaktionen Änderungen verwalten

Terminierungs-Analyse von SQL-Triggern. Sommersemester 05 T. Jahn Seminar Intelligente Datenbanken SQL-Trigger: Terminierungs-Analyse 1

Entwicklung einer Informix- Administrationsdatenbank mit ERwin

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Abfragen (Queries, Subqueries)

11. Backup & Recovery. Datenbankadministration

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Transkript:

1. Einführung Transaktionsverwaltung Transaktionsparadigma (ACID) Synchronisationsproblem Recovery-Arten / Systemkomponenten Integritätskontrolle Arten von Integritätsbedingungen Integritätsregeln Implementierung Prof. E. Rahm 1-1 Grobaufbau eines DBS deskriptive Anfragen (Zugriff auf Satzmengen) DBMS Transaktionsverwaltung: Datensystem Satzzugriffe Zugriffssystem Seitenzugriffe Speichersystem Metadatenverwaltung Zugriffskontrolle Logging, Recovery, Synchronisation, Integritätssicherung Log, Archivkopien... DB DB DD Prof. E. Rahm 1-2

Das Transaktionsparadigma 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 ACID-Eigenschaften. ACID-Prinzip Atomicity: Alles oder Nichts -Eigenschaft (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). Prof. E. Rahm 1-3 Transaktionsparadigma (2) Programmierschnittstelle für Transaktionen begin of transaction (BOT) commit transaction ( commit work in SQL) rollback transaction ( rollback work in SQL) Mögliche Ausgänge einer Transaktion BOT DML1 DML2 DMLn COMMIT WORK normales Ende BOT DML1 DML2 DMLn ROLLBACK WORK abnormales Ende BOT DML1 DML2 erzwungenes ROLLBACK abnormales Ende Systemausfall, Programmfehler usw. ACID vereinfacht DB-Anwendungsprogrammierung erheblich Fehlertransparenz (failure transparency) Transparenz der Nebenläufigkeit (concurrency transparency) erlaubt also fehlerfreie Sicht auf Datenbank im logischen Einbenutzerbetrieb Prof. E. Rahm 1-4

Transaktionsverwaltung Mechanismen zur Einhaltung der ACID-Eigenschaften Synchronisation (Concurrency Control) Logging, Recovery, Commit-Behandlung Integritätskontrolle Enge Abhängigkeiten untereinander sowie zu anderen Systemfunktionen (Pufferverwaltung, etc.) ACID-Paradigma eignet sich vor allem für relativ kurze Transaktionen, die in den meisten Anwendungen vorherrschen Prof. E. Rahm 1-5 void main ( ) { EXEC SQL Transaktionsbeispiel: Debit/Credit BEGIN DECLARE SECTION int b /*balance*/, a /*accountid*/, amount; END DECLARE SECTION; EXEC SQL /* read user input */ scanf ( %d %d, &a, &amount); /* read account balance */ EXEC SQL Select Balance into :b From Account Where Account_Id = :a; /* add amount (positive for debit, negative for credit) */ b = b + amount; /* write account balance back into database */ EXEC SQL Update Account Set Balance = :b Where Account_Id = :a; EXEC SQL Commit Work; } Prof. E. Rahm 1-6

Beispiel paralleler Ausführung (Synchronisationsproblem) P1 Werte (Variablen, DB) P2 /* b1=0, a.balance=100, b2=0 */ Select Balance Into :b1 From Account Where Account_ Id = :a Select Balance Into :b2 From Account Where Account_Id = :a /* b1=100, a.balance=100, b2=100 */ b1 = b1-50 /* b1=50, a.balance=100, b2=100 */ b2 = b2 +100 /* b1=50, a.balance=100, b2=200 */ Update Account Set Balance = :b1 Where Account_ Id = :a /* b1=50, a.balance=50, b2=200 */ /* b1=50, a.balance=200, b2=200 */ Prof. E. Rahm 1-7 Update Account Set Balance = :b2 Where Account_Id = :a Synchronisation DBS müssen Mehrbenutzerbetrieb unterstützen ohne Synchronisation kommt es zu so genannten Mehrbenutzer-Anomalien Verlorengegangene Änderungen (lost updates) Abhängigkeiten von nicht freigegeben Änderungen (dirty read, dirty overwrite) inkonsistente Analyse (non-repeatable read) Phantom-Probleme Anomalien sind nur durch Änderungen verursacht Synchronisation erfolgt automatisch durch das DBS zu klärende Fragen Korrektheitskriterium? Realisierung? Leistungsfähigkeit? Prof. E. Rahm 1-8

Atomaritätsproblem: Beispiel Unterbrechung während einer Überweisung void main ( ) { /* read user input */ scanf ( %d %d %d, &sourceid, &targetid, &amount); /* subtract amount from source account */ EXEC SQL Update Account Set Balance = Balance - :amount Where Account_Id = :sourceid; /* add amount to target account */ EXEC SQL Update Account Set Balance = Balance + :amount Where Account_Id = :targetid; EXEC SQL Commit Work; } Prof. E. Rahm 1-9 Recovery-Unterstützung automatische Behandlung aller erwarteten Fehler durch das DBVS Transaktionsparadigma verlangt: Alles-oder-Nichts-Eigenschaft von Transaktionen Dauerhaftigkeit erfolgreicher Änderungen Zielzustand nach Recovery: jüngster, transaktionskonsistenter Zustand vor Erkennen des Fehlers Voraussetzung: Sammeln redundanter Informationen während Normalbetrieb (Logging) Prof. E. Rahm 1-10

Fehlerarten Transaktionsfehler: vollständiges Zurücksetzen auf Transaktionsbeginn (Undo) Systemfehler (Rechnerausfall, DBVS-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 Katastropen (Komplettausfall Rechenzentrum, etc.) Verteilte Datensicherung auf geographisch separierten Systemen Prof. E. Rahm 1-11 Systemkomponenten AP1 AP 2 AP n temporäre Log-Datei DBVS Log-Puffer DB-Puffer Archiv-Log permanente Datenbank Archivkopie der DB 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 Prof. E. Rahm 1-12

Integritätskontrolle Wahrung der logischen DB-Konsistenz Überwachung von semantischen Integritätsbedingungen durch Anwendungen oder durch DBS DBS-basierte Integritätskontrolle größere Sicherheit vereinfachte Anwendungserstellung Unterstützung von interaktiven sowie programmierten DB- Änderungen leichtere Änderbarkeit von Integritätsbedingungen AP1 AP2... APn interaktives Update AP1 AP2... APn interaktives Update DBS DBS Integritätskontrolle AP-Prüflogik Prof. E. Rahm 1-13 Arten von Integritätsbedingungen Modellinhärente Integritätsbedingungen (vs. Anwendungsspezifische IB) 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, Assertions / Check-Klauseln zwischen 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) Zeitpunkt der Überprüfbarkeit: unverzögerte vs. verzögerte Integritätsbedingungen Prof. E. Rahm 1-14

Integritätsregeln 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,...) Trigger bzw. Verallgemeinerung durch ECA-Regeln Probleme von Triggern i.a. beschränkt auf Änderungsoperationen einer Tabelle (UPDATE, INSERT, DELETE) i.a. keine verzögerte Auswertung von Triggern Gefahr zyklischer, nicht-terminierender Aktivierungen Korrektheit (Regelabhängigkeiten, parallele Regelausführung,...) Prof. E. Rahm 1-15 Integritätsregeln (2) Trigger / ECA-Regeln sind jedoch sehr flexibel und mächtig Realisierungsmöglichkeit für nahezu alle Integritätsbedingungen, u.a. dynamische IB viele Einsatzformen über Integritätskontrolle hinaus CREATE TRIGGER GEHALTSTEST AFTER UPDATE OF GEHALT ON PERS REFERENCING OLD AS AltesGehalt, NEW AS NeuesGehalt WHEN (NeuesGehalt < AltesGehalt) ROLLBACK; Prof. E. Rahm 1-16

Implementierungsaspekte der Integritätskontrolle IB-Ü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) 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 UPDATE PERS SET GEHALT = GEHALT * 1.05 WHERE PNR = 4711 Integritätsbedingung GEHALT < 500000 Prof. E. Rahm 1-17 Integritätskontrolle über Regelsystem DBS-interne Verwendung von ECA-Regeln zur Überwachung von IB IBM-Prototyp Starburst mengenorientierte Regelauswertung am Ende von Transaktionen pro Transaktion werden für jede geänderte Tabelle vier temporäre Relationen (transition tables) mit den von Änderungen betroffenen Sätzen geführt: deleted, inserted, old-updated, new-updated Begrenzung der Regelauswertung auf minimale Menge relevanter Daten Nutzung der Tabellen innerhalb von Regeln zur Integrationskontrolle (i.a. automatisch vom Compiler erzeugt) Beispiel: Wahrung der Integritätsbedingung GEHALT < 500000 CREATE RULE GehaltsCheck ON PERS WHEN INSERTED, UPDATED (GEHALT) // Event: Disjunktion IF EXISTS // Bedingung (Condition) (SELECT * FROM inserted UNION new-updated WHERE GEHALT >= 500000) THEN ROLLBACK // Aktion Prof. E. Rahm 1-18

Die Transaktion als Schnittstelle zwischen Anwendungsprogramm und DBS Aktionen auf Seite des AP Aktionen auf Seite des DBS BOT Op i EOT Befehle Sicherstellen der Rücksetzbarkeit von Änderungsoperationen Ausführen von DML-Befehlen (Überprüfen der unverzögerten Integritätsbedingungen) C Überprüfen der verzögerten Integritätsbedingungen 2-Phasen- Commit (2PC) O M M I T Phase 1 Phase 2 Sicherstellen der Wiederholbarkeit aller Änderungen (Logging) Freigabe der Betriebsmittel (Sperren) Bestätigung über erfolgreiches Ende an das AP Weiterarbeit im AP Prof. E. Rahm 1-19 Zusammenfassung Transaktionskonzept vereinfacht DBProgrammierung und - Nutzung: Transparenz gegenüber Fehlern und Mehrbenutzerbetrieb Transaktionsverwaltung zur Sicherung der ACID-Eigenschaften Synchronisation Logging / Recovery Integritätskontrolle Integritätskontrolle kann regelbasiert erfolgen Anfragemodifikation für einfache Fälle Zwei-Phasen-Commit: erfolgreicher Transaktionsabschluss (Commit) mit Gültigstellung von Änderungen erst nach Sicherstellung aller Integritätsbedingungen sowie der Wiederholbarkeit von Änderungen ACID v.a. für kurze Transaktionen geeignet -> Bedarf für erweiterte Transaktionskonzepte Prof. E. Rahm 1-20