Transaktionen
This commit is contained in:
parent
f7a156defd
commit
d712457fa2
Binary file not shown.
@ -225,7 +225,7 @@
|
||||
\item Anfrage enthält Platzhalter für Werte
|
||||
\item Analyse, Ausführungsplanerstellung und weiteres wird sofort durchgeführte
|
||||
\item JDBC: \begin{itemize}
|
||||
\item \texttt{PreparedStatement prep = con.prepareStatement("INSERT ... VALUES (?,?))}
|
||||
\item \texttt{PreparedStatement prep = con.prepareStatement("INSERT \textellipsis VALUES (?,?))}
|
||||
\item Setzen der Werte mittels \texttt{void setDATENTYP(int paramId, DATENTYP val)}
|
||||
\item Ausführung mit \texttt{prep.executeUpdate()}
|
||||
\end{itemize}
|
||||
@ -241,4 +241,39 @@
|
||||
\end{itemize}
|
||||
\item \begriff{O/R-Mapping} bildet Objekte der Programmiersprace (meist durch Annotationen) auf Tupel der relationalen DB ab
|
||||
\end{itemize}
|
||||
|
||||
\section{Transaktionen}
|
||||
\begin{itemize}
|
||||
\item sinnvoll für \wichtig{nebenläufigen} Zugriff
|
||||
\item erleichtern Umgang mit \begriff{Fehlern} und Ausfällen
|
||||
\item \begriff{Programmfehler}: Absturz des Datenbank-Anwendungsprogramms $\Rightarrow$ Daten im Puffer und auf Festplatte in undefiniertem Zustand
|
||||
\item \begriff{Systemfehler}: DBVS oder BS fällt aus, Hardware-Fehler, \textellipsis $\Rightarrow$ Daten im Puffer verloren, auf Festplatte in undefiniertem Zustand
|
||||
\item \begriff{Gerätefehler}: Festplattenausfall $\Rightarrow$ Daten auf Festplatte sind verloren
|
||||
\item \begriff{physische Konsistenz}: \begin{itemize}
|
||||
\item Korrektheit der Speicherungsstrukturen, Verweise und Adressen
|
||||
\item alle Indizes sind vollständig und stimmen mit Primärdaten überein
|
||||
\end{itemize}
|
||||
\item \begriff{logische Konsistenz}: \begin{itemize}
|
||||
\item Korrektheit der Inhalte
|
||||
\item Referentielle Integrität, Primärschlüsseleigenschaft und eigene Assertions sind erfüllt
|
||||
\item erfordert physische Konsistenz
|
||||
\end{itemize}
|
||||
\item Nach Fehler soll ein logisch konsistenter Zustand erreicht werden: \begin{itemize}
|
||||
\item vor Beginn der unvollständigen Änderungen durch \begriff{Rückgängigmachen} dieser (\begriff{undo})
|
||||
\item nach Abschluss aller Änderungen durch \begriff{Vervollständigung} bzw. \begriff{Wiederholung} der unvollständigen Änderungen (\begriff{redo})
|
||||
\end{itemize}
|
||||
\item \begriff{Sicherung} und \begriff{Protokollierung} \wichtig{immer} notwendig
|
||||
\item \begriff{Transaktion} als \begriff{logische Einheit} einer Folge von DB-Operationen (von einem logisch konsistenten Zustand zum nächsten): \begin{itemize}
|
||||
\item bei Fehler vor Ende: Rückgängigmachen der bisher durchgeführten Änderungen
|
||||
\item bei Fehler nach Ende: kein Problem
|
||||
\item Anfang meist implizit (oder \begriff{begin})
|
||||
\item Ende durch \begriff{\wichtig}{commit} (Änderungen sollen durchgeführt werden) bzw. \begriff{abort} (Änderungen sollen verworfen werden)
|
||||
\end{itemize}
|
||||
\item \begriff{ACID}-Eigenschaften einer Transaktion: \begin{itemize}
|
||||
\item \begriff{Atomarität} (\enquote{alles oder nichts} wird ausgeführt)
|
||||
\item \begriff{Konsistenz}
|
||||
\item \begriff{Isolation} (gegenüber anderen Zugriffen auf DB)
|
||||
\item \begriff{Dauerhaftigkeit} (auch nach Fehler bleiben erfolgreiche Transaktionen bestehen)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{document}
|
Loading…
Reference in New Issue
Block a user