fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1

Größe: px
Ab Seite anzeigen:

Download "fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1"

Transkript

1 Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1

2 Transaktionsmanagement Inhalte des Kapitels Das Transaktionskonzept Konkurrierende Zugriffe und Sperren (Concurrency und Locking) JDBC Teil II: Transaktionsmanagement Wiederherstellung der Daten (Recovery) und Backupstragien Lernziele Strategisches Verständnis für die ACID-Eigenschaften von Transaktionen Kenntnis der unterschiedlichen Kategorien von Concurrency-Konflikten Kenntnis der entsprechenden Isolationlevel Anwendung von Transaktionskonzepten im Rahmen von JDBC Kenntnis der Vorgänge beim Recovery Kenntnis unterschiedlicher Backupstragien Schestag Datenbanken (Cnam) Kapitel 7-2

3 Transaktionsmanagement Ein einführendes Beispiel... while c%found loop if v_gehalt > then update angestellter set gehalt = gehalt * proz1 where current of c; else update angestellter set gehalt = gehalt * proz2 where current of c; end if; fetch c into v_gehalt; end loop; Was passiert, wenn während der Ausführung dieses PL/SQL-Programms das DBMS abstürzt / oder das Betriebssystem abstürzt / oder der Strom ausfällt oder? Schestag Datenbanken (Cnam) Kapitel 7-3

4 Transaktionsmanagement und ein zweites Beispiel: -- Überweisung von 50 Euro von Konto A nach Konto B (1) Lese den Kontostand von A in die Variable a: read(a,a); (2) Reduziere den Kontostand um 50 Euro: a:=a 50; (3) Schreibe den neuen Kontostand in die Datenbasis: write(a,a); (4) Lese den Kontostand von B in die Variable b: read(b,b); (5) Erhöhe den Kontostand um 50 Euro: b:=b+50; (6) Schreibe den neuen Kontostand in die Datenbasis: write(b,b); Was passiert, wenn zwischen der Ausführung von Operation 3 und Operation 4 das DBMS abstürzt / oder das Betriebssystem abstürzt / oder der Strom ausfällt oder? Schestag Datenbanken (Cnam) Kapitel 7-4

5 Transaktionsmanagement In diesem Kapitel werden Konzepte vorgestellt, wie die Integrität und Dauerhaftigkeit der Daten gewährleistet wird bei einer zusammen gehörenden Abfolge von Anweisungen, die entweder alle oder gar nicht ausgeführt werden dürfen, um die Konsistenz der Daten zu gewährleisten Transaktion Transaction, bei Zugriff auf die Daten von mehreren Usern gleichzeitig konkurrierende Zugriffe und Sperren Concurrency und Locking, zur Sicherstellung der Integrität nach dem Wiederanlauf eines Systems Wiederherstellung Recovery. Schestag Datenbanken (Cnam) Kapitel 7-5

6 Das Transaktionskonzept Eine Transaktion ist eine Folge von Datenbankoperationen, die die Daten von einem konsistenten Zustand in einen neuen konsistenten Zustand überführt und entweder ganz oder gar nicht ausgeführt wird (man spricht auch von einer logischen atomaren Einheit / Unit of Work UOW). störungsfreie Ausführung Festschreiben von Zustand B (Commit) Zustand A Zustand B gestörte Ausführung: Zurücksetzen auf Zustand A (Rollback, Abort) Zum zweiten Beispiel: Eine Kontobewegung von Konto1 nach Konto 2 entspricht immer einem Update für das Haben auf Konto 1 und einem Update für das Soll auf Konto 2. Beide Datenbankoperationen müssen gemeinsam vollständig oder dürfen gar nicht ausgeführt werden, um die Integrität der Datenbank zu wahren. Schestag Datenbanken (Cnam) Kapitel 7-6

7 Das ACID-Paradigma für Transaktionen A Atomicity (Atomarität) Transaktionen haben atomaren Charakter: Sie werden ganz oder gar nicht ausgeführt ( alles oder nichts ). Mechanismen zur Fehlerbehandlung sind notwendig. Schestag Datenbanken (Cnam) Kapitel 7-7

8 Das ACID-Paradigma für Transaktionen C Consistency (Konsistenz) Transaktionen bewahren die Konsistenz der Datenbank. Die Datenbank wird durch eine Transaktion von einem konsistenten Zustand in den nächsten überführt. Mechanismen zur Konsistenzsicherung und Fehlerbehandlung sind notwendig. Schestag Datenbanken (Cnam) Kapitel 7-8

9 Das ACID-Paradigma für Transaktionen I Isolation (Isolation) Transaktionen werden bei konkurrierendem Zugriff (concurrency) untereinander getrennt, d.h. jede Transaktion läuft in einem simulierten Single-User-Betrieb. Sperrkonzepte und Synchronisation mehrerer nebenläufigertransaktionen sind notwendig (Scheduling) Schestag Datenbanken (Cnam) Kapitel 7-9

10 Das ACID-Paradigma für Transaktionen D Durability (Dauerhaftigkeit) Datenbank-Updates bleiben nach einem Commit dauerhaft erhalten, auch wenn nach diesem Commit ein Systemausfall stattgefunden haben sollte. Fehlerbehandlung, insbesondere Recovery-Management ist notwendig Schestag Datenbanken (Cnam) Kapitel 7-10

11 Transaktionsmanagement: SQL-Anweisungen Ein DBMS, das das Transaktionskonzept unterstützt, besitzt als Komponente einen Transaktionsmanager, der über folgende SQL-Anweisungen gesteuert wird: BEGIN TRANSACTION expliziter oder impliziter Beginn einer Transaktion eine Transaktion beginnt implizit mit der ersten Anweisung nach Eröffnung einer Session bzw. mit der ersten Anweisung nach dem letzten commit. COMMIT TRANSACTION Transaktion wird als erfolgreich beendet gekennzeichnet. Alle zugehörigen Datenbankänderungen werden festgeschrieben ( Durability!). Syntax: commit [work]; Schestag Datenbanken (Cnam) Kapitel 7-11

