Modéliser les données avec MySQL Workbench

Image non disponible


précédentsommairesuivant

7. Associations réflexives (nomenclatures, hiérarchies)

7.1. Nomenclatures




Reprenons un exemple proposé par Donald Chamberlin (co-inventeur de SQL avec Raymond Boyce) et qui figure dans son article « Recursion in SQL: Tips and Techniques », paru en mai 1996 dans Database Programming and Design. Cet exemple concerne plus précisément une nomenclature des pièces qui entrent dans la composition des ailes d'avion.

Les tables sont les suivantes :

Image non disponible
Figure 7.1 - Nomenclature, contenu des tables




Graphe correspondant (une aile est composée de 5 longerons, 1 aileron, 1 train ; etc.) :

Image non disponible
Figure 7.2 - Nomenclature, graphe




Une pièce peut entrer dans la composition de plusieurs pièces (sauf d'elle-même...) et une pièce peut être composée de plusieurs autres pièces. La modélisation avec MySQL Workbench ne pose pas de problème particulier, on met en œuvre deux liens identifiants (icône « 1:n Identifying Relationship ») et on remplace la cardinalité 1,N par 0,N tant pour les composants (une aile n'entre dans la composition d'aucune pièce) que pour les composés (un rivet n'est composé d'aucune pièce) :

Image non disponible
Figure 7.3 - Nomenclature (MLD)




Pour afficher le nom des rôles, se reporter au paragraphe 10.11. Pour la petite histoire, la représentation ci-dessus correspond à la dérivation du MCD merisien suivant :

Image non disponible
Figure 7.4 - Nomenclature (MCD Merise)




Ou à la dérivation du diagramme de classes UML :

Image non disponible
Figure 7.5 - Nomenclature (diagramme de classes)

7.2. Hiérarchies



Prenons le cas de la hiérarchie des personnes de l'entreprise Dubicobit : une personne peut être encadrée par une personne au plus (le président n'est encadré par personne, sic !) et une personne peut encadrer plusieurs personnes. La modélisation conceptuelle est la suivante :

Image non disponible
Figure 7.6 - Hiérarchie - MCD, DC



Cette modélisation conceptuelle donne habituellement lieu au diagramme MWB suivant, caractéristique de l'auto-référence :

Image non disponible
Figure 7.7 - Auto-référence avec MySQL Workbench



Mais comme cette façon de procéder permet au bonhomme Null d'infecter la base de données, il est préférable de représenter ainsi la hiérarchie :

Image non disponible
Figure 7.8 - Nomenclature sans bonhomme Null



Pour ceux qui utilisent la notation « Connect to columns " », c'est-à-dire « à la ACCESS », il est intéressant de comparer la représentation d'une hiérarchie selon ACCESS et MySQL Workbench.

Représentation selon MySQL Workbench :

Image non disponible
Figure 7.9 - Hiérarchie selon MySQL Workbench (dans le style ACCESS)



Représentation selon ACCESS :

Image non disponible
Figure 7.10 - Hiérarchie selon ACCESS (natif)




précédentsommairesuivant

  

Copyright © 2014 - François de Sainte Marie. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.