\chapter{Bases de données} \label{chap:bdd} \index{SQL} % ---------------------------------------------------------------- % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \section{sqlite} \index{sqlite} % ---------------------------------------------------------------- \subsection{CLI} \index{cli} Commandes internes: % ---------------------------------------------------------------- \subsection{Libreoffice} \index{Libreoffice} % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \section{GDBM} \index{GDBM} \begin{quote} GDBM - The GNU database manager. Includes dbm and ndbm compatibility. \end{quote} Gnu DBM permet de stocker des paires clef/valeur dans un fichier de données. Chacune de ces clefs doit être unique, et doit être liée avec une seule valeur\footnote{Peut-on alors parler de bijection relationnelle ?}. % ---------------------------------------------------------------- \subsection{Exemple en Perl} \index{Perl} \begin{verbatim} #!/usr/bin/perl -w use strict; use GDBM_File; my $nomdb = "exemple.gdbm"; my (%DB, @champs); my ($user, $gecos); open(SOURCE, "< /etc/passwd") or die "source $!"; tie(%DB, "GDBM_File", $nomdb, GDBM_WRCREAT, 0666) or die "gdbm $!"; while () { @champs = split ":", $_; $user = $champs[0]."\0"; $gecos = $champs[4]."\0"; $DB{$user} = $gecos; } untie %DB; close SOURCE; 0; \end{verbatim} Vous remarquerez que pour cet exemple, nous avons clef et valeur qui sont du texte. Alors que DBM est prévu pour stocker des blocs de binaire. Pour faciliter la récupération de ces chaines de caractères par un hypothétique\footnote{Oui, je vais l'écrire bientôt.} programme en C, le programme Perl rajoute un \texttt{'\textbackslash0'} (fin de chaine) aux deux champs concernés. % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \section{Postgresql} Le poids lourd du domaine. % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \section{Et le "NoSQL" ?} \index{nosql} \index{troll} % ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++