Cardinalités

clé étrangère en base de données
3 cardinalités (2 autour de l’association « se_situe » et une dernière tronquée)

Lorsque l’on conçoit une base de données avec le MCD de Merise, on obtient un schéma avec des entités et des associations. Pour préciser au mieux les associations, on utilise des cardinalités.

Définition des cardinalités

Ce sont des couples de valeur qui apportent des contraintes sur le MCD. Les cardinalités sont surtout importantes car elles traduisent des règles de gestion. Elles doivent être validées avec l’utilisateur final.

Cardinalités et associations CIF / CIM

Les cardinalités sont des caractères (0,1, n) qui fonctionnent par couple et qui sont présents de chaque côté d’une association (sur chaque « patte »). On utilise ce mot surtout au pluriel mais il est tout à fait possible de parler d’une cardinalité lorsqu’on évoque un côté de l’association. Les cardinalités donnent des indications très intéressantes et permettent par la suite de construire la base de données :

  • avec la création de clés étrangères dans le cas d’une CIF
  • avec la création d’une table intermédiaire dans le cas d’une CIM

C’est grace aux cardinalités que l’on est ensuite capable de créer soit des clés étrangères soit des tables intermédiaires dans le processus d’analyse depuis le MCD jusqu’à la mise en œuvre concrète de la base de données avec les instructions SQL de création de table et de mise en place de contraintes sur les clés (clés étrangères pour les CIF).

Les cardinalités possibles sont :

  • 0,1 : au minimum 0, au maximum 1 seule valeur (CIF) ;
  • 1,1 : au minimum 1, au maximum 1 seule valeur (CIF) ;
  • 0,n : au minimum 0, au maximum plusieurs valeurs ;
  • 1,n : au minimum 1, au maximum plusieurs valeurs.

Les cardinalités minimales sont soit 0 soit 1. Elles servent surtout à déterminer si une occurence est obligatoirement associée à une autre ou bien si elle est facultative. Dans l’exemple, une ville peut ne pas avoir de structure située sur son territoire (cardinalité minimale 0). Par contre, une structure doit obligatoirement se trouver dans une ville (cardinalité minimale 1).

Les cardinalités maximales (le côté droit ou le dernier caractère) définissent si la relation est une CIM ou une CIF. Si la cardinalité maximale est 1, alors on est en présence d’une CIF.

Cardinalités et types d’associations

  • Association hiérarchique : Lorsqu’une association à une cardinalité maximale à 1 d’un côté et une cardinalité maximale à n de l’autre côté. On a une dépendance fonctionnelle (une CIF)
  • Association non hiérarchique : Lorsqu’une association à n en cardinalité maximale de chaque côté de l’association.

Comment lire les cardinalités d’un MCD ?

Dans l’image, on a « 1,1 » en cardinalité du côté gauche de l’association et une cardinalité « 0,n » du côté droit. Concrètement, il faut lire les cardinalités ainsi :

  • Une structure se situe dans 1 et 1 seule ville ;
  • Dans une ville peut se situer 0 ou plusieurs (n) structures.

Comment déterminer les cardinalités ?

Certaines cardinalités sont évidentes. Dans la plupart des cas, il faudra demander confirmation aux utilisateurs. Ce sont eux qui sont capables de préciser les règles de gestion et la façon dont le métier doit être informatisé. Le même cas de figure peut ainsi avoir des implémentations différentes suivant les points de vue ou les entreprises. Pour bien définir les cardinalités, il faut simplement poser des questions. Dans notre cas, ça peut être :

  • Une structure se situe-t-elle dans une seule ville ? Ou bien peut-elle être présente dans plusieurs villes ?
  • Une ville peut-elle héberger plusieurs structures ?

En posant ce type de question, on arrive à préciser les cardinalités et on arrive aussi à lever des cas spécifiques qui n’avaient pas été imaginés ou qui étaient supposés évidents. En faisant ce travail, l’analyse va plus au fond des choses. Par exemple, de ces questions pourrait découler le besoin d’informatiser la notion d’établissement (une entreprise pourrait avoir plusieurs établissements) ou bien la notion de type de structure (oui, il est possible d’avoir plusieurs structures dans la même ville mais uniquement de type différents).

Autres définitions des cardinalités

En informatique, le modèle UML utilise lui aussi des cardinalités. On parle alors de multiplicité : c’est le nombre de relations possibles entre types. Si une classe « ville » peut avoir 10 « structures », il y a multiplicité 0..10.