Les systèmes informatiques ont besoin de garder en mémoire tout un tas d'informations. Comptes clients, état d'un abonnement ou encore tout simplement le contenu du site.
Ces informations sont stockées via des logiciels que l'on nomme "Système de Gestion de Bases de Données" ou SGBD. Un site web d'envergure utilise plusieurs technologies de base de données, chacune spécialisée pour une utilisation particulière. Entre autres :
- Travail sur d'énormes lots de données.
- Ou au contraire sur une donnée unitaire.
- Moteur de recherche.
- Identification des relations.
- Stockage de documents et de médias.
- Accès ultra rapide.
Le modèle relationnel
Les Systèmes de Gestion de Bases de Données Relationnelles (SGBDR) représentent la famille de SGBD la plus utilisée par les développeurs dans leur vie quotidienne. Les plus connus sont MySQL, Oracle, SQL Server ou PostgreSQL.
L'architecture d'une base de données relationnelle repose sur des principes logiques proches de la façon dont notre cerveau modélise le monde. Il identifie des entités (une voiture, un auteur, un chapitre...) et leurs relations : un auteur écrit plusieurs (0 ou N) chapitres, un chapitre peut être écrit par plusieurs (0 ou N) auteurs.
L'analogie du tableur
Visualise une base de données relationnelle comme étant un fichier Excel.
Le fichier est composé de plusieurs onglets. Chaque onglet est composé de colonnes et de lignes.
Par analogie :
- La table
- Un onglet représente ce qu'on nomme une "table". Dans notre cas, nous avons une table auteur et une table chapitre. Puisque ces deux entités ont une relation N <-> N, nous la modélisons dans une troisième table dédiée à faire la liaison.
- Le champ
- Les colonnes sont les "champs" de la table. Quand la table modélise une entité, les champs représentent ses attributs : un auteur a un nom, une photo...
- L'enregistrement
- Les lignes sont appelées "tuples", "entrées", "lignes" ou "enregistrements". Dans la table chapitre, nous avons une ligne pour le chapitre 1, une ligne pour le chapitre 2, etc.
Visuellement, ça ressemble à :
Table : chapitre
| identifiant | titre | date_publication | contenu |
|---|---|---|---|
| front-end | Chapitre 2 - Front-end | 2023-09-10 | Le front-end, c'est tout le code... |
| back-end | Chapitre 3 - Back-end | 2024-01-05 | Nous avons précédemment... |
Table : auteur
| identifiant | nom | photo |
|---|---|---|
| 1 | Nicolas GAUTRON | nicolas_gautron.jpg |
| 2 | John Doe | john_doe.jpg |
Table : chapitres_auteurs
| identifiant_chapitre | identifiant_auteur |
|---|---|
| front-end | 1 |
| back-end | 1 |
| back-end | 2 |
Clés primaires et clés étrangères
Chaque entité se voit attribuer manuellement ou automatiquement un identifiant unique. On le nomme "clé primaire".
La troisième table utilise ces clés primaires pour mettre en relation les chapitres et les auteurs entre eux. Pour elle, ce sont des "clés étrangères".
Dans le prochain chapitre, nous verrons que manipuler ces données grâce au SQL est à la portée de tous.