% $Id$
\documentclass[notes]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage{moreverb}
\usepackage{graphicx}
\usepackage{eurosym}

\mode<presentation>
{
  \definecolor{beamerstructure}{RGB}{143,79,112}
  \definecolor{sidebackground}{RGB}{230,242,250}
  \color{beamerstructure}
  \usetheme{Copenhagen}
  \usepackage{times}
  \userightsidebarcolortemplate{\color{sidebackground}}
  \beamertemplateballitem
}

\title{SGDB - Définition}
\subtitle{}
\author{Olivier Thauvin}
\date{\today}

%%\setcounter{tocdepth}{2}
\AtBeginSection[]
{
\begin{frame}
    \frametitle{Plan - \secname}
    \tableofcontents[currentsection,hideallsubsections]
\end{frame}
}

\AtBeginSubsection[]
{
\begin{frame}
    \frametitle{Plan - \subsecname}
    \tableofcontents[currentsection,sectionstyle=show/hide,subsectionstyle=show/shaded/hide]
\end{frame}
}

\begin{document}

\frame{\titlepage}

\begin{frame}
\frametitle{Definition}
\vfill
\begin{block}{SGDB}
Système de gestion de base de données (\textbf{D}ata\textbf{b}ase
\textbf{m}anagement \textbf{s}ystem)
\end{block}
\vfill

\begin{block}{Rôle}
Accéder, modifier, organiser de manière performante des données
\end{block}
\vfill
\pause

\begin{block}{Composants}
\begin{itemize}
\item moteur de base de données
\item langage de requête
\item serveur
\end{itemize}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Moteur de base de donnée}
\vfill
\begin{block}{Rôles}
\begin{itemize}
\item accès et stockage des données
\item indexation
\item gestion des accès concurrents
\end{itemize}
\end{block}
\vfill
\pause

\begin{exampleblock}{Exemples de moteurs}
\begin{itemize}
\item SQLite (librairies)
\item MS~Access
\item InnoDB (MySQL entre autre)
\item MyISAM (Mysql)
\item \ldots
\end{itemize}
\end{exampleblock}
\vfill
\end{frame}

\begin{frame}
\frametitle{Langage}
\vfill
\begin{block}{Selon les logiciels\ldots}
\begin{itemize}
\item pas de langage (fonctions fournies par une librairie)
\item un langage propres à l'application
\item \textbf{SQL}, bien sûr
\end{itemize}
\end{block}
\pause
\vfill

\begin{block}{Structured Query Language}
\begin{itemize}
\item langage normalisé ISO (1986, \ldots, 2008)
\item le plus utilisé
\item nombreuses zones floues dans la norme
\end{itemize}
\end{block}
\vfill
\end{frame}


\begin{frame}
\frametitle{Serveur de base de donnée}
\vfill
\begin{block}{Serveur ?}
\begin{itemize}
\item réseau
\item multiples accès \ldots
  \begin{itemize}
  \item par de multiple utilisateurs
  \item par de multiple clients
  \end{itemize}
\item gestion de droit d'accès
\end{itemize}
\end{block}
\pause
\vfill

\begin{exampleblock}{Exemples}
\begin{itemize}
\item MS SQL (payant)
\item Oracle (performant, très cher)
\item PostgreSQL (libre)
\item MySQL (libre)
\end{itemize}
\end{exampleblock}
\vfill
\end{frame}

\begin{frame}
\frametitle{La saveur d'un SGDB}
\vfill
\begin{block}{L'ACIDité}
\begin{itemize}
\item[A]tomicité (tout ou rien)
\item[C]onsistency (les données restent cohérentes)
\item[I]solation (chacun voit ce qu'il a à voir)
\item[D]urabilité (les écrits restent)
\end{itemize}
\end{block}
\pause
\vfill

\begin{block}{Autres fonctionnalités}
\begin{itemize}
\item contraintes d'unicité
\item intégrité référentielle
\item vérification des type de données
\item contraintes sur les valeurs
\item gestion de droits d'accès
\item \ldots
\end{itemize}
\end{block}
\vfill
\end{frame}

\end{document}
