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