12 Transaktionsmanagement: SQL-Anweisungen ROLLBACK TRANSACTION Die Transaktion wird explizit (per Programm) oder implizit (z.b. durch Connection-Verlust) abgebrochen. Alle zugehörigen Datenbankänderungen werden rückgängig gemacht, auch die, die implizit z.b. durch Trigger entstanden sind. Es wird auf den letzten konsistenten Zustand des Systems zurückgesetzt ( Checkpoints / Savepoints). Syntax: rollback [work]; -- Transaktion T1 wird implizit geöffnet update Konto set balance = balance-50 where KontoID = 'A'; update Konto set balance = balance+50 where KontoID = 'B'; -- T1 wird beendet und die Ergebnisse festgeschrieben commit work; -- neue Transaktion T2 wird implizit geöffnet insert into Konto (KontoID, Name, balance) values ('C', 'Meyer', 0); Schestag Datenbanken (Cnam) Kapitel 7-12

13 Transaktionsmanagement Oracle Bei Oracle beginnt eine Transaktion immer mit der ersten, auszuführenden SQL-Anweisung (also implizit) und wird erfolgreich beendet durch COMMIT oder COMMIT WORK. Bricht die Transaktion mit einer Fehlermeldung ab, so spricht man (grundsätzlich) von einem ABORT. Nach jeder einzelnen DDL-Anweisung erfolgt immer(!) ein implizites COMMIT. Innerhalb langer Transaktionen können Savepoints gesetzt werden, die die Transaktion in kleine, atomare Einheiten unterteilen. Im Fehlerfall kann auf jeden deklarierten Savepoint innerhalb der Transaktion zurückgesetzt werden. Syntax: savepoint S1; Schestag Datenbanken (Cnam) Kapitel 7-13

14 Transaktionsmanagement Das Transaktionskonzept Konkurrierende Zugriffe und Sperren (Concurrency und Locking) JDBC Teil II: Transaktionsmanagement Wiederherstellung der Daten (Recovery) und Backupstragien Schestag Datenbanken (Cnam) Kapitel 7-14

15 Concurrency-Konflikte: Lost Update Beim Zugriff mehrerer Transaktionen auf die gleichen Daten (konkurrierende Zugriffe concurrency) können unterschiedliche Kategorien von Konflikten auftreten. Den folgenden Szenarien liegen die Daten eines Flugbuchungssystems zugrunde (x bezeichne jeweils den aktuellen Wert der Spalte AnzahlFreieSitzplätze) : Lost update Zeit T1: read x=100 T1: buche 1 Platz: x:=x-1=99 T1: update... set x = 99; Flugnr LH 4225 T2: read x=100 AnzahlFreieSitzplätze 100 ( 99 ) 98 T2: buche 2 Plätze: x:=x-2=98 T2: update... set x = 98; Insgesamt wurden 3 Plätze gebucht, die Anzahl der vorhandenen Plätze hat sich jedoch nur um 2 reduziert! Wie kann diese Inkonsistenz vermieden werden? Schestag Datenbanken (Cnam) Kapitel 7-15

16 Concurr.-Konflikte: Uncommited Dependency Uncommited Dependency Nicht freigegebene Änderungen Einer Transaktion T2 wird lesender Zugriff auf Daten erlaubt, die von einer Transaktion T1 verändert, aber noch nicht festgeschrieben wurden, also uncommited sind. Transaktion T2 ist somit von Transaktion T1 abhängig (dependent), es erfolgt u. U. ein so genanntes Dirty Read. Flugnr LH 4225 AnzahlFreieSitzplätze 100 ( ) Zeit T1: read x=100 T1: buche 1 Platz: x:=x-1=99 T1: update... set x = 99; T1: rollback T2: read x=99 T2: buche 2 Plätze: x:=x-2=97 T2: update... set x = 97; Welcher Konflikt ist nun entstanden? Schestag Datenbanken (Cnam) Kapitel 7-16

17 Concurr.-Konflikte: Nonrepeatable Read Nonrepeatable Read nicht wiederholbares Lesen Eine Transaktion T1 erwartet in zwei aufeinander folgenden Leseoperationen auf dem gleichen Datum den gleichen Wert. T2 ändert zwischen diesen beiden lesenden Zugriffen den Wert: Flugnr LH 4225 AnzahlFreieSitzplätze T1: read x=100 T1: read x=99 T2: read x=100 T2: buche 1 Platz: x:=x-1=99 T2: update... set x = 99; Zeit Innerhalb der selben Transaktion wurden für ein Feld, das von dieser Transaktion nicht verändert wurde(!), unterschiedliche Werte gelesen. Schestag Datenbanken (Cnam) Kapitel 7-17

18 Concurrency-Konflikte: Phantom Read Phantom Read das Problem des Phantoms (Inconsistent Analysis) Eine Transaktion T1 analysiert Daten auf einem Datenbestand, während von einer Transaktion T2 ein neuer Datensatz eingefügt wird, der von T1 eigentlich hätte mitberücksichtigt werden müssen. T1 zählt (auf der Variablen count) die Anzahl derjenigen Flüge, die noch nicht ausgebucht sind: Zeit T1: count = 0 T1: read LH 4225: count = 1 T1: read KL 1775: count = 1 T1: read BA 914: count = 2 ( 3) Flugnr LH 4225 AF 1018 KL 1775 BA 914 AnzahlFreieSitzplätze T2: insert into... values ('AF 1018',150,...); Schestag Datenbanken (Cnam) Kapitel

