Databases Reference
In-Depth Information
Ein RDBMS wäre für die meisten praktischen Anwendungen unbrauchbar, wenn
es Daten wirklich auf diese Weise ändern würde. Im Laufe des Kapitels lernen wir,
dass es sehr ausgereifte Konzepte gibt, um diese Inkonsistenzen zu vermeiden.
17.2
Ein Experiment
In diesem Abschnitt überzeugen wir uns davon, dass es in einem modernen
RDBMS keine teilweise ausgeführten update -Anweisung geben kann. Wir füh-
ren dazu eine einfache praktische Übung durch und entdecken dann Transaktio-
nen als Instrument zur Erhaltung von Konsistenz.
Abbildung 17.1: Ein Ausschnitt aus der H2-Konsole
Während unserer nun folgenden Versuche brechen wir die Verbindung zur Da-
tenbank ab oder unterbrechen die Ausführung einer laufenden SQL-Anweisung.
In der H2-Konsole sind dazu, wie in Abbildung 17.1 gezeigt, in der oberen Zeile
ganz links und rechts Buttons vorgesehen.
Wir erzeugen jetzt eine Konten-Tabelle mit sehr vielen Datensätzen. Die grund-
sätzliche Vorgehensweise wurde bereits in Abschnitt 13.1 erklärt. Wir beginnen
mit einem Datensatz:
insert into konten(saldo) values(100.0)
und führen dann die Anweisungen
insert into konten(saldo)
select saldo from konten ;
select count( * ) from konten
ein paarmal aus, bis wir einige Hunderttausend Datensätze zusammenhaben. Die
zweite Anweisung soll uns davor schützen, zu viele Daten zu generieren. An-
schließend unterbrechen wir H2 bei der Ausführung von
update konten set saldo=saldo * 1.05
indem wir in der H2-Console - wie auch in Abbildung 17.1 ganz rechts zu se-
hen ist - den mit einem roten Quadrat versehenen Button drücken. Mit einem zu
Search WWH ::




Custom Search