Databases Reference
In-Depth Information
17
C H A
P
I
T
R
E
D
I
X
-
S
E
P
T
Transaktionen
Wir haben eine Datenbank als Modell eines Ausschnitts der Wirklichkeit ken-
nengelernt. Wenn sich in dieser Mini-Welt etwas ändert, dann muss auch unser
Datenbestand diese Änderungen reflektieren. Für unsere konkreten relationalen
Datenbanken stehen uns für diese Zustandsänderungen die SQL-Anweisungen
insert , update und delete zur Verfügung. Von einer einzelnen Änderung in
der Mini-Welt ist in den allermeisten Fällen mehr als ein Datensatz betroffen. Die
Änderungen dieser Datensätze müssen aber wie eine einzige Operation behan-
delt werden, um einen konsistenten Datenbestand zu gewährleisten. Wie wir Än-
derungen an Datensätzen zusammenfassen sowie die zugehörigen Probleme und
ihre Lösung sind das Thema dieses Kapitels.
17.1
Was schiefgehen kann, geht schief
Als Beispiel betrachten wir - auf das Wesentliche reduziert - eine Tabelle, mit der
wir Bankkonten verwalten:
create table konten(
id int generated always as identity primary key,
saldo decimal(10,2) check (saldo>=0)
)
Jeder Datensatz entspricht einem Konto; die Primärschlüsselspalte id entspricht
der Kontonummer, die Spalte saldo dem Kontostand, der durch eine Integritäts-
regel gegen Überziehung geschützt ist. Wenn wir 100
vom Konto mit der Num-
mer 23 auf das Konto mit der Nummer 42 überweisen wollen, benötigen wir dazu
zwei update -Anweisungen:
 
update konten set saldo=saldo-100 where id=23;
 
Search WWH ::




Custom Search