\documentclass{bschlangaul-aufgabe}
\bLadePakete{normalformen,syntax}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 1},
  Thematik = {Allgemeine Fragen},
  Referenz = 66116-2019-F.T2-TA1-A1,
  RelativerPfad = Examen/66116/2019/03/Thema-2/Teilaufgabe-1/Aufgabe-1.tex,
  ZitatSchluessel = examen:66116:2019:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Datenbank},
  EinzelpruefungsNr = 66116,
  Jahr = 2019,
  Monat = 03,
  ThemaNr = 2,
  TeilaufgabeNr = 1,
  AufgabeNr = 1,
}

\let\m=\bAttributMenge
\let\fa=\bFunktionaleAbhaengigkeit

\begin{enumerate}

%%
% a)
%%

\item Das ACID-Prinzip fordert unter anderem die Atomaritat und die
Isolation einer Transaktion. Beschreiben Sie kurz die Bedeutung dieser
Begriffe.\index{Datenbank}
\footcite{examen:66116:2019:03}

\begin{bAntwort}
\begin{description}
\item[Atomicity]

Eine Transaktion ist atomar, \dh von den vorgesehenen
Änderungsoperationen auf die Datenbank haben entweder alle oder keine
eine Wirkung auf die Datenbank.

\item[Isolation]

Eine Transaktion bemerkt das Vorhandensein anderer (parallel
ablaufender) Transaktionen nicht und beeinflusst auch andere
Transaktionen nicht.\footcite[Kapitel 9.5 „Eigenschaften von Transaktionen“, Seite 305]{kemper}
\end{description}
\end{bAntwort}

%%
% b)
%%

\item Was versteht man unter physischer Datenunabhängigkeit?

\begin{bAntwort}
Änderungen an der physischen Speicher- oder der Zugriffsstruktur
(beispielsweise durch das Anlegen einer Indexstruktur) haben keine
Auswirkungen auf die logische Struktur der Datenbasis, also auf das
Datenbankschema.
\footcite[Seite 20]{db:fs:3}
\footcite[Kapitel 1.3 Datenunabhängigkeit Seite 24]{kemper}
\end{bAntwort}

%%
% c)
%%

\item In welche drei Ebenen unterteilt die 3-Ebenen-Architektur
Datenbanksysteme?

\begin{bAntwort}

\begin{description}
\item[Externe Ebene / (Benutzer)sichten (Views)]

Die externe Ebene stellt den Benutzern und Anwendungen individuelle
Benutzersichten bereit, wie beispielsweise Formulare, Masken-Layouts,
Schnittstellen.

\item[Konzeptionelle / logische Ebene]

Die konzeptionelle Ebene beschriebt, welche Daten in der Datenbank
gespeichert sind, sowie deren Beziehungen. Ziel des Datenbankdesigns ist
eine vollständige und redundanzfreie Darstellung aller zu speichernden
Informationen. Hier findet die Normalisierung des relationalen
Datenbankschemas statt.

\item[Interne / physische Ebene]

Die interne Ebene stellt die physische Sicht der Datenbank im Computer
dar. Sie beschreibt, wie und wo die Daten in der Datenbank gespeichert
werden. Oberstes Designziel ist ein effizienter Zugriff auf die
gespeicherten Informationen, der meist durch bewusst in Kauf genommene
Redundanz (\zB Index) erreicht wird.
\footcite[Seite 443, 13.1.3 Architektur eines Datenbanksystems]{schneider}
\footcite[Seite 23, 1.2 Datenabstraktion]{kemper}
\footcite[Seite 20]{db:fs:3}
\end{description}
\end{bAntwort}

%%
% d)
%%

\item Definieren Sie, was ein Schlüssel ist.

\begin{bAntwort}
Ein Schlüssel ist ein Attribut oder eine Attributkombination, von der
alle Attribute einer Relation funktional abhängen.
\end{bAntwort}

%%
% e)
%%

\item Gegeben ist eine Relation \bRelation{A, B, C}, deren einziger
Schlüsselkandidat A ist. Nennen Sie zwei Superschlüssel.

