Modéliser une base de données
Relation, attribut, domaine, clés et dépendances : construire un modèle de données cohérent pour une situation de gestion.
Environ 35 minutes
- Distinguer relation et association
- Choisir des clés adaptées aux règles métier
- Interpréter une dépendance fonctionnelle
- Identifier les contraintes d’intégrité
Deux personnes portant le même nom sont-elles le même client ?
La boutique fictive Traverse suit ses clients et leurs commandes. Un simple tableau répète les adresses à chaque vente et rend les corrections difficiles. Pour organiser ces données, il faut déterminer ce que représente chaque ligne, comment l’identifier et comment la relier aux autres. Tous les noms, identifiants et montants de cette leçon sont fictifs.
1. Organiser les données selon leur sens
Une base de données rassemble des données organisées pour des usages définis. Un système de gestion de base de données, ou SGBD, est le logiciel qui permet notamment leur stockage, leur interrogation et l’application de contraintes. Le modèle relationnel décrit les données sous forme de relations, représentées en pratique par des tables. Une relation possède des attributs, représentés par les colonnes, et des lignes qui décrivent ses occurrences.
Le mot relation a ici un sens précis : il désigne une structure de données comme CLIENT. Le lien métier entre un client et une commande est une association. Confondre les deux empêche de comprendre le modèle. Une entité est un objet du domaine étudié, par exemple un client, un produit ou une commande. Le passage aux relations traduit les règles de gestion ; il ne suffit pas de dessiner un tableau pour que ce tableau représente correctement l’activité.
Un attribut décrit une propriété : nom, date de commande, montant. Son domaine indique les valeurs autorisées. Un montant peut être un nombre décimal non négatif ; un état peut appartenir à une liste de valeurs prévues. Le type informatique et la règle métier se complètent. Un nombre entier peut être techniquement valide mais impossible dans le contexte : une quantité négative ne convient pas à une ligne de vente ordinaire.
Exemple résolu
Deux clients fictifs portent le nom Martin. Le premier habite à Lyon, le second à Lille. Peut-on utiliser le nom seul comme identifiant ? Propose une relation CLIENT.
- Étape 1 : Le nom n’est pas unique : deux personnes différentes ont la même valeur.
- Étape 2 : On attribue un identifiant stable distinct, par exemple 1 et 2, sans lui donner un sens métier changeant.
- Étape 3 : La relation CLIENT peut comporter id_client, nom et ville. Les lignes sont (1, Martin, Lyon) et (2, Martin, Lille).
Résultat : La clé retenue est id_client. Le nom reste une propriété descriptive, et deux noms identiques sont autorisés.
Piège à éviter : Interdire tous les doublons de nom supprimerait des clients réels distincts : l’unicité dépend de l’attribut concerné.
À toi d'essayer
Une bibliothèque possède trois exemplaires du même roman. Le titre peut-il identifier chaque exemplaire prêté ? Propose deux objets à distinguer.
Voir la réponseMasquer la réponse
Non : le titre décrit l’œuvre ou l’édition, pas chacun des exemplaires physiques. Il faut distinguer le livre décrit et l’exemplaire possédant son propre identifiant. Un prêt référence un exemplaire précis pour savoir lequel doit être rendu.
2. Identifier et relier les occurrences
Une clé est un ensemble minimal d’attributs permettant de distinguer chaque ligne. La clé primaire est celle choisie comme identifiant principal de la relation ; elle doit être unique et renseignée. Une clé peut comporter plusieurs attributs. La stabilité et la simplicité de l’identifiant facilitent les usages. Un numéro de client est généralement plus adapté qu’une combinaison de données personnelles susceptibles de changer.
Une clé étrangère est un attribut ou un ensemble d’attributs qui référence une clé admissible d’une relation. Dans notre modèle, id_client de COMMANDE référence la clé primaire de CLIENT. Le même client peut apparaître dans plusieurs commandes ; la valeur étrangère n’est donc pas nécessairement unique. Une référence obligatoire doit être renseignée et correspondre à un client existant. Une référence facultative exige une règle explicite sur l’absence de valeur.
La cardinalité exprime combien d’occurrences peuvent être associées selon les règles métier. Dans le cas choisi, un client peut n’avoir encore aucune commande ou en avoir plusieurs ; chaque commande appartient à un seul client. Cette règle explique la présence de la clé étrangère dans COMMANDE. Elle ne se déduit pas seulement des données observées un jour : voir un client avec une commande ne prouve pas qu’il ne pourra jamais en avoir deux.
Exemple résolu
CLIENT contient les identifiants 1 et 2. On prépare les commandes (101, client 1, 80 €), (102, client 1, 120 €) et (103, client 9, 40 €). Quelle ligne pose un problème et pourquoi ?
- Étape 1 : Les commandes 101 et 102 peuvent appartenir au même client : id_client est une clé étrangère répétable.
- Étape 2 : La commande 103 référence 9, qui n’existe pas dans CLIENT.
- Étape 3 : Il faut vérifier l’information métier et corriger la référence ou créer le client légitime par la procédure prévue ; on ne devine pas son identité.
Résultat : La commande 103 viole l’intégrité référentielle du modèle. La répétition de 1 dans les deux autres commandes est cohérente.
Piège à éviter : Confondre unicité de la clé primaire et unicité de la clé étrangère interdirait à tort les commandes répétées d’un client.
À toi d'essayer
Une relation ADHERENT contient 10 et 11. Une relation INSCRIPTION contient trois lignes : (501, 10), (502, 10), (501, 11), où le premier nombre est la clé primaire. Quel défaut apparaît malgré des références existantes ?
Correction détaillée pas à pasDans ce chapitre : 2 corrections détaillées.
3. Réduire les répétitions trompeuses
Une dépendance fonctionnelle signifie qu’une valeur d’un attribut, ou d’un groupe d’attributs, détermine une seule valeur d’un autre attribut selon les règles du modèle. Ici, id_client détermine le nom et la ville du client dans l’état courant. On l’écrit id_client → nom, ville. Cette dépendance n’affirme pas qu’une personne ne déménage jamais : elle décrit l’information conservée à un moment donné.
Si le nom et la ville du client sont répétés dans chaque commande, une correction doit être faite à plusieurs endroits. Certaines lignes peuvent rester anciennes : c’est une anomalie de mise à jour. Séparer CLIENT et COMMANDE permet de garder l’information courante du client dans une relation adaptée. Cependant, l’adresse historique de livraison d’une commande peut être une donnée distincte à conserver. Il faut discuter le sens avant de supprimer une répétition utile à l’historique.
Une association plusieurs-à-plusieurs demande généralement une relation supplémentaire. Une commande contient plusieurs produits ; un produit peut figurer dans plusieurs commandes. LIGNE_COMMANDE relie les deux et porte la quantité. Dans l’hypothèse où un produit figure au plus une fois par commande, le couple id_commande et id_produit est une clé composée. La quantité dépend du couple : elle n’est ni la quantité totale du produit en stock, ni une propriété du client.
Exemple résolu
La commande 101 contient deux unités du produit P1 et trois unités de P2. La commande 102 contient une unité de P1. Propose les lignes de LIGNE_COMMANDE et identifie la clé.
- Étape 1 : Les occurrences sont (101, P1, 2), (101, P2, 3) et (102, P1, 1).
- Étape 2 : 101 seul ne suffit pas : il apparaît sur deux lignes. P1 seul ne suffit pas non plus.
- Étape 3 : Le couple commande-produit distingue chaque ligne dans la règle donnée. Les deux identifiants référencent aussi les relations correspondantes.
Résultat : La clé composée est (id_commande, id_produit). Les quantités sont respectivement 2, 3 et 1.
Piège à éviter : Stocker une liste de produits dans une seule cellule complique les contrôles et les traitements de chaque ligne.
Adapter un modèle commence par une nouvelle règle. Si un produit peut apparaître plusieurs fois dans une même commande avec des conditions différentes, le couple précédent ne suffit plus. On peut introduire un numéro de ligne dans la commande. Le choix dépend du besoin, pas d’une recette universelle. La modélisation demande de tester plusieurs cas, y compris les absences, les répétitions autorisées et les changements d’état.
4. Vérifier le modèle et ses limites
L’intégrité d’entité protège l’identification des lignes ; l’intégrité référentielle protège la cohérence des références ; les contraintes de domaine portent sur les valeurs admissibles. Des règles métier supplémentaires peuvent limiter des situations particulières. Le SGBD peut faire respecter des contraintes déclarées et activées. Il ne sait pas, à lui seul, qu’une adresse saisie est celle du bon client ou qu’une quantité respecte une décision commerciale absente du modèle.
NULL peut représenter une information absente ou inconnue dans une table SQL. Ce n’est pas le nombre zéro ni une chaîne vide. Son usage doit être prévu et interprété avec soin. Une clé primaire ne doit pas être manquante. Pour une référence facultative, l’absence peut être autorisée, mais elle ne doit pas masquer une erreur de saisie. Le modèle, les contraintes techniques et les contrôles humains participent ensemble à la qualité des données.
À toi d'essayer
Une entreprise veut conserver plusieurs adresses de livraison pour un même client et l’adresse utilisée pour chaque commande passée. Pourquoi remplacer simplement la ville dans CLIENT ne suffit-il pas ? Propose une adaptation.
Correction détaillée pas à pasDans ce chapitre : 2 corrections détaillées.
Au bac : justifier une structure de données
- Identifie les objets, leurs propriétés et les règles de gestion du dossier.
- Choisis les clés, puis explique chaque référence avec un exemple valide et un exemple invalide.
- Repère les dépendances et les répétitions qui peuvent provoquer une incohérence.
- Teste une évolution du besoin et conclus sur les adaptations. La méthode sert l’étude et le projet ; le SIG n’est pas une épreuve écrite autonome.
Erreurs fréquentes : relation ne signifie pas association ; une clé étrangère peut se répéter ; une contrainte technique ne prouve pas la vérité du monde réel ; le modèle doit distinguer donnée courante et donnée historique.
Vocabulaire
- Relation :
- Structure du modèle relationnel, représentée par une table.
- Domaine :
- Ensemble des valeurs admissibles pour un attribut.
- Clé composée :
- Clé formée de plusieurs attributs nécessaires ensemble.
- Intégrité référentielle :
- Cohérence des références entre les occurrences reliées.
Bilan
| Repère | Sens pour la gestion |
|---|---|
| Identifier | Une clé distingue les lignes selon les règles choisies. |
| Relier | Une clé étrangère référence une occurrence admissible. |
| Vérifier | Les contraintes et les cas d’essai révèlent les incohérences. |
Pour poursuivre : https://www.allostmg.fr/exercices.
À retenir
- Une relation est une table ; une association décrit un lien métier.
- La clé primaire est unique et renseignée.
- La clé étrangère référence une clé admissible et peut être répétée.
- Une dépendance fonctionnelle traduit une règle du modèle.
Fiche de révision
Question initiale
que représente exactement une ligne ? La réponse guide le choix des attributs.
Contrôle des clés
cherche deux occurrences distinctes qui partageraient l’identifiant proposé.
Commande-produit
le couple identifie une ligne si le produit n’apparaît qu’une fois par commande.
Qualité
compare les données aux règles métier, aux références existantes et au besoin de conserver l’historique.
Et maintenant ?
Tu as lu le cours. L’étape suivante tient en une action.
Relis le coursLes exercices de ce chapitre arrivent bientôt.Prolonge l’expérience !
Continue à explorer ce chapitre à travers de nouvelles activités, des défis et des expériences interactives. Avec Premium, l’apprentissage continue !
Ici, tu débloques aussi 2 corrections détaillées.
Parent ? Suivez les progrès de votre enfant.
