145/291
\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}