247/296
\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}{EMP\_LANG}
        \\
        \hline
        \hd{\underline{ENAME}} & \hd{\underline{PROG\_LANG}} 
        \\
        \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}{EMP\_DBMS}
        \\
        \hline
        \hd{\underline{ENAME}} & \hd{\underline{DBMS}} 
        \\
        \hline
        John Smith  & Oracle     \\
        John Smith  & DB2        \\
        Maria Brown & PostgreSQL \\
        \hline
      \end{tabular}%
    }}
    \end{center}
  \end{exampleblock}
  \pause

  \begin{alertblock}{}
  Note: table may only be decomposed if 
  \sql{PROG\_LANG} and \sql{DBMS} are \emph{independent}; otherwise \emph{loss of information}.\\
  \end{alertblock}
  \pause
  \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}