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