Processus de transformation itératif

Principe

En présence d'associations identifiantes, d'entité associatives ou encore d'entités spécialisées, la transformation doit se faire de manière itérative. En effet, les tables cibles de relations identifiantes doivent exister pour pouvoir créer les colonnes de clé étrangère dans les tables sources ; la ou les colonnes de clé étrangère doivent être conformes à la contrainte de clé primaire de la table cible à laquelle ou auxquelles elles se réfèrent.

Les associations identifiantes, les entités associatives ou encore les associations de spécialisations peuvent s'imbriquer et ainsi une table cible de relation identifiante peut être elle-même source d'une relation identifiante. Dès lors nous proposons le modèle de processus suivant pour effectuer une transformation garantissant un traitement correct de dépendances imbriquées :

  • Une initialisation qui consiste à créer les tables initiales ou racines du ou des graphes de dépendance à partir des entités indépendantes.
  • Un traitement itératif des dépendances.
  • Une finalisation consistant à créer les contraintes de clés étrangères pour les associations qui ne sont ni identifiantes, ni de degré n:n.

Nous nous appuierons sur l'exemple de la Figure 101 pour illustrer les différentes parties de la transformation. Les symboles ajoutés au MCD montrent les 3 parties du processus de transformation que nous allons illustrer ci-après.

Initialisation

L'initialisation consiste à créer les 3 tables issues des 3 entités indépendantes.

Traitement itératif des dépendances

1ère itération

La 1ère itération permet de créer la table Cours en tant que table dépendante de la table Modules.

2ème itération

La 2ème itération permet de:

3ème itération

La troisième itération permet de créer la table dépendante Resultats à partir de la table Inscriptions.

Finalisation

La finalisation consiste à créer les 2 contraintes de clés étrangères à partir des 2 associations qui ne sont pas identifiantes.