Transaktionen
This commit is contained in:
		
										
											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}
 | 
			
		||||
		Reference in New Issue
	
	Block a user