Geschachtelte Transaktionen in einem DBMS

DennisXX

Bekanntes Mitglied
Hi Folks !

Kann mir vielleicht jemand von euch sagen, wann genau es wirklich Sinn macht in einem DBMS mit verschachtelten Transaktionen zu arbeiten? Oder ist das eher eine Sache, die in der Praxis wenig Relevanz hat (wie evtl. auch das gesamte Thema Transaktionen ansich)?

Greetz
Dennis
 

turtle

Top Contributor
Oder ist das eher eine Sache, die in der Praxis wenig Relevanz hat
Ja, hat in der Praxis wenig Relevanz, da viele DB diese nicht unterstützen.

(wie evtl. auch das gesamte Thema Transaktionen ansich)?
NEIN, das ist extrem wichtig!

Wenn Du als Beispiel Geld vom Konto A auf Konto B überweist, möchtest Du ja sicher sein, das beide Kontobuchungen oder keine gemacht werden. Unter keinem Umstand darf es passieren, dass nur eine Kontobuchung gemacht wird.

PS: Geschachtelte Transaktionen findet man häufiger beim Einsatz von Stored procedures. Dabei weiss die Prozedur nicht, ob beim Aufruf bereits eine Transaktion offen war oder nicht. Wie damit umgegangen wird, ist eine Sache der DB. In SQL Server beispielsweise wird ein Commit einer inneren Transaktion ignoriert, sondern auf das Verhalten der äusseren Transaktion reagiert.

Solltest Du hier andere Dinge meinen, solltest Du mehr Infos geben?
 
Zuletzt bearbeitet:

California

Aktives Mitglied
Äähm, was Du beschreibst, ist EINE Transaktion.
In einer Transaktion können beliebig viele (ok, ok, keine Millionen) DML*- Anweisungen ausgeführt werden.
Du darfst(!) bei den meisten Datenbanken nicht mehrere Transaktionen gleichzeitig öffnen.
D.h., du musst bei einer Abfolge von Anweisungen vor der ersten Anweisung eine Transaktion eröffnen und nach der letzten Anweisung der Folge die Transaktion Committen oder Rollbacken.
Es kann bei komplizierteren Anwendungen sehr schwierig werden, das manuell zu kontrollieren.

Damit Du die Pfoten nicht durcheinanderkriegst, empfiehlt sich deklaratives Transaktionsmanagement, wie z.B. in Hibernate.
Du sagst mit einer Annotation, welche Funktionen in eine Transaktion gehören, und das Framework weiss, ob es schon eine offene Transaktion gibt oder ob es eine öffnen muss und schliesst die Transaktion nach dem letzten Statement.

* DML ist der Teil von SQL, mit dem Daten geändert werden- grob das, was mit UPDATE, INSERT oder DELETE anfängt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D MySQL Transaktionen in Entity-Class Datenbankprogrammierung 15
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
G PreparedStatement und Transaktionen Datenbankprogrammierung 2
J mal wieder eine Frage zu parallelen Transaktionen.. Datenbankprogrammierung 2
F Hibernate Transaktionen Datenbankprogrammierung 2
D mysql und transaktionen... Datenbankprogrammierung 8
R Mongodb Daten in einem bestimmten Document speichern Datenbankprogrammierung 1
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
Dimax Hadoop : 2 SimpleNode cluster (eins mit windows und der andere mit opensuse) zu einem zusammenfügen. Datenbankprogrammierung 15
L SQLite Ändern der Daten in einem UNIQUE Feld Datenbankprogrammierung 1
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
S Abfrage von Gruppentickets(Mehrere Resorts an einem Tag) Datenbankprogrammierung 1
J SQL SELECT mit einem Array Datenbankprogrammierung 1
D Komplette Zeile lesen und einem Konstruktor übergeben. Datenbankprogrammierung 3
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
A Postgres, sql: Inkrementierung allgemein und bis zu einem bestimmten Wert Datenbankprogrammierung 5
Mrtwomoon Abfrage-Ergebnisse in einem Fenster darstellen Datenbankprogrammierung 8
R Derby/JavaDB Möglichkeit von einem Random Select! Datenbankprogrammierung 6
C Datenbankanbindung mit einem JButton Datenbankprogrammierung 12
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
H Select in einem Select Datenbankprogrammierung 7
M Aus einem Applet eine Datenbankverbindung starten? Datenbankprogrammierung 26
Z derby abfrage von einem Timestamp Datenbankprogrammierung 2
A Problem mit einem Select-Befehl Datenbankprogrammierung 5
H Daten aus einem DBS in ein zweites DBS überführen ? Datenbankprogrammierung 2
Y Hibernate - Hbm Files in einem separaten JAR - wie zugreifen Datenbankprogrammierung 6
V Datenbankabfrage in einem Textfeld ausgeben Datenbankprogrammierung 3
D kurze Frage zu einem Query Datenbankprogrammierung 6
G Suchen von Zahlen in einem Textfeld / SQL Server Datenbankprogrammierung 1
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
P [Hibernate] Mehrere Keys in einem <set> Datenbankprogrammierung 11
L DB Felder in einem Array speichern und wieder auslesen Datenbankprogrammierung 11
N Funktion um einen Wert in einem ResultSet zu finden ? Datenbankprogrammierung 5
L mehrere Abfragen mit einem Statement!? Datenbankprogrammierung 5
D brauche mal kurz hilfe bei einem select-stmt Datenbankprogrammierung 6
K Problem beim Einlesen von Werten aus einem Textfeld Datenbankprogrammierung 11
T Aus einem Array in Datenbank einlesen? Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben