Bases de données relationnelles et normalisation
Les bases de données relationnelles sont au cœur des systèmes d'information modernes. Elles permettent de structurer les données sous forme de tables interconnectées grâce à des clés…

Quelle colonne de la table « Commande » agit comme clé étrangère vers la table « Client » ?
Après normalisation, quelles informations du client sont stockées dans la table « Client » ?
Quel avantage principal apporte la séparation des tables « Commande » et « Client » ?
Dans l'exemple de diagnostic patient, quelle règle de conception permet d'éviter la répétition de l'adresse du patient ?
Quel type de clé doit être ajouté à la table « Commande » pour la relier à la table « Client » ?
Quel est le rôle d'une clé primaire dans une table relationnelle ?
Quel problème surgit si l'on ne définit pas de clé primaire dans la table « Client » ?
Dans le contexte de la recherche médicale, pourquoi les bases de données relationnelles sont préférées aux simples feuilles de calcul ?
Introduction aux bases de données relationnelles
Les bases de données relationnelles sont au cœur des systèmes d'information modernes. Elles permettent de structurer les données sous forme de tables interconnectées grâce à des clés primaires et des clés étrangères. Cette leçon s’appuie sur un quiz portant sur les tables Commande et Client afin d’illustrer les concepts fondamentaux de la normalisation et de la conception de schémas relationnels.
1. Comprendre la clé primaire
Définition
Une clé primaire (Primary Key) est un attribut ou un groupe d'attributs qui identifie de façon unique chaque enregistrement d’une table. Aucun deux enregistrements ne peuvent partager la même valeur de clé primaire, ce qui garantit l’intégrité des données.
Exemple tiré du quiz
- Dans la table Commande, la colonne Id commande est la clé primaire. Elle permet de différencier chaque commande, même si d’autres champs (produit, prix, client) peuvent être identiques.
À retenir : Clé primaire = identifiant unique.
2. La clé étrangère et les relations entre tables
Qu’est‑ce qu’une clé étrangère ?
Une clé étrangère (Foreign Key) est un champ d’une table qui fait référence à la clé primaire d’une autre table. Elle crée le lien logique entre les deux tables et assure la cohérence des données lors des opérations d’insertion, de mise à jour ou de suppression.
Application dans le scénario
- La colonne Id client dans la table Commande est la clé étrangère qui pointe vers la clé primaire Id client de la table Client.
À retenir : Id client = FK vers Client.
3. Normalisation : pourquoi séparer les tables ?
Principe de base
La normalisation consiste à organiser les données en plusieurs tables afin de réduire les redondances et d’améliorer la cohérence. Chaque table doit contenir des informations qui dépendent directement de sa clé primaire.
Ce qui est stocké dans la table Client
- Après normalisation, la table Client ne conserve que les informations d’identité du client : prénom, nom, adresse.
À retenir : Identité = prénom, nom, adresse.
Avantages de la séparation
- Réduction des redondances : l’adresse du client n’est plus dupliquée dans chaque ligne de la table Commande.
- Facilité de mise à jour : modifier l’adresse d’un client ne nécessite qu’une seule modification.
- Meilleure intégrité référentielle grâce aux clés étrangères.
Le principal bénéfice est donc la réduction des redondances de données.
4. Cas pratique : diagnostic patient
Problème de duplication
Dans un tableau de diagnostics, répéter l’adresse du patient à chaque ligne entraîne une surcharge inutile et augmente le risque d’incohérence.
Solution de conception
- Créer une table séparée Patient contenant les champs Id patient, prénom, nom, adresse.
- Dans la table Diagnostic, ajouter une clé étrangère Id patient qui référence la table Patient.
Cette règle de conception évite la répétition de l’adresse du patient.
5. Types de clés à connaître
Clé primaire vs clé étrangère
- Clé primaire : identifie de façon unique chaque enregistrement d’une table.
- Clé étrangère : établit un lien vers la clé primaire d’une autre table.
Autres types de clés (non pertinents ici)
- Clé de hachage, clé de tri… Ces notions sont spécifiques à certains systèmes NoSQL ou à des optimisations de stockage, mais ne remplacent pas les clés primaires/étrangères dans le modèle relationnel.
6. Conséquences de l’absence de clé primaire
Problèmes rencontrés
Sans clé primaire, il devient impossible d’établir des relations fiables entre les tables. Par exemple, la table Client sans clé primaire ne peut pas être correctement liée à la table Commande, ce qui entraîne des ambiguïtés lors des requêtes et des mises à jour.
À retenir : Impossible d'établir des relations fiables avec d'autres tables.
7. Synthèse des bonnes pratiques
- Définir toujours une clé primaire pour chaque table.
- Utiliser des clés étrangères pour relier les tables entre elles.
- Appliquer les règles de normalisation (1NF, 2NF, 3NF) afin de limiter les redondances.
- Séparer les entités distinctes (ex. : Client, Commande, Patient, Diagnostic) dans des tables dédiées.
- Vérifier l’intégrité référentielle à chaque modification de données.
8. Quiz récapitulatif
Questions clés
- Quelle colonne constitue la clé primaire de la table Commande ? Id commande
- Quelle colonne agit comme clé étrangère vers la table Client ? Id client
- Quelles informations du client sont stockées dans la table Client après normalisation ? Prénom, Nom, Adresse
- Quel avantage principal apporte la séparation des tables Commande et Client ? Réduction des redondances de données
- Quelle règle de conception évite la répétition de l’adresse du patient ? Créer une table séparée pour les patients
- Quel type de clé doit être ajouté à la table Commande pour la relier à la table Client ? Clé étrangère (Foreign Key)
- Quel est le rôle d’une clé primaire ? Identifier de façon unique chaque enregistrement
- Quel problème surgit si aucune clé primaire n’est définie dans la table Client ? Impossible d'établir des relations fiables avec d'autres tables
En maîtrisant ces concepts, vous serez capable de concevoir des bases de données robustes, évolutives et faciles à maintenir.