19 Sperrkonzepte (1) Um die geschilderten Probleme beim konkurrierenden Zugriff mehrerer Transaktionen auf die gleichen Daten zu verhindern, benutzen die meisten Datenbanksysteme Locking-Mechanismen (Sperr-Mechanismen), die es im Zusammenhang mit geeigneten Isolation-Leveln (s. u.) ermöglichen, die genannten Probleme zu vermeiden oder einzuschränken: Locks (Sperren) dienen dazu, anderen Transaktionen solange keinen lesenden und / oder schreibenden Zugriff auf die bearbeiteten Tupel einer aktuellen Transaktion zu ermöglichen, bis die aktuelle Transaktion ein commit oder rollback gegeben hat. Im allgemeinen unterscheidet man zwei Arten von Locks: S-Locks = shared-locks, auch read-locks genannt, und X-Locks = exclusive-locks, auch write-locks genannt. Schestag Datenbanken (Cnam) Kapitel 7-19

20 Sperrkonzepte (2) S-Lock Besitzt eine Transaktion A einen S-Lock auf dem Tupel t, so bewirkt dies: Ein weiterer S-Lock für eine Transaktion B wird zugelassen, anschließend haben beide Transaktionen S-Locks auf t. Alle angeforderten X-Locks anderer Transaktionen werden zurückgewiesen, bis alle S-Locks auf Tupel t wieder freigegeben sind. Hierdurch wird gewährleistet, dass die Daten während des lesenden Zugriffs nicht verändert werden können. X-Lock Besitzt eine Transaktion A einen X-Lock auf dem Tupel t, so bewirkt dies: Alle angeforderten S-Locks anderer Transaktionen werden zurückgewiesen. Alle angeforderten X-Locks anderer Transaktionen werden zurückgewiesen. S X S X Schestag Datenbanken (Cnam) Kapitel 7-20

21 Dead Lock (1) Haben zwei Transaktionen A und B Ressourcen gesperrt, auf deren Freigaben sie jeweils warten, um einen X-Lock zu fordern, so entsteht ein Dead Lock. Beispiel Dead Lock time transact. operation 1 T1 X/S-lock t1 2 T2 X/S-lock t2 3 T1 X-lock t2 4 T2 X-lock t1 wird angefordert wait wird angefordert wait Ein vom DBMS erkannter Dead Lock wird dadurch aufgelöst, dass eine der beteiligten Transaktionen abgebrochen wird. Im allgemeinen gibt es eine maximale Wartezeit für Transaktionen in jedem DBMS. Ist diese maximale Wartezeit überschritten (Time Out), so wird die entsprechende Transaktion ebenfalls abgebrochen (kein Dead Lock!), um die entsprechenden Sperren freizugeben (Aufhebung von Locks). Schestag Datenbanken (Cnam) Kapitel 7-21

22 Dead Lock (2) Dead-Lock-Situationen können durch die Untersuchung so genannter Wait-for-Graphen frühzeitig erkannt werden: Die Ecken des Graphen sind konkurrierende Transaktionen. Die gerichtete Kante zwischen zwei Ecken T1 und T2 des Graphen bedeutet, dass T1 auf die Freigabe einer Sperre durch T2 wartet. T1 T2 Wait-for-Graph für das Beispiel auf der vorhergehenden Folie Ein Dead Lock liegt genau dann vor, wenn der Graph einen geschlossenen Teilgraphen enthält. Schestag Datenbanken (Cnam) Kapitel 7-22

23 Isolationlevel Im o. g. Locking-Konzept wird für eine Transaktion gefordert, ein einmal erworbenes Locking so lange zu halten, bis ein Commit / Rollback für diese Transaktion erfolgt ist. In der Praxis führt dies i. A. zu enormen Behinderungen von Transaktionen (wait-status, Dead Locks). Aus diesem Grund ist es auch möglich, mit Hilfe spezifischer Isolation Level ein differenzierteres Sperrverhalten zu erreichen. Der Isolation Level gibt dabei an, in welchem Maß die jeweilige Sperre konkurrierenden Zugriff auf die Daten zulässt: Isolation Level Dirty Read Isolation Level (SQL 92) Nonrepeatable Read Phantom Read Read Uncommitted möglich möglich möglich Read Committed nicht möglich möglich möglich Repeatable Read nicht möglich nicht möglich möglich Serializable nicht möglich nicht möglich nicht möglich Schestag Datenbanken (Cnam) Kapitel 7-23

24 Isolationlevel bei DB2 (IBM) DB2 unterstützt genau die Isolation Level des SQL 92 Standards, allerdings mit anderen Bezeichnern: SQL set transaction [ { read only read write } ] [ isolation level { read uncommitted read committed repeatable read serializable } ] DB2 change isolation to [ { UR CS RS RR } ] Uncommitted Read Cursor Stability Read Stability Repeatable Read Schestag Datenbanken (Cnam) Kapitel 7-24

25 Isolationlevel bei Oracle DB2 unterstützt die Isolation Level read committed und serializable des SQL 92 Standards: SQL set transaction [ { read only read write } ] [ isolation level { read uncommitted read committed repeatable read serializable } ] Oracle set transaction [ { read only read write } ] [ isolation level { read committed serializable } ] Isolation Level innerhalb einer Session ändern: alter session set isolation_level Isolationsebene; Durch eine Multiversionen-Synchronisation (multiversion concurrency control, MVCC) ist es in Oracle IMMER möglich, auf den zuletzt committeten Zustand eines Datenobjektes zuzugreifen vgl. auch Praktikum 6! MVCC ist ebenfalls in PostgreSQL implementiert. Schestag Datenbanken (Cnam) Kapitel 7-25

