Base de données, SGBD, SGBDR
Une base de données est un ensemble structuré d'informations. Le logiciel qui la gère est un SGBD. Quand les données sont organisées en tables reliées entre elles, on parle de SGBDR (relationnel) : MySQL, MariaDB, PostgreSQL, Oracle. Le langage pour dialoguer avec elles est le SQL.
| Terme relationnel | Concrètement |
|---|---|
| Table | un type d'entité, ex. participant |
| Colonne | une propriété, ex. email, avec un type |
| Ligne | une occurrence, ex. un participant précis |
| Clé primaire | identifie chaque ligne de façon unique |
| Clé étrangère | référence la clé d'une autre table (le lien) |
Pourquoi MySQL ?
MySQL est le SGBDR open source le plus répandu (le « M » de LAMP). Il fonctionne en client-serveur : un serveur mysqld détient les données et écoute sur le port 3306 ; des clients (Workbench, ligne de commande, une API Spring…) s'y connectent pour envoyer du SQL.
Installer MySQL + Workbench
Le plus simple : l'installeur officiel MySQL Community (serveur + Workbench). Notez bien le mot de passe root défini à l'installation.
# Ubuntu / Debian sudo apt install mysql-server sudo systemctl enable --now mysql sudo mysql_secure_installation # macOS avec Homebrew brew install mysql && brew services start mysql
Deux clients au quotidien : la ligne de commande mysql -u root -p (universelle, scriptable) et MySQL Workbench (éditeur SQL, explorateur de schéma, modeleur EER). Chaque instruction se termine par ; ; les mots-clés s'écrivent par convention en MAJUSCULES.
Première base de données
Le cycle complet : créer une base, la sélectionner, créer une table, insérer, lire.
CREATE DATABASE fioul CHARACTER SET utf8mb4;
USE fioul;
CREATE TABLE participant (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(80) NOT NULL,
email VARCHAR(120) UNIQUE
);
INSERT INTO participant (nom, email)
VALUES ('Ada Lovelace', 'ada@exemple.fr');
SELECT * FROM participant;
Quelques commandes d'exploration : SHOW DATABASES;, USE fioul;, SHOW TABLES;, DESCRIBE participant;, SELECT VERSION();.
Le projet Fioul Groupé stocke ses données principales en MongoDB, mais le même domaine se modélise très bien en relationnel — et c'est exactement ce que ferait l'API Spring avec une base SQL via JPA. Notre fil rouge SQL :
| Table | Rôle dans le domaine fioul |
|---|---|
| participant | un foyer qui rejoint une commande groupée |
| fournisseur | le distributeur de fioul |
| campagne | une commande groupée pour une commune, avec un prix au litre |
| commande | l'inscription d'un participant à une campagne (litres) |
Le script complet de cette base est fourni au chapitre 6 et dans le sommaire.
- Un SGBDR organise les données en tables reliées ; on les interroge en SQL.
- MySQL est client-serveur (port 3306) ; Workbench et le client CLI sont les deux outils.
- Cycle de base : CREATE DATABASE → USE → CREATE TABLE → INSERT → SELECT.
- Fil rouge : participant, fournisseur, campagne, commande.