\begin{frame}
\frametitle{Consequences of Bad DB Design}
\emph{Redundant storage is bad} for several reasons:
\begin{itemize}
\medskip
\item it \emph{wastes storage space}
\medskip
\item difficult to ensure \emph{integrity} when updating the database
\begin{itemize}
\item all redundant copies need to be updated
\item \emph{wastes time}, inefficient
\end{itemize}
\medskip
\item need for \emph{additional constraints} to guarantee integrity
\begin{itemize}
\item ensure that the redundant copies indeed agree
\item e.g. the constraint $\sql{instructor} \to \sql{phone}$
\end{itemize}
\end{itemize}
\medskip
\pause
\begin{alertblock}{Problem}
\emph{General FDs} are \emph{not} supported by \emph{relational databases}.
\end{alertblock}
\pause
\begin{goal}{}
The solution is to transform FDs into \emph{key constraints}.\\
This is what \emph{database normalization} tries to do.
\end{goal}
\end{frame}