26 Transaktionsmanagement Das Transaktionskonzept Konkurrierende Zugriffe und Sperren (Concurrency und Locking) JDBC Teil II: Transaktionsmanagement Wiederherstellung der Daten (Recovery) und Backupstragien Schestag Datenbanken (Cnam) Kapitel 7-26

27 JDBC und Transaktionsmanagement Isolation Level und JDBC Der Isolation Level kann für eine Connection explizit gesetzt werden. Unterstützt ein Treiber den in der Methode settransactionisolation(level) übergebenen Level nicht, so darf er eine restriktivere Ebene verwenden. Unterstützt er keine restriktivere Ebene, so wird eine Ausnahme vom Typ SQLException erzeugt. Isolation Level sollten nie innerhalb einer Transaktion, sondern stets nur zwischen zwei Transaktionen geändert werden. void void settransactionisolation(int level) level) throws throws SQLException; SQLException; Konstanten des Connection-Interfaces TRANSACTION_NONE TRANSACTION_READ_UNCOMMITTED TRANSACTION_READ_COMMITTED TRANSACTION_REPEATABLE_READ TRANSACTION_SERIALIZABLE -- Beispiel: Isolation Level Serializable wird für die gesamte Session gesetzt con.settransactionisolation(connection.transaction_serializable); Schestag Datenbanken (Cnam) Kapitel 7-27

28 JDBC und das Connection-Interface Steuerung des Transaktionsverhalten der Datenbank durch weitere Methoden des Interface Connection: void commit( ) void rollback( ) void setautocommit(boolean autocommit) Nach dem Aufbau der Verbindung ist die Datenbank gemäß JDBC-Spezifikation zunächst im Auto-Commit-Modus, d.h. jede einzelne Anweisung wird als eigene Transaktion angesehen, die nach Ende des Kommandos automatisch bestätigt wird (commit). Eine Änderung kann erreicht werden durch Aufruf von setautocommit mit Übergabe von false. Danach müssen alle Transaktionen explizit durch Aufruf von commit bestätigt bzw. durch rollback zurückgesetzt werden. Nach Abschluss einer Transaktion beginnt automatisch die nächste. Schestag Datenbanken (Cnam) Kapitel 7-28

29 JDBC und das Interface ResultSetMetaData Die Methode getmetadata des Interfaces ResultSet liefert ein Objekt vom Typ ResultSetMetaData zur selektierten Datenmenge. Dieses Objekt kapselt Meta-Informationen zur selektierten Ergebnismenge, z.b. int getcolumncount( ) String getcolumnname(int column) String gettablename(int column) int getcolumntype(int column)... Anzahl der Spalten Name einer Spalte Name einer Tabelle Datentyp einer Spalte Schestag Datenbanken (Cnam) Kapitel 7-29

30 JDBC und das Interface DatabaseMetaData Die Methode getmetadata des Interfaces Connection liefert ein Objekt vom Typ DatabaseMetaData zur aktiven Verbindung. Dieses Objekt kapselt Meta-Informationen zur aktiven Verbindung, die in die folgenden Kategorien unterteilt werden können: Informationen zur Datenbank Informationen zu unterstützten Features Informationen zu Beschränkungen des Treibers Informationen aus dem Systemkatalog Mit Hilfe der Methode supporttransactionisolationlevel des DatabaseMetaData-Objektes kann z.b. abgefragt werden, ob eine Datenbank einen bestimmten Isolation Level unterstützt oder nicht. Schestag Datenbanken (Cnam) Kapitel 7-30

31 Transaktionsmanagement Das Transaktionskonzept Konkurrierende Zugriffe und Sperren (Concurrency und Locking) JDBC Teil II: Transaktionsmanagement Wiederherstellung der Daten (Recovery) und Backupstragien *) *) Ein Teil des Folienmaterials aus diesem Abschnitt stammt aus dem DB-Skript der Kollegin Uta Störl. Schestag Datenbanken (Cnam) Kapitel 7-31

9 Transaktionskonzept

9 Transaktionskonzept 9 Transaktionskonzept Transaktionskonzept 9.1 Das Transaktionskonzept 9.2 Concurrency & Locking 9.3 Recovery 9.4 JDBC Teil II 9.4.1 Transaktionsmanagement 9.4.2 Objektrelationale Konzepte Schestag Datenbanken

Mehr

fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1

