\documentclass{bschlangaul-aufgabe}

\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 6},
  Thematik = {Vermischte Datenbank-Fragen},
  Referenz = 66116-2019-H.T2-TA2-A6,
  RelativerPfad = Examen/66116/2019/09/Thema-2/Teilaufgabe-2/Aufgabe-6.tex,
  ZitatSchluessel = examen:66116:2019:09,
  ZitatBeschreibung = {Thema 2 Teilaufgabe 2 Aufgabe 6},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Datenbank-Übersicht, Natural-Join, Equi-Join, Theta-Join, UNION, INTERSECT, EXCEPT},
  EinzelpruefungsNr = 66116,
  Jahr = 2019,
  Monat = 09,
  ThemaNr = 2,
  TeilaufgabeNr = 2,
  AufgabeNr = 6,
}

Begründen oder erläutern Sie Ihre Antworten.
\index{Datenbank-Übersicht}
\footcite[Thema 2 Teilaufgabe 2 Aufgabe 6]{examen:66116:2019:09}

\begin{enumerate}

%%
%
%%

\item Erklären Sie kurz den Unterschied zwischen einem
Natural-Join\index{Natural-Join} und einem Equi-Join\index{Equi-Join}.

\begin{bAntwort}
Ein Natural Join ist eine Kombination von zwei Tabellen, in denen
Spalten gleichen Namens existieren. Die Werte in diesen Spalten werden
sodann auf Übereinstimmungen geprüft (analog Equi-Join). Einige
Datenbanksysteme erkennen das Schlüsselwort NATURAL und eliminieren
entsprechend automatisch doppelte Spalten.

Während beim Kreuzprodukt keinerlei Anforderungen an die Kombination der
Datensätze gestellt werden, führt der Equi-Join eine solche ein: Die
Gleichheit von zwei Spalten.

\bFussnoteLink{wiki.selfhtml.org}{https://wiki.selfhtml.org/wiki/Datenbank/Einführung_in_Joins}
\end{bAntwort}

%%
%
%%

\item Erläutern Sie kurz was man unter einem
Theta-Join\index{Theta-Join} versteht.

\begin{bAntwort}
Ein Theta-Join ist eine Verbindung von Relationen bezüglich beliebiger
Attribute und mit einem Selektionsprädikat.
\bFussnoteUrl{https://www.datenbank-grundlagen.de/theta-join.html}
\end{bAntwort}

%%
%
%%

\item Was versteht man unter Unionkompatibilität? Nennen Sie drei
SQL-Operatoren welche Unionkompatibilität voraussetzen.

\begin{bAntwort}
Bestimmte Operationen der relationalen Algebra wie Vereinigung,
Schnitt und Differenz verlangen Unionkompatibilität.
Unionkompatibilität ist eine Eigenschaft des Schemas einer Relation.
Zwei Relationen $R$ und $S$ sind genau dann union-kompatibel, wenn
folgende Bedingungen erfüllt sind:

\begin{enumerate}
\item Die Relationen R und S besitzen dieselbe Stelligkeit n, \dh sie
haben die selbe Anzahl von Spalten.

\item Für alle Spalten der Relationen gilt, dass die Domäne der $i$-ten
Spalte der Relation $R$ mit dem Typ der $i$-ten Spalte der Relation $S$
übereinstimmt ($0 < i < n$).
\end{enumerate}

Die Namen der Attribute spielen dabei keine Rolle.
\bFussnoteUrl{https://studylibde.com/doc/1441274/übungstool-für-relationale-algebra}

\bPseudoUeberschrift{SQL-Operatoren mit Unionkompatibilität}

\begin{itemize}
\item UNION\index{UNION}
\item INTERSECT\index{INTERSECT}
\item EXCEPT\index{EXCEPT}
\end{itemize}
\end{bAntwort}

%%
%
%%

\item Erläutern Sie Backward und Forward Recovery und grenzen Sie diese
voneinander ab.

%%
%
%%

\item Erklären Sie das Zwei-Phasen-Freigabe-Protokoll.

%%
%
%%

\item Erläutern Sie Partial Undo / Redo und Global Undo / Redo und deren
Bedeutung für die Umsetzung des ACID-Prinzips. Geben Sie zu jeder dieser
Konzepte an, ob System-, Programm- oder Gerätefehler damit korrigiert
werden können.

%%
%
%%

\item Erklären Sie das WAL-Prinzip (Write ahead logging)!

\begin{bAntwort}
Das sogenannte write ahead logging (WAL) ist ein Verfahren der
Datenbanktechnologie, das zur Gewährleistung der Atomarität und
Dauerhaftigkeit von Transaktionen beiträgt. Es besagt, dass
Modifikationen vor dem eigentlichen Schreiben (dem Einbringen in die
Datenbank) protokolliert werden müssen.

Durch das WAL-Prinzip wird ein sogenanntes „update-in-place“ ermöglicht,
\dh die alte Version eines Datensatzes wird durch die neue Version an
gleicher Stelle überschrieben. Das hat vor allem den Vorteil, dass
Indexstrukturen bei Änderungsoperationen nicht mit aktualisiert werden
müssen, weil die geänderten Datensätze immer noch an der gleichen Stelle
zu finden sind. Die vorherige Protokollierung einer Änderung ist
erforderlich, um im Fehlerfall die Wiederholbarkeit der Änderung
sicherstellen zu können.
\footcite{wiki:wal-prinzip}
\end{bAntwort}

%%
%
%%

\item Erklären Sie den Begriff „Datenbankindex“ und nennen Sie zwei
häufige Arten.

\begin{bAntwort}
Ein Datenbankindex ist eine von der Datenstruktur getrennte
Index\-struktur in einer Datenbank, die die Suche und das Sortieren nach
bestimmten Feldern beschleunigt.
\footcite{wiki:datenbankindex}

\bPseudoUeberschrift{Gruppierte Indizes (Clustered Index)}

Bei der Verwendung eines gruppierten Index werden die Daten\-sätze
entsprechend der Sortierreihenfolge ihres Index-Schlüssels gespeich\-ert.
Wird für eine Tabelle beispielsweise eine Primärschlüssel-Spalte „NR“
angelegt, so stellt diese den Index-Schlüssel dar. Pro Tabelle kann nur
ein gruppierter Index erstellt werden. Dieser kann jedoch aus mehreren
Spalten zusammengesetzt sein.

\bPseudoUeberschrift{Nicht-gruppierte Indizes (Nonclustered Index)}

Besitzt eine Tabelle einen gruppierten Index, so können weitere
nicht-gruppierte Indizes angelegt werden. Dabei zeigen die Einträge des
Index auf den Speicherbereich des gesamten Datensatzes. Die Verwendung
eines nicht-gruppierten Index bietet sich an, wenn regel\-mäßig nach
bestimmten Werten in einer Spalte gesucht wird z.\-B. dem Namen eines
Kunden.
\bFussnoteUrl{https://www.datenbanken-verstehen.de/datenmodellierung/datenbank-index}
\end{bAntwort}

\end{enumerate}

\end{document}
