14/70
\begin{frame}
  \frametitle{Queries in Databases: Tuple Model}
  
  \begin{goal}{Tuple Model}
    In this model, the \emph{rows are objects} themselves (tuples).
    \medskip
    \pause
    
    A unary predicate \textit{Person} tells if a row belongs to table Persons:
    \begin{talign}
      \textit{Person}(x)
    \end{talign}
    \pause
    Functions symbols for every column of the table:
    \begin{talign}
      \text{Pid}(x) && \text{Name}(x) && \text{City}(x)
    \end{talign}
    \pause
    (project the tuple/row to one of its arguments $\langle\; y_1,\ldots,y_n\;\rangle \mapsto y_i$)
  \end{goal}
  \pause\medskip

  We can formulate \emph{queries using the function symbols}.
  \begin{exampleblock}{}
    The names of people living in Amsterdam:
    \pause
    \begin{talign}
      \{\; y \;\mid\; 
        &\myex{x}{\big( \text{\textit{Person}}(x) \wedge \text{Name}(x) = y \wedge \text{City}(x) = \text{Amsterdam}} \big) \; \}
    \end{talign}
    \pause
    or equivalently
    \begin{talign}
      \{\; \text{Name}(x) \;\mid\; 
        &\text{\textit{Person}}(x) \wedge \text{City}(x) = \text{Amsterdam} \; \}
    \end{talign}
  \end{exampleblock}
\end{frame}