3/66
\begin{frame}
  \frametitle{Application Architectures}
  
  \begin{goal}{Various ways of using database technology}
    \begin{tcenter}
    {\scriptsize
    \begin{tikzpicture}[node distance=10mm,n/.style={rectangle,draw=black,fill=blue!10,rounded corners=1mm}]
      \node[n] (db) {database system};
      \node[n] (as) [above of=db] {application server};
      \node[n] (ac) [above of=as,node distance=20mm] {application client};
      \node[n] (u) [above of=ac] {user};
      \draw[rounded corners=1mm,dashed,thick] ($(as.north west)+(-1mm,1mm)$) rectangle ($(as.south east) + (1mm,-11mm)$);
      \draw[rounded corners=1mm,dashed,thick] ($(ac.south west)+(-1mm,-1mm)$) rectangle ($(ac.north east) + (1mm,10.5mm)$);
      \draw[thick] (u) -- (ac) -- node[left] {network} (as); \draw[red,ultra thick] (as) -- (db);
      \node[below of=db,align=center,node distance=10mm] {thin-client\\architecture};

      \begin{scope}[xshift=30mm]
      \node[n] (db) {database system};
      \node[n] (ac) [above of=db,node distance=20mm] {application};
      \node[n] (u) [above of=ac] {user};
      \draw[rounded corners=1mm,dashed,thick] ($(db.north west)+(-1mm,1mm)$) rectangle ($(db.south east) + (1mm,-1mm)$);
      \draw[rounded corners=1mm,dashed,thick] ($(ac.south west)+(-1mm,-1mm)$) rectangle ($(ac.north east) + (1mm,10.5mm)$);
      \draw[thick] (u) -- (ac);  \draw[red,ultra thick] (ac) -- node[left,black] {network} (db);
      \node[below of=db,align=center,node distance=10mm] {client-server\\architecture};
      \end{scope}

      \begin{scope}[xshift=60mm]
      \node[n] (db) {database system};
      \node[n] (ac) [above of=db] {application};
      \node[n] (u) [above of=ac] {user};
      \draw[rounded corners=1mm,dashed,thick] ($(db.south west)+(-1mm,-1mm)$) rectangle ($(db.north east) + (1mm,21mm)$);
      \draw[thick] (u) -- (ac);  \draw[red,ultra thick] (ac) -- (db);
      \node[below of=db,align=center,node distance=10mm] {embedded\\database};
      \end{scope}

      \begin{scope}[xshift=85mm,yshift=1.5mm]
      \node[n,align=center] (db) {database\\system};
      \node[n] (u) [above of=db,node distance=12mm] {user};
      \draw[rounded corners=1mm,dashed,thick] ($(db.south west)+(-1mm,-1mm)$) rectangle ($(db.north east) + (1mm,11mm)$);
       \draw[red,ultra thick] (u) -- (db);
      \node[below of=db,align=center,node distance=11.5mm] {console\\access};
      \end{scope}
    \end{tikzpicture}
    }
    \end{tcenter}
  \end{goal}
  \pause
  
  \begin{alertblock}{}
    How do these applications talk to the database?
  \end{alertblock}
\end{frame}