Übung Transaktionen Dr. Christian Senger DB & IS II, SS15 21.3.2015 1) Wiederholung Durch welche 4 Prinzipien sind Transaktionen gekennzeichnet? Unter welchen Bedingungen ist man gezwungen, mehrere Datenbank-Updates in einer Transaktion zusammenzufassen. Gebe ein Beispiel dafür. Welches sind die Befehle, mit denen man eine Transaktion definiert bzw. programmiert? Erläutere sie und beschreibe jeweils, was sie tun. Du hast drei verschiedene Probleme kennen gelernt, die bei konkurrierenden Zugriffen auf eine Datenbank auftreten können. Nenne und beschreibe diese. Nenne die vier vorgestellten Isolierungslevel und erkläre was diese ermöglichen oder verhindern. 2) Eine Tabelle schlafplatz_belegung soll folgenden Felder haben: schlafplatz_id, teilnehmer_id, datum. Eine andere Tabelle freie_schlafplaetze soll die Attribute schlafplatz_id, datum, freie_plaetze haben. Erstelle die Tabellen. Setze die passenden Primärschlüssel. Schreibe die Statements auf. Fülle freie_schlafplaetze mit mind. einem Datensatz mit einer bestimmten ID a, einem Datum b, und 4 freien Plätzen. Fasse die Operationen in einer Transaktion zusammen, die nötig sind, wenn ein Teilnehmer sich zum Datum b auf dem Platz a einbucht. Schreibe die Statements auf. Öffne 2 SQL-Plus-Konsolen. Führe die Statements in einer Konsole aus, ohne COMMIT. Selektiere die Anzahl freier Plätze in der zweiten Konsole. Wie viele sind es? Buche auf der zweiten Konsole einen anderen Teilnehmer zum gleichen Tag mit den gleichen Statements ein. Was passiert? Beende die Transaktion in der ersten Konsole mit einem COMMIT. Beende die Transaktion in der zweiten Konsole mit einem ROLLBACK. Folgende Aufgabe könnt Ihr erst nach der nächsten Vorlesung lösen, oder Ihr bereitet jetzt die nächste Vorlesung (PL/SQL) vor…. Schreibe einen SQL-Codeblock, der eine Einbuchung macht, aber die Schlafplatzbelegung wieder Rückgängig macht, wenn die Anzahl freier Plätze danach < 0 ist.