• 8 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 5/13/24

Tenez compte de la redondance dans votre modélisation

Commençons par une devinette. Une incohérence est présente dans notre fichier, entre les identifiants 2018-650 et 2018-672 :

Screenshot d'un extrait de la base de données où se trouve l’incohérence
Extrait de la base de données où se trouve l’incohérence

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 !

Tableau avec une colonne, dont le titre est Réalisateur. puis 6 lignes, avec comme contenu : Cathy VEREY, Emmanuel Hamon, Julia Rezende, Frédéric HAZAN, Luc Besson, Hector CABELL REYES
Tableau indépendant des réalisateurs, que l’on nommera table  realisateur_ice
Tableau des lieux de tournage comprenant 5 colonnes, nommées respectivement : identifiant du lieu, année de tournage, type de tournage, titre, localisation de la scène
Tableau indépendant des lieux de tournage

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 !

Tableau comprenant 2 colonnes, nommées identifiant réalisateur, et prénom /nom. Puis 6 lignes. Les lignes de la première colonne réalisateur sont numérotées de 1 à 6. Et la seconde colonne comprend les noms et prénom des réalisateurs
Table realisateur_ice
Tableau comprenant 6 colonnes, respectivement : identifiant du lieu, année de tournage, type de tournage, titre, réalisé par, localisation de la scène
Table lieu_de_tournage

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 table lieu_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. 

Example of certificate of achievement
Example of certificate of achievement