fbi h_da Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1 Datenbanken Kapitel 7: Transaktionsmanagement Schestag Datenbanken (Cnam) Kapitel 7-1 Transaktionsmanagement Inhalte des Kapitels Das Transaktionskonzept Konkurrierende Zugriffe und Sperren (Concurrency

Mehr

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

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Datenbanken II Literatur

Datenbanken II Literatur Datenbanken II Literatur C. J. Date: An Introduction to Database Systems; Addison-Wesley Systems Programming Series. 6th ed. 1995 H. E. Erbs, S. Karczewski und I. Schestag: Datenbanken (Datenmodelle, Objekte,

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung VU Datenbanksysteme vom 21.10. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung

Mehr

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Datenbanken Konsistenz und Mehrnutzerbetrieb III Datenbanken Konsistenz und Mehrnutzerbetrieb III 1. Oracle Architektur! Komponenten des Oracle Servers! Zugriff über Netzwerk 2. Zugriffsrechte! Starten und Schließen der Datenbank! Nutzer und Rollen!

Mehr

Software-Engineering und Datenbanken

Software-Engineering und Datenbanken Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.

Mehr

Datenbankadministration

Datenbankadministration Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion

Mehr

Inhaltsverzeichnis. Inhaltsverzeichnis

Inhaltsverzeichnis. Inhaltsverzeichnis Inhaltsverzeichnis Das Script für die Lehrveranstaltung Datenmanagement wurde im Wintersemester 2007/2008 komplett überarbeitet und neu strukturiert. Wir bitten darum, eventuelle Fehler im Script an Milan

Mehr

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion

Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion 12. Transaktionen Beispielszenarien Transaktionsbegriff Probleme im Mehrbenutzerbetrieb Serialisierbarkeit Sperrprotokolle zur Synchronisation Isolationsebenen in SQL Platzreservierung für Flüge quasi

Mehr

Datenintegrität und Transaktionskonzept

Datenintegrität und Transaktionskonzept und Transaktionskonzept 1. / Datenkonsistenz 1 Mögliche Gefährdung der : Missachtung von Konsistenzbedingungen ("Semantische Integrität") Inkorrekte Verweise auf Datensätze in verschiedenen Tabellen ("Referentielle

Mehr

3.6 Transaktionsverwaltung

3.6 Transaktionsverwaltung 3.6 Transaktionsverwaltung Transaktionen erlauben Bündelung von Operationen und gelten als wichtigster Beitrag des Bereichs Datenbanken zur Informatik; sie werden heute auch außerhalb von Datenbanksystemen

Mehr

Datenbanken: Transaktionskonzept und Concurrency Control

Datenbanken: Transaktionskonzept und Concurrency Control Wesentlich für das Arbeiten mit Datenbanken sind konsistente Datenbestände! Folgerung: es muss sichergestellt werden, dass Datenmanipulationen von Benutzern immer in einem erneut konsistenten Zustand der

Mehr

In diesem Abschnitt stehen Transaktionen im Mittelpunkt. Hierbei geht es darum, wie bei Mehrbenutzerbetrieb die Integrität von Datenbanken

In diesem Abschnitt stehen Transaktionen im Mittelpunkt. Hierbei geht es darum, wie bei Mehrbenutzerbetrieb die Integrität von Datenbanken In diesem Abschnitt stehen Transaktionen im Mittelpunkt. Hierbei geht es darum, wie bei Mehrbenutzerbetrieb die Integrität von Datenbanken gewährleistet wird. 1 Im einzelnen geht es in diesem Abschnitt

Mehr

Transaktionsverwaltung

Transaktionsverwaltung Transaktionsverwaltung Commit Eigenschaften von Transaktionen (ACID) Transaktionen in SQL Kapitel 9 1 Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand

Mehr

Transaktionen in Praxis. Dr. Karsten Tolle Vorl

Transaktionen in Praxis. Dr. Karsten Tolle Vorl Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction

Mehr

Kapitel 2 Transaktionsverwaltung

Kapitel 2 Transaktionsverwaltung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 2 Transaktionsverwaltung Vorlesung: PD Dr. Peer

Mehr

Transaktionen und Synchronisation konkurrierender Zugriffe

Transaktionen und Synchronisation konkurrierender Zugriffe Transaktionen und Synchronisation konkurrierender Zugriffe Fragestellungen Aufgaben des Transaktionsmanagers Aktivieren von Transaktionen entsprechend den Anforderungen von Anwendungsprogrammen. Dabei

Mehr

Isolationsstufen für Transaktionen. Dr. Karsten Tolle

Isolationsstufen für Transaktionen. Dr. Karsten Tolle Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)

Mehr

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

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Transaktionen Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Motivation ACID-Eigenschaften Übersicht Transaktionen Motivation ACID-Eigenschaften Ursachen für Logging und Backup

Mehr

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

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14 Literatur und Quellen Datenbanken Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg Wintersemester 2013/14 Lektüre zu den Themen : Kapitel 9 () aus Kemper und Eickler:

Mehr

View. Arbeiten mit den Sichten:

View. Arbeiten mit den Sichten: View "individuelle Sicht" (vgl. 3-Schichten-Modell) virtuelle Tabellen: in der DB wird nicht deren Inhalt, sondern nur die Ableitungsregel gespeichert. Arbeiten mit den Sichten: Anfragen: kein Problem.

Mehr

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

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

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

P.A. Bernstein, V. Hadzilacos, N. Goodman TRANSAKTIONEN UND DATENINTEGRITÄT Concurrency Control and Recovery in Database Systems P.A. Bernstein, V. Hadzilacos, N. Goodman Addison Wesley, 1987. Kapitel 1. und 6. Grundlagen der Datenbanksysteme

Mehr

9.4.1 JDBC und Transaktionsmanagement

9.4.1 JDBC und Transaktionsmanagement 9.4.1 JDBC und Transaktionsmanagement Isolation Level und JDBC Der Isolation Level kann für eine Connection explizit gesetzt werden. Unterstützt ein Treiber den in der Methode settransactionisolation(level)

Mehr

Datenbanksysteme I Transaktionsmanagement. 20.6.2011 Felix Naumann

Datenbanksysteme I Transaktionsmanagement. 20.6.2011 Felix Naumann Datenbanksysteme I Transaktionsmanagement 20.6.2011 Felix Naumann Motivation - Transaktionsmanagement 2 Annahmen bisher Isolation Nur ein Nutzer greift auf die Datenbank zu Lesend Schreibend In Wahrheit:

Mehr

Synchronisation in Datenbanksystemen in a nutshell

Synchronisation in Datenbanksystemen in a nutshell Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.

Mehr

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

Recovery- und Buffermanager

Recovery- und Buffermanager Recovery- und Buffermanager Gesamtübersicht der Komponenten beim Zusammenspiel des lokalen Recovery Manager und des Datenbank Buffer Manager: persistenter Log Main memory Lokaler Recovery Manager (LRM)

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

Mehr

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

Transaktionskonzept Eine Transaktion ist eine Folge von Operationen mit folgenden ACID Eigenschaften: Atomicity: Es werden alle Operationen oder gar k Transaktionsverwaltung 1. Schnellkurs: Serialisierbarkeit, Isolationslevel, Synchronisationsverfahren, Savepoints, Logging, Implementierungsaspekte! Harder, Rahm Buch 2. Erweiterte Transaktionskonzepte!

Mehr

Datenbankanwendungen (JDBC)

Datenbankanwendungen (JDBC) Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau

Mehr

Kapitel 3 Synchronisation

Kapitel 3 Synchronisation LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 3 Synchronisation Vorlesung: PD Dr. Peer Kröger

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Kapitel 10 Mehrbenutzersynchronisation 381 / 520 Mehrbenutzersynchronisation Alle TAs strikt seriell (also nacheinander) auszuführen ist sicher, aber langsam Oft werden Systemressourcen nicht voll ausgenutzt,

Mehr

Transaktionen: Wiederholung und Vertiefung

Transaktionen: Wiederholung und Vertiefung Wirtschaftsinformatik II Datenorganisation Datenbanken - Kommunikation Transaktionen: Wiederholung und Vertiefung 7. Datenbankorganisation 7.1. Architektur und Klassifizierung von Datenbanksystemen 7.2

Mehr

Kapitel 15. Transaktionen, Fehlerbehandlung, Multi-User. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

Kapitel 15. Transaktionen, Fehlerbehandlung, Multi-User. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 15 Transaktionen, Fehlerbehandlung, Multi-User 1 Transaktionen, Fehlerbehandlung, Multi-User Transaktionskonzept Fehlerbehandlung Mehrbenutzersynchronisation 2 Transaktionen Warum? Beispiel 1 Was

Mehr

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs 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

Mehr

Vorlesung Informationssysteme

Vorlesung Informationssysteme Saarbrücken, 25.06.2015 Information Systems Group Vorlesung Informationssysteme Vertiefung Kapitel 8: Transaktionen und wann sie gebraucht werden Erik Buchmann (buchmann@cs.uni-saarland.de) Foto: M. Strauch

Mehr

PostgreSQL im praktischen Einsatz. Stefan Schumacher

PostgreSQL im praktischen Einsatz. Stefan Schumacher PostgreSQL im praktischen Einsatz 2. Brandenburger Linux Infotag 2005 Stefan Schumacher , PGP Key http:/// $Header: /home/daten/cvs/postgresql/folien.tex,v 1.11 2005/04/25

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Anmerkungen/Ankündigungen 1. Bemerkung/Klarstellung zur automatischen Erkennung von Endlosrekursion

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

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

Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München Transaktions-Konzept (1) Beispiel: op 1 BOT op 2 read(k 1

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Kapitel 8: Transaktionen

Kapitel 8: Transaktionen Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2006/2007 Vorlesung: Dr. Peer Kröger Übungen: Karsten

Mehr

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock Übung Datenbanksysteme I Transaktionen, Selektivität und XML Thorsten Papenbrock Übersicht: Übungsthemen 2 Transaktionen Selektivität XML Thorsten Papenbrock Übung Datenbanksysteme I JDBC Transaktionen:

Mehr

Mehrbenutzersynchronisation

Mehrbenutzersynchronisation Mehrbenutzersynchronisation Ausführung der drei Transaktionen T 1, T 2 und T 3 : (a) im Einzelbetrieb und Zeitachse T 1 T2 T 3 (b) im (verzahnten) Mehrbenutzerbetrieb (gestrichelte Linien repräsentieren

Mehr

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 9 Embedded SQL Vorlesung Datenbanken 1 Embedded SQL (siehe auch [Date00]) Arbeitsweise ähnlich PL/SQL, allerdings: Normale Programmiersprache mit eingestreuten SQL-Befehlen und anderen Befehlen

Mehr

10 Transaktionen Änderungen verwalten

10 Transaktionen Änderungen verwalten Eindruck eines Einnutzer- Systems Datenbanken werden meist von vielen Nutzern fast gleichzeitig genutzt. Dieses Kapitel zeigt Ihnen die möglichen Gefahren und Lösungsansätze. In den bisherigen Kapiteln

Mehr

1. Transaktionskonzept

1. Transaktionskonzept 1. Transaktionskonzept Ein wesentliches Charakteristikum für (relationale) Datenbanksysteme stellt die Unterstützung des Transaktions-Konzepts dar. Transaktionen sind Verarbeitungseinheiten, die vom DBMS

Mehr

Transaktionsverarbeitung

Transaktionsverarbeitung Transaktionsverarbeitung Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Mechanismen zur Umsetzung von Transaktionen Einbettung

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Isolationslevel in SQL

Isolationslevel in SQL Isolationslevel in SQL Zu den ACID-Eigenschaften von Transaktionen gehört auch das I, also Isolation. Streng genommen versteht man unter Isolation, dass eine Transaktion unbeeinflusst durch andere Transaktionen

Mehr

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 6 Locks & Latches Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. Einführung Locks & Latches 2. Locks (Sperren) 3. Modi & Levels

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Kommunikation und Datenhaltung Transaktionsverwaltung Überblick über den Datenhaltungsteil Motivation und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen Relationenmodell und Relationenalgebra

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

Mehr

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

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I

8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I 8. Transaktionsverarbeitung Architektur von Datenbanksystemen I Einordnung ARCHITEKTUR VON DATENBANKSYSTEMEM I - Key/Value Store - Row Store - Column Store - Data Compression - Transaction Processing -

Mehr

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

Darunter versteht man die Anmeldung eines Benutzers beim System unter Angabe einer Benutzererkennung. Datenmanagement 60 5 Datenschutz und Datensicherheit 5.1 Datenschutz Wer wird hier geschützt? Personen Ein anderer Begriff für Datenschutz ist Zugriffskontrolle. Datenschutz soll sicherstellen, dass alle

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 2 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

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

Teil I Einführung & Grundlagen. 1.1 Was ist eine Transaktion? Teil I Einführung & Grundlagen Kapitel 1: Einführung in das Transaktionskonzept 1.1 Was ist eine Transaktion? 1.2 Transaktionseigenschaften 1.3 Beispiele Datenbanktransaktionen: Banküberweisung Moderne

Mehr

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17

Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren zum Data Science-Synchronisationsmodul Datenbanken WS 2016/17 Testklausur 1 Übungsaufgaben aus alten Datenbanken 1 Klausuren Aufgabe 1 10 = 5 + 5 Punkte) DDL Relationenmodell eer-diagramm /10) Gegeben sei das folgende SQL-DDL-Skript zur Generierung eines Oracle-Datenbankschemas:

Mehr

Atomare Commit-Protokolle. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Atomare Commit-Protokolle Folie 1

Atomare Commit-Protokolle. Grundlagen von Datenbanken - SS Prof. Dr. Stefan Böttcher Atomare Commit-Protokolle Folie 1 Atomare Commit-Protokolle Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher Atomare Commit-Protokolle Folie 1 Atomares Commit-Protokoll Bisher: Protokolle zur lokalen Transaktionsverwaltung

Mehr

1 Referentielle Aktionen

1 Referentielle Aktionen 1 Referentielle Aktionen Betrachten Sie das folgende Datenbankschema: Person(Vorname, Nachname, DOB, Wohnort, Lieblingsfilm Film.IMDb-ID, Videothek Videothek.VID) Film(IMDb-ID, Titel, (ProduzentVN, ProduzentNN)

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

Mehr

Verteilte Systeme. Verteilte Systeme. 7 Koordination SS 2017

Verteilte Systeme. Verteilte Systeme. 7 Koordination SS 2017 Verteilte Systeme SS 2017 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 26. Juni 2017 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/12) i

Mehr

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen

Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen 9. Transaktionsverwaltung Der Scheduler Architektur der Transaktionsverwaltung Sperrende und nicht-sperrende Verfahren Transaktionen in SQL-Systemen Transaktionsmonitore T 1 T T 2 n Transaktions- Manager

Mehr

Oracle & Java HOW TO

Oracle & Java HOW TO Oracle & Java HOW TO Helge Janicke, Niels-Peter de Witt, Karsten Wolke 21. Januar 2002 Inhaltsverzeichnis 1 Java-Anbindung an Oracle-DB 2 2 Benötigte Programme und Daten 2 3 Einbinden der Klassen 2 4 Aufbau

Mehr

Dr. H. Schuldt. Das Ziel dieser Ubung ist die Untersuchung, wie die in der Vorlesung vorgestellten

Dr. H. Schuldt. Das Ziel dieser Ubung ist die Untersuchung, wie die in der Vorlesung vorgestellten Dr. H. Schuldt Eidgenossische Technische Hochschule Zurich Swiss Federal Institute of Technology Zurich Transaktionsverwaltung in modernen IS Praktische Ubung 1 Beispiellosung Einleitung Das Ziel dieser

Mehr

Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation

Serialisierbarkeit von Historien: Minimalanforderung bzgl. akzeptabler Synchronisation Rücksetzbarkeit Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation von Transaktionen zusätzliche Forderung: lokale Rücksetzbarkeit von Historien, d.h. Jede Transaktion

Mehr

Kapitel 12 Integrität der Datenbank

Kapitel 12 Integrität der Datenbank Kapitel 12 Integrität der Datenbank 12 Integrität der Datenbank 12 Integrität der Datenbank...1 12.1 Aspekte des Integritätsproblems...3 12.2 Semantische Integrität...4 12.3 Das Konzept der Transaktion...6

Mehr

5. Transaktionsverarbeitung

5. Transaktionsverarbeitung 5. Transaktionsverarbeitung 5.1. Einführung Viele Anwendungsprogramme / interaktive Benutzer arbeiten gleichzeitig (konkurrierend) auf gemeinsamer Datenbank (mit den gleichen Daten). Notwendigkeit: Abwicklung

Mehr

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

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig) 1 Grundlagen Begriffe Daten bekannte zutreffende Tatsachen über die Domäne/Miniwelt DBS Einsatz eines DBMS für eine Datenbank, DBS besteht aus folgenden Komponenten: 1. DBMS 2. Datenbank DBMS Software

Mehr

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

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank Techniken der Schedule-Realisierung T 1 T 2 T 3.... T n Isolations-Eigenschaft wird durch den Scheduler sichergestellt. Aufgabe: : Koordination des Ablaufs konkurrierender Transaktionen so, dass deren

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 13 Übung zur Vorlesung Grundlagen: Datenbanken im WS14/15 Harald Lang (harald.lang@in.tum.de) http://www-db.in.tum.de/teaching/ws1415/grundlagen/

Mehr

Mehrbenutzer-Synchronisation

Mehrbenutzer-Synchronisation MehrbenutzerSynchronisation KonfliktKategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Mehrbenutzersynchronisation Ausführung der drei Transaktionen,

Mehr

Teil VIII Transaktionen, Integrität und Trigger

Teil VIII Transaktionen, Integrität und Trigger page.1 Teil VIII Transaktionen, Integrität und Trigger page.2 Transaktionen, Integrität und Trigger Transaktionen, Integrität und Trigger 1 Grundbegriffe 2 Transaktionsbegriff 3 Transaktionen in SQL 4

Mehr

9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1

9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1 9. Transaktionsverwaltung 9.3. Fehlerbehandlung Seite 1 9.3 Fehlerbehandlung Im realen Betrieb eines Datenbanksystems muss mit Fehlersituationen gerechnet werden. Transaktionsfehler: Hierunter verstehen

Mehr

Mehrbenutzer-Synchronisation

Mehrbenutzer-Synchronisation Mehrbenutzer-Synchronisation Konflikt-Kategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Kapitel 11 1 Mehrbenutzersynchronisation Ausführung

Mehr

Eine umfangreiche Darstellung findet sich zum Beispiel in [MeSi02].

Eine umfangreiche Darstellung findet sich zum Beispiel in [MeSi02]. Transaktionen 2 In betrieblichen Anwendungen sind die Daten häufig unternehmensweit mindestens jedoch abteilungsweit organisiert, und die Nutzer haben Zugriff über ein lokales Netzwerk oder über das Internet.

Mehr

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

Prakt. Datenbankprogrammierung. Sommersemester I,9: Datenmanipulation. Daten-Manipulations-Sprache. Das INSERT-Statement Prakt. Datenbankprogrammierung Sommersemester 2005 I,9: Datenmanipulation Daten-Manipulations-Sprache DML-Statements werden ausgeführt bei: Hinzufügen von Datensätzen Modifizieren von Datensätzen Löschen

Mehr

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL

Datenbanken und SQL. Kapitel 8. Concurreny und Recovery. Edwin Schicker: Datenbanken und SQL Datenbanken und SQL Kapitel 8 Concurreny und Recovery Concurrency und Recovery Transaktionen Recovery Einführung in die Recovery Logdateien Checkpoints Conncurrency Sperrmechanismen Deadlocks SQL-Norm

Mehr

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )

Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( ) Transaktionsverarbeitung und Nebenläufigkeitskontrolle Jim Gray (1944-2007) Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand von A in die Variable

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe14 Moritz Kaufmann (moritz.kaufmann@tum.de)

