\begin{frame} \frametitle{Finding a Minimal Key} \begin{code}{\textwidth}{\small Finding a Minimal Key} Let $\mathcal{A}$ be the attributes of the relation $R$, and $\mathcal{F}$ a set of FDs. \begin{itemize} \item Let $x = \mathcal{A}$. \item If $A \in (x - \{\,A\,\})^+_{\mathcal{F}}$ for some $A \in x$, then remove $A$ from $x$. \item Repeat the last step until nothing can be removed. \end{itemize} Finally, $x$ is a minimal key of $R$. % \small % $ % \begin{array}{ll} % \emph{Input:} & \mathcal{A} \text{ (set of all attributes of $R$)} \\ % & \alpha_1 \to \beta_1, \dots, \alpha_n \to % \beta_n \text{ (set of FDs $\mathcal{F}$)} \\ % \emph{Output:} & \alpha \text{ (a minimal key of $R$)} \\ % \end{array} % $ % \begin{algorithmic} % \STATE $x = \mathcal{A}$; % \FORALL{attributes $A \in X$} % \IF{$A \in \{x-A\}^+_{\mathcal{F}}$} % \STATE $x = x - A$; \text{\quad (remove $A$ from $x$)} % \ENDIF % \ENDFOR % \STATE \textbf{return} $x$; % \end{algorithmic} \end{code} \vspace{-1ex} We might get different keys depending on the order in which we remove attributes. \end{frame}