246/291
\begin{frame}
  \frametitle{Multivalued Dependencies}

  \begin{alertblock}{}
    The table contains redundant data \& must be split.
  \end{alertblock}
  \pause
  
  \begin{exampleblock}{}
    \begin{center}
    {\ttfamily\footnotesize
    \colorbox{rellight}{%
      \begin{tabular}{|r|r|}
        \multicolumn{2}{c}{KnowledgeLanguage}
        \\
        \hline
        \hd{\underline{employee}} & \hd{\underline{programmingLanguage}} 
        \\
        \hline
        John Smith  & C      \\
        John Smith  & C++    \\
        Maria Brown & Prolog \\
        Maria Brown & Java   \\
        \hline
      \end{tabular}%
    }}\\[1ex]
    {\ttfamily\footnotesize
    \colorbox{rellight}{%
      \begin{tabular}{|r|r|}
        \multicolumn{2}{c}{KnowledgeDBMS}
        \\
        \hline
        \hd{\underline{employee}} & \hd{\underline{dbms}} 
        \\
        \hline
        John Smith  & Oracle     \\
        John Smith  & MySQL        \\
        Maria Brown & PostgreSQL \\
        \hline
      \end{tabular}%
    }}
    \end{center}
  \end{exampleblock}
  \pause

  \begin{alertblock}{}
  Note: table may only be decomposed if 
  \sql{programmingLanguage} and \sql{dbms} are \emph{independent}; otherwise \emph{loss of information}.\\
  \end{alertblock}
  \remark{%
    E.g. it may not be decomposed if the semantics of the table is 
    that the employee knows the interface between the language and the database.
  }
\end{frame}