\begin{bAntwort}
\m{A, B} oder \m{A, C} oder \m{A, B, C}
\end{bAntwort}

%%
% f)
%%

\item Gegeben seien 2 Relationen \bRelation{A, B, C} und
\bRelation[S]{C, D, E}. Die Relation $R$ enthalte $9$ Tupel und die
Relation $S$ enthalte $7$ Tupel. Sei $p$ ein beliebiges
Selektionsprädikat.
Gegeben seien außerdem folgende Anfragen:

$Q_1$:

\begin{minted}{sql}
SELECT *
FROM R NATURAL JOIN S
WHERE p;
\end{minted}

$Q_2$:

\begin{minted}{sql}
SELECT DISTINCT A
FROM R LEFT OUTER JOIN S ON R.C=S.C;
\end{minted}

\begin{enumerate}
\item Wieviele Ergebnistupel liefert die Anfrage $Q_1$ mindestens?

\begin{bAntwort}
0
\end{bAntwort}

\item Wieviele Ergebnistupel liefert die Anfrage $Q_1$ höchstens?

\begin{bAntwort}
7
\end{bAntwort}

\item Wieviele Ergebnistupel liefert die Anfrage $Q_2$ mindestens?

\begin{bAntwort}
9
\end{bAntwort}

\item Wieviele Ergebnistupel liefert die Anfrage $Q_2$ höchstens?

\begin{bAntwort}
9
\end{bAntwort}
\end{enumerate}

%%
% g)
%%

\item Erläutern Sie, was es bedeutet, wenn ein Attribut prim ist.

\begin{bAntwort}
Sei $R$ ein Relationenschema. Ein Attribut $A \in R$ heißt \emph{prim},
falls $A$ Teil eines Schlüsselkandidaten von $R$ ist. Andernfalls heißt
A \emph{nichtprim}.\footcite[Seite 191]{winter}
\end{bAntwort}

%%
% h)
%%

\item Nennen Sie die drei Armstrong-Axiome, die dazu dienen aus einer
Menge von funktionalen Abhängigkeiten, die auf einer Relation gelten,
weitere funktionale Abhängigkeiten abzuleiten.

\begin{bAntwort}
\begin{description}
\item[Reflexivität:]
%
Eine Menge von Attributen bestimmt eindeutig die Werte einer Teilmenge
dieser Attribute (triviale Abhängigkeit), das heißt,
$\beta \subseteq \alpha \Rightarrow \alpha \rightarrow \beta$ .

\item[Verstärkung:]
%
Gilt
$\alpha \rightarrow \beta$, so gilt auch
$\alpha \gamma \rightarrow \beta \gamma$
für jede Menge von Attributen
$\gamma$ der
Relation.

\item[Transitivität:]
%
Gilt
$\alpha \rightarrow \beta$
und
$\beta \rightarrow \gamma$,
so gilt auch
$\alpha \rightarrow \gamma$.
\end{description}
\footcite[Axiome von Armstrong]{wiki:funktionale-abhängigkeit}
\end{bAntwort}

%%
% i)
%%

\item Nennen Sie die höchste Normalform, der die Relation \bRelation{A,
B, C, D} mit den Abhängigkeiten \fa{A -> C} und \fa{A, B -> D}
entspricht. Begründen Sie Ihre Antwort.

\begin{bAntwort}
1NF. \fa{A -> C} verletzt die 2NF, da das Nichtprimärattribut $C$
funktional von einer echten Teilmenge ($A$) des Schlüsselkandidaten
(\fa{A, B -> D}) abhängt.
\end{bAntwort}

%%
% j)
%%

\item Gegeben seien die Transaktionen $T_1$, $T_2$ und $T_3$. Wie viele
mögliche verschiedene serialisierbare Schedules gibt es mindestens?
(Geben Sie Ihren Rechenweg an.)

\begin{bAntwort}
Vergleiche Kemper Seite 341 Kapitel „Theorie der Serialisierbarkeit“.
\end{bAntwort}

\end{enumerate}

\end{document}
