\begin{frame} \frametitle{Valid Database States} \begin{goal}{Primary goal of database design} Database should model \textbf{the relevant part of the real world}. \end{goal} The plain definition of tables often allows \textbf{too many} (meaningless, illegal) database states. \pause \begin{exampleblock}{A valid database state?} \centering{\small\ttfamily \colorbox{rellight}{% \begin{tabular}[t]{|r|r|r|r|r|} \multicolumn{5}{c}{Customer} \\ \hline \hd{number} & \hd{name} & \hd{birth\_year} & \hd{city} & \hd{\dots}\\ \hline 1 & Smith & 1936 & Pittsburgh & \dots \\ 2 & Jones & 1965 & Philadelphia & \dots \\ 3 & Brown & 64 & New York & \dots \\ 3 & Ford & 2015 & Washington & \dots \\ \hline \end{tabular}% }} \medskip \begin{itemize} \pause \item customer numbers must be unique \item the year of birth must be greater than \sql{1870} \item customers must be at least 18 years old \end{itemize} \end{exampleblock} \end{frame}