64/224
\begin{frame}
  \frametitle{Non-Monotonic Behaviour}
  
  \begin{goal}{}
    SQL queries using only the constructs introduced so far 
    compute \emph{monotonic functions} on the database state: 
    \begin{itemize}
      \item if further rows gets \emph{inserted},\\
            these queries yield a \emph{superset} of rows.
    \end{itemize}
  \end{goal}
  \pause\medskip

  However, not all queries behave monotonically in this way.

  \begin{exampleblock}{Example of a non-monotonic query}
    \medskip
    
    Query: find students who have not submitted any homework.
    \begin{itemize}
    \pause
      \item Currently, \sql{Bart Simpson} would be a correct answer.  
    \pause
      \item 
      This answer is no longer valid after:\\
      \begin{code}{.8\textwidth}{}
        \small
        \sql{insert into Results values (104, \textquotesingle{}homework\textquotesingle{}, 1, 8)}
      \end{code}
    \end{itemize}
  \end{exampleblock}
  \pause\medskip

  Such \emph{non-monotonic} queries \emph{cannot} be formulated with the SQL constructs that we have seen so far.
\end{frame}