2022-12-17 06:41:32 +11:00
|
|
|
\chapter{Bases de données}
|
2023-10-09 06:56:41 +11:00
|
|
|
\label{chap:bdd} \index{SQL}
|
2022-12-17 06:41:32 +11:00
|
|
|
|
|
|
|
% ----------------------------------------------------------------
|
2023-10-09 06:56:41 +11:00
|
|
|
|
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
\section{sqlite} \index{sqlite}
|
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
Avantages : un produit éprouvé depuis longtemps, toutes
|
|
|
|
les données placées dans un fichier unique facilement
|
|
|
|
transportable, vraiment multi-plateforme.
|
2022-12-17 06:41:32 +11:00
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
% ----------------------------------------------------------------
|
|
|
|
\subsection{CLI} \index{cli}
|
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
Commandes internes (\textsl{meta-commands})~:
|
2023-11-30 00:12:03 +11:00
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
Utilisez \textbf{.help} en premier secours !
|
2022-12-17 06:41:32 +11:00
|
|
|
|
|
|
|
% ----------------------------------------------------------------
|
|
|
|
\subsection{Libreoffice} \index{Libreoffice}
|
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
Il peut utiliser des bases en SQLite.
|
2023-10-09 06:56:41 +11:00
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
2023-10-09 06:56:41 +11:00
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
\section{GDBM} \index{GDBM}
|
|
|
|
|
2023-10-09 06:56:41 +11:00
|
|
|
\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 ?}.
|
2024-09-29 05:25:02 +11:00
|
|
|
On peut appeler ça une table associative,
|
|
|
|
ou en anglais une \textsl{hashtable},
|
|
|
|
un terme qui rappelle le principe sous-jacent.
|
2023-10-09 06:56:41 +11:00
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
% ----------------------------------------------------------------
|
|
|
|
|
2023-10-09 06:56:41 +11:00
|
|
|
\subsection{Exemple en Perl} \index{Perl}
|
|
|
|
|
2024-09-29 05:25:02 +11:00
|
|
|
Nous allons extraire une donnée du fichier \texttt{/etc/passwd}
|
|
|
|
et la stocker en utilisant le nom du \textsl{yuser}
|
|
|
|
comme clef d'accès.
|
|
|
|
Une tâche pour laquelle Perl est optimal\footnote{krkrkr}
|
|
|
|
grâce au mécanisme du \texttt{tie} que je songe à
|
|
|
|
expliquer\footnote{un de ces jours...} dans le chapitre approprié
|
|
|
|
vers la page \pageref{chap:Perl}.
|
|
|
|
|
|
|
|
\lstinputlisting[language=perl]{code/bdd/mkgdbm.pl}
|
2022-12-17 06:41:32 +11:00
|
|
|
|
2023-11-30 00:12:03 +11:00
|
|
|
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.
|
2024-09-29 05:25:02 +11:00
|
|
|
% ----------------------------------------------------------------
|
|
|
|
|
|
|
|
\subsection{Exemple en C} \index{C}
|
|
|
|
|
|
|
|
XXX \index{XXX}
|
2023-11-30 00:12:03 +11:00
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
|
|
|
\section{Postgresql}
|
|
|
|
|
2023-10-09 06:56:41 +11:00
|
|
|
Le poids lourd du domaine.
|
|
|
|
|
|
|
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
|
|
|
\section{Et le "NoSQL" ?} \index{nosql} \index{troll}
|
|
|
|
|
2024-09-22 06:36:24 +11:00
|
|
|
Pour parler de ça, je préfère attendre Vendredi.
|
|
|
|
|
2022-12-17 06:41:32 +11:00
|
|
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|