\documentclass{bschlangaul-aufgabe}
\bLadePakete{normalformen,synthese-algorithmus}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 6},
  Thematik = {Normalisierung},
  Referenz = 66116-2019-F.T2-TA1-A6,
  RelativerPfad = Examen/66116/2019/03/Thema-2/Teilaufgabe-1/Aufgabe-6.tex,
  ZitatSchluessel = examen:66116:2019:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Normalformen, Schlüsselkandidat, Synthese-Algorithmus},
  EinzelpruefungsNr = 66116,
  Jahr = 2019,
  Monat = 03,
  ThemaNr = 2,
  TeilaufgabeNr = 1,
  AufgabeNr = 6,
}

\let\ah=\bAttributHuelle
\let\FA=\bFunktionaleAbhaengigkeiten
\let\m=\bAttributMenge
\let\r=\bRelation
\let\schrittE=\bSyntheseUeberErklaerung

Gegeben sei das Relationsschema \r{A, B, C, D, E, F}, sowie die Menge
der zugehörigen funktionalen Abhängigkeiten:
\index{Normalformen}
\footcite{examen:66116:2019:03}

\FA{
  B -> F;
  C, D -> E;
  C -> A;
  C, D -> A;
  D -> F;
  D -> B;
}

% http://www.ict.griffith.edu.au/normalization_tools/normalization/ind.php

% A,B,C,D,E,F

% B -> F
% C,D -> E
% C -> A
% C,D -> A
% D -> F
% D -> B

\begin{enumerate}

%%
% a)
%%

\item Bestimmen Sie den Schlüsselkandidaten der Relation $R$ und
begründen Sie, warum es keine weiteren Schlüsselkandidaten gibt.
\index{Schlüsselkandidat}

% Step 1: Find the minimal cover of FDs, which contains
% B --> F
% C,D --> E
% C --> A
% D --> B
% Step 2. Find the set of attributes not on the RHS of any FD, which is NotOnRHS = {C,D}. Every CK must contain these attributes.
% Step 3: NotOnRHS is a superkey, so it is the only candidate key

\begin{bAntwort}
Der Schlüsselkandidat ist \m{C, D}, da \m{C, D} auf keiner rechten
Seiten der Funktionalen Abhängigkeiten vorkommt. Außerdem ist \m{C, D}
ein Superschlüssel da gilt: $\ah{F, \m{C, E}} = \m{A, B, C, D, E, G} =
R$
\end{bAntwort}

%%
% b)
%%

\item Überführen Sie das Relationsschema $R$ mit Hilfe des
Synthesealgorithmus in die dritte Normalform. Führen Sie hierfür jeden
der vier Schritte durch und kennzeichnen Sie Stellen, bei denen nichts
zu tun ist. Benennen Sie alle Schritte und begründen Sie eventuelle
Reduktionen.
\index{Synthese-Algorithmus}

\begin{bAntwort}
\begin{enumerate}
\item \schrittE{1}
\begin{enumerate}
\item \schrittE{1-1}

\FA{
  B -> F;
  C, D -> E;
  C -> A;
  C -> A;
  D -> F;
  D -> B;
}

\item \schrittE{1-2}

\FA{
  B -> F;
  C, D -> E;
  C -> NICHTS;
  C -> A;
  D -> NICHTS;
  D -> B;
}
\item \schrittE{1-3}

\FA{
  B -> F;
  C, D -> E;
  C -> A;
  D -> B;
}

\item \schrittE{1-4}

\bNichtsZuTun

\end{enumerate}
\item \schrittE{2}

\begin{compactitem}
\item \bRelation[R1]{B, F}
\item \bRelation[R2]{C, D, E}
\item \bRelation[R3]{C, A}
\item \bRelation[R4]{D, B}
\end{compactitem}

\item \schrittE{3}

\bNichtsZuTun

\item \schrittE{4}

\bNichtsZuTun
\end{enumerate}
\end{bAntwort}

\end{enumerate}
\end{document}