Mehr

6.3 Verteilte Transaktionen

6.3 Verteilte Transaktionen 6.3 Verteilte Transaktionen Situation: Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.b. verteilte Datenbank, verteiltes Dateisystem,...) d.h. in Fragmente aufgeteilt, für die

Mehr

TAV Übung 3. Übung 3: Verteilte Datenhaltung

TAV Übung 3. Übung 3: Verteilte Datenhaltung Übung 3: Verteilte Datenhaltung 1. Serialisierung Konstruieren Sie Historien aus drei Transaktionen T1, T2 und T3, die folgende Merkmale aufweisen: 1. Die serielle Reihenfolge ist T1 vor T2 vor T3. 2.

Mehr

Kapitel 10: Transaktionen und Datenintegrität

Kapitel 10: Transaktionen und Datenintegrität 1 Kapitel 10: Transaktionen und Datenintegrität Ein DBMS hat die Korrektheit des Datenbankzustandes unter realen Benutzungsbedingungen zu wahren. Dazu gehören die folgenden Punkte: Datensicherheit (Recovery)

Mehr

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Datenbanken SQL-Grundlagen JDBC SQL-Constraints 2 / 26 Relationale Datenbanken Ein Datenbanksystem ist ein System zur

Mehr

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

Gliederung Datenbanksysteme

