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