Votre carnet d’adresses, votre agenda, la liste de vos courses : vous rangez déjà des informations tous les jours. Un site fait pareil, mais avec des milliers de fiches, consultées et modifiées à chaque seconde. Pour ne rien perdre et tout retrouver vite, il range tout dans une base de données.
À quoi sert une base de données ?
Un site a deux sortes de contenus. Il y a ce qui ne bouge pas, ou presque : la mise en page, le logo, les couleurs. Ce sont les fichiers du site. Et il y a ce qui change sans arrêt : un client crée un compte, passe une commande, laisse un avis, vous publiez un nouvel article.
Ces informations qui changent, on ne va pas les écrire à la main dans des pages. On les range dans la base de données. Elle les garde bien triées, et sait les retrouver en une fraction de seconde, même s’il y en a énormément.
Comment c’est rangé ?
Une base de données ressemble beaucoup à un tableau, comme ceux d’un tableur.
- Elle contient des tables. Chaque table range un seul type de chose : une table pour les clients, une pour les commandes, une pour les articles.
- Chaque table a des colonnes, qui disent quelles informations on note : nom, prénom, adresse e-mail, date d’inscription.
- Chaque table a des lignes, une par fiche : une ligne pour madame Martin, une ligne pour monsieur Dupont.
Les tables peuvent se répondre. La table des commandes ne recopie pas l’adresse de madame Martin à chaque achat. Elle note simplement « cliente numéro 12 », et la base sait retrouver la fiche numéro 12 dans la table des clients.
Qui lit dans le classeur ?
Le visiteur ne touche jamais directement la base de données. C’est le code PHP qui s’en charge. Quand vous ouvrez la page « Mes commandes », le serveur web demande à PHP de préparer la page. PHP pose alors une question à la base, du genre : « donne-moi toutes les commandes de la cliente numéro 12, de la plus récente à la plus ancienne ». La base répond. PHP met le tout en forme et la page part vers votre téléphone.
Cette question s’écrit dans un langage spécial, le SQL. Une question posée en SQL s’appelle une requête. Elle ressemble à ceci : SELECT nom FROM clients, ce qui veut dire « montre-moi le nom de tous les clients ».
Un exemple réel
Vous tenez une petite boutique en ligne de confitures. Une cliente commande trois pots d’abricot. Dans la base, une nouvelle ligne apparaît dans la table des commandes, et le stock d’abricot baisse de trois dans la table des produits. Une minute plus tard, un autre visiteur regarde la page de la confiture d’abricot : PHP lit le nouveau stock et affiche le bon chiffre. Personne n’a retouché la page. C’est la base qui a changé.
Les mots qu’on vous dira
- MySQL : un logiciel de base de données très répandu, gratuit, installé sur le serveur.
- MariaDB : un proche cousin de MySQL, qui fonctionne presque pareil.
- Table, ligne, colonne : l’onglet, la fiche, la case de la fiche.
- Requête : une question posée à la base, écrite en SQL.
- Export ou dump : une copie complète de la base dans un seul fichier, pratique pour la sauvegarder ou la déménager.
Ce que vous avez à retenir
La base de données est souvent la partie la plus précieuse d’un site. Les fichiers peuvent se refaire. Les comptes de vos clients, leurs commandes et vos articles, non. Si la base est perdue, ces informations disparaissent avec elle.
C’est pourquoi elle doit être copiée régulièrement par les sauvegardes, idéalement chaque nuit, et rangée ailleurs que sur le serveur. Quand on vous dit « tout est sauvegardé », demandez gentiment : « la base de données aussi ? »