\begin{frame} \frametitle{Functional Dependencies} \begin{block}{} A \emph{functional dependency (FD)} \begin{talign} \{\, A_1, \dots, A_n \,\} \to \{\, B_1, \dots, B_m \,\} \end{talign} \emph{holds for a relation $R$} in a database state $I$ if and only if \begin{talign} & t.A_1 = u.A_1 \wedge \cdots \wedge t.A_n = u.A_n \\ \Rightarrow\;\; & t.B_1 = u.B_1 \wedge \cdots \wedge t.B_m = u.B_m \end{talign} for all tuples $t,u \in I(R)$. \end{block} Usually, we do not write the set brackets $\{$ and $\}$. \pause\medskip \begin{goal}{} A functional dependency is like a \emph{partial key:} uniquely determines some attributes, but not all in general. \end{goal} \pause\medskip We read functional dependencies as \begin{itemize} \item $A_1, \dots, A_n$ (functionally, uniquely) determine $B_1, \dots, B_m$ \end{itemize} % \begin{goal}{} % A \emph{determinant} is a `minimal' functional dependency. % \end{goal} \end{frame}