\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}