Commençons par une devinette. Une incohérence est présente dans notre fichier, entre les identifiants 2018-650 et 2018-672 :
Vous l’avez ?
La voici : la réalisatrice de la série Vernon Subutex est orthographiée de deux manières différentes : « Cathy Verne » et « Cathy Verney ».
Quel est le problème ?
Le souci, c’est que l’information selon laquelle la productrice de Vernon Subutex est Cathy Verney est présente à plusieurs endroits dans notre fichier : aux identifiants 2018-658, 2018-659, 2018-660, etc.
On appelle ceci une redondance d’information.
La redondance, c’est problématique, pour différentes raisons.
Premièrement cela peut provoquer des incohérences dans les données : c’est ce que nous venons de voir.
Ensuite, imaginez que Cathy Verney change de nom. Il faudra actualiser l’information à plusieurs endroits dans le fichier, et on aura vite fait d’oublier une ou deux lignes : cela créera encore des incohérences !
Imaginez enfin que nous décidions de supprimer Vernon Subutex de notre BDD. Cela supprimera également les informations relatives à Cathy Verney. Or selon les cas d’utilisation, on peut très bien souhaiter qu’un réalisateur puisse exister dans notre base, même si elle ou il n’est associé à aucun lieu de tournage. De même, on ne peut actuellement pas ajouter de réalisateur s'il n’a pas tourné au moins une scène, car notre fichier décrit des lieux de tournage et non pas des réalisateurs/réalisatrices.
Alors, quelle est la solution ?
Je vous laisse chercher ! Un indice : on a dit que l’on veut qu’un réalisateur puisse exister dans notre base, même sans avoir tourné de scène dans l’espace public : on veut donc une plus grande indépendance entre les lieux de tournage et les réalisateurs.
Vous avez deviné ?
Il suffit de créer un nouveau tableau contenant les réalisateurs !
Avec ce nouveau tableau, les réalisateurs pourront exister indépendamment des tournages qu’ils ont réalisés ou non. C’est un premier avantage.
Mais il y a un autre avantage important : dans ce tableau, un seul réalisateur n’est présent que sur une seule ligne ! Ainsi, si vous souhaitez actualiser une information relative à un seul réalisateur, vous ne le ferez qu’à un seul endroit ! Fini les incohérences liées à la redondance d'informations.
Oui mais avec la solution proposée, il n’est plus possible de savoir quel réalisateur a tourné quel film ! Les informations sont séparées dans deux tableaux, mais impossible de faire le lien entre eux !
C’est une question très pertinente. On peut y répondre grâce à un système d’identifiant.
Pour chaque réalisateur, on attribue un identifiant (1, 2, 3, etc.), et dans la tableau des lieux de tournage, on ajoute une colonne qui donne l’identifiant du réalisateur du film en question ! Ainsi, l’ordinateur peut rapidement faire le lien entre les deux tableaux !
Avez-vous déjà remarqué que l’on vous attribue toujours un « identifiant client », lorsque vous êtes client d’une entreprise (fournisseur d’électricité, commandes de produits en ligne, services administratifs, banque, etc.) ?
Vous êtes-vous déjà demandé pourquoi ? C’est parce que dans la BDD de cet organisme, votre identifiant permet de faire très facilement le lien entre les multiples tableaux !
Cette méthode est propre au modèle relationnel (le MLD). Au niveau du vocabulaire, on dit que :
L’identifiant réalisateur est la clé primaire de la table
realisateur_ice
;La colonne
Réalisé par
de la tablelieu_de_tournage
est une clé étrangère qui référence la clé primaire de la table realisateur_ice.
En résumé
Quand une information est présente plusieurs fois dans une base de données, on dit qu’il y a redondance.
Une redondance dans un tableau de données peut provoquer des incohérences dans les données.
Selon la modélisation relationnelle, le moyen d’y remédier est de séparer ce tableau en deux tableaux, liés entre eux par une clé étrangère.
Voilà ! Dans cette première partie, vous avez découvert les différentes étapes d’une modélisation de base de données, ainsi que la notion de redondance, qu’il faut éviter à tout prix. Il est maintenant temps d’approfondir la première étape de la modélisation : le MCD, que nous réaliserons grâce au diagramme de classes UML.