Gliederung Datenbanksysteme Gliederung Datenbanksysteme 5. Datenbanksprachen 1. Datendefinitionsbefehle 2. Datenmanipulationsbefehle 3. Grundlagen zu SQL 6. Metadatenverwaltung 7. DB-Architekturen 1. 3-Schema-Modell 2. Verteilte

Mehr

Konfliktgraph. Satz und Definition

Konfliktgraph. Satz und Definition 9. Transaktionsverwaltung 9.2. Mehrbenutzerkontrolle Seite 1 Konfliktgraph Der Konfliktgraph von S ist ein gerichteter Graph KG(S) = (V, E), wobei V die Menge aller Transaktionen in S und E die Menge der

Mehr

Daten- und Transaktionskontrolle mit SQL DCL, TCL

Daten- und Transaktionskontrolle mit SQL DCL, TCL Daten- und Transaktionskontrolle mit SQL DCL, TCL 1 Zugriffsrechte für Datenbankobjekte Zugriff zu einer Relation (inkl. Daten) mit allen Rechten hat zunächst nur der Benutzer, der sie erzeugt hat Situation

Mehr

10. Updates in SQL 10-1 Teil 10: Updates in SQL. Literatur:

10. Updates in SQL 10-1 Teil 10: Updates in SQL. Literatur: 10. Updates in SQL 10-1 Teil 10: Updates in SQL Literatur: Elmasri/Navathe:Fundamentals of Database Systems, 3rd Edition, 1999. Chap. 8, SQL The Relational Database Standard Kemper/Eickler: Datenbanksysteme

