diff --git a/zusammenfassung.pdf b/zusammenfassung.pdf index 6ee84e6..e9aacec 100644 Binary files a/zusammenfassung.pdf and b/zusammenfassung.pdf differ diff --git a/zusammenfassung.tex b/zusammenfassung.tex index db8aff1..c278efd 100644 --- a/zusammenfassung.tex +++ b/zusammenfassung.tex @@ -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} \ No newline at end of file