\documentclass{bschlangaul-aufgabe}

\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe},
  Thematik = {Nachteile vollständige Normalisierung},
  Referenz = 66113-2003-H.T2-A1,
  RelativerPfad = Examen/66113/2003/09/Thema-2/Aufgabe-1.tex,
  ZitatSchluessel = 66113:2003:09,
  ZitatBeschreibung = {Thema 2 Aufgabe 1},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Normalformen, Synthese-Algorithmus},
  EinzelpruefungsNr = 66113,
  Jahr = 2003,
  Monat = 09,
  ThemaNr = 2,
  AufgabeNr = 1,
}

Gegeben\index{Normalformen} \footcite[Thema 2 Aufgabe 1]{66113:2003:09}
sei die folgenden Datenbank mit den offenen Rechnungen der Kunden eines
Versandhauses:
\footcite[Seite 2 Aufgabe 4]{db:ab:5}

\begin{tabular}{|l|l|l|l|l|l|l|}
\textbf{RNR} & \textbf{KDNR} & \textbf{Name} & \textbf{Adresse} & \textbf{Positionen} & \textbf{Datum} & \textbf{Betrag}
\\\hline
1   & 1    & Müller & München  & 3          & 01.11.2002 & 60     \\
2   & 1    & Müller & München  & 2          & 23.05.2003 & 90     \\
3   & 2    & Huber  & Nürnberg & 3          & 09.03.2003 & 90     \\
4   & 2    & Huber  & Nürnberg & 8          & 14.02.2003 & 70     \\
5   & 3    & Meier  & Augsburg & 7          & 20.06.2003 & 110    \\
6   & 4    & Meier  & München  & 12         & 07.04.2003 & 90
\end{tabular}

\begin{enumerate}

%%
% (a)
%%

\item Erläutern Sie, warum nur Relationen mit einem zusammengesetzten
Schlüsselkandidaten die 2. Normalform verletzen können!

\begin{bAntwort}

Ist der Schlüsselkandidat ein-elementig, so müssen sämtliche Attribute
zwangsläufig voll funktional von diesem Schlüsselkandidaten abhängig
sein. Dies ist genau die Voraussetzung für die 2. NF, sodass die 2. NF
bei atomaren Attributwerten und nur ein-elementigen Schlüsselkandidaten
immer gegeben ist. Bei zusammengesetzten Schlüsselkandidaten kann die 2.
NF hingegen verletzt werden, da es sein kann, dass ein
Nicht-Schlüsselattribut nur von Schlüsselkandidaten abhängig ist.
\end{bAntwort}

%%
% (b)
%%

\item Geben Sie für obige Datenbank alle vollen funktionalen
Abhängigkeiten (einschließlich der transitiven) an?

\begin{bAntwort}
\ttfamily
\begin{compactitem}
\item RNR $\rightarrow$ KDNR, Name, Adresse, Positionen, Datum, Betrag
\item KDNR $\rightarrow$ Name, Adresse
\end{compactitem}
\end{bAntwort}

%%
% (c)
%%

\item Erläutern Sie, inwiefern obiges Schema die 3. Normalform verletzt!
Zeigen Sie anhand obiger Relation „Rechnung“ zwei mögliche Anomalien
auf, die bei fehlender Normalisierung auftreten können.

\begin{bAntwort}
Die Attribute \texttt{Name} und \texttt{Adresse} sind transitiv
(\texttt{RNR $\rightarrow$ KDNR $\rightarrow$ Name, Adresse})
vom Schlüssel \texttt{RNR} abhängig!

\bPseudoUeberschrift{Mögliche Anomalien:}

\begin{description}
\item[UPDATE-Anomalie:] Müller zieht nach Regensburg, müsste in jedem
Tupel geändert werden, wird aber bei \texttt{RNR 2} vergessen $\rightarrow$
Inkonsistenz

\item[INSERT-Anomalie:] Neuer (potentieller) Kunde Schmidt kann erst
eingefügt werden, wenn auch eine offene Rechnung vorliegt

\item[DELETE-Anomalie:] Wird \texttt{RNR 6} gelöscht, gehen auch die
Kundendaten von Meier aus München verloren.
\end{description}

\end{bAntwort}

%%
% (d)
%%

\item Überführen Sie das obige Relationenschema in die 3. Normalform!
Erläutern Sie die dazu durchzuführenden Schritte jeweils kurz!
\index{Synthese-Algorithmus}

\begin{bAntwort}

Rechnung:

\begin{tabular}{|l|l|l|l|l|l|l|}
\textbf{RNR} & \textbf{KDNR} & \textbf{Positionen} & \textbf{Datum} & \textbf{Betrag}
\\\hline
1   & 1    & 3  & 01.11.2002 & 60  \\
2   & 1    & 2  & 23.05.2003 & 90  \\
3   & 2    & 3  & 09.03.2003 & 90  \\
4   & 2    & 8  & 14.02.2003 & 70  \\
5   & 3    & 7  & 20.06.2003 & 110 \\
6   & 4    & 12 & 07.04.2003 & 90
\end{tabular}

Kunde:

\begin{tabular}{|l|l|l|l|l|l|l|}
\textbf{KDNR} & \textbf{Name} & \textbf{Adresse}
\\\hline
1 & Müller & München  \\
1 & Müller & München  \\
2 & Huber  & Nürnberg \\
2 & Huber  & Nürnberg \\
3 & Meier  & Augsburg \\
4 & Meier  & München
\end{tabular}

Die transitiven Abhängigkeiten sind zu entfernen, dadurch wird die neue
Relation „Kunde“ mit KDNR als Primärschlüssel geschaffen.
\end{bAntwort}

Erläutern Sie, inwiefern sich eine vollständige Normalisierung
nachteilig auf die Geschwindigkeit der Anfragebearbeitung auswirken kann
und wie darauf reagiert werden kann!
\footcite[Aufgabe 10: Nachteile der Normalisierung]{db:ab:klausurvorbereitung}

\begin{bAntwort}
Durch die vielen Tabellen sind schon bei einfacheren Anfragen schnell
Joins notwendig, was bei komplexeren Anfragen und großen Datenmengen zu
einigem Rechenaufwand führen kann. Hier ist es sinnvoll, zuerst eine
Selektion zu treffen, anstatt in einem einfachen Kreuzprodukt
auch sämtliche sinnlose Tupel miteinander zu verknüpfen.
\end{bAntwort}
\end{enumerate}
\end{document}