Mehr

10. Übungsblatt. Für die Übung am Donnerstag, 15. Januar 2009, von 15:30 bis 17:00 Uhr in 13/222.

10. Übungsblatt. Für die Übung am Donnerstag, 15. Januar 2009, von 15:30 bis 17:00 Uhr in 13/222. AG Datenbanken und Informationssysteme Wintersemester 2008 / 2009 Prof. Dr.-Ing. Dr. h. c. Theo Härder Fachbereich Informatik Technische Universität Kaiserslautern http://wwwlgis.informatik.uni-kl.de/cms

Mehr

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken

Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Intelligente Datenbanken Unzulänglichkeiten der ANSI-SQL-Isolationslevel [1] Ausarbeitung zum Seminar Intelligente Datenbanken im Sommersemester 2005 Fabian Klingbeil Universität Bonn Institut für Informatik III am 19.7.2005 Seminar

Mehr

Teil IX Transaktionen, Integrität und Trigger

Teil IX Transaktionen, Integrität und Trigger Teil IX Transaktionen, Integrität und Trigger Transaktionen, Integrität und Trigger 1 Grundbegriffe 2 Transaktionsbegriff 3 Transaktionen in SQL 4 Integritätsbedingungen in SQL 5 Trigger 6 Schemaevolution

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist Herstellerabhängig

Mehr