MCD et XML

1 Objectifs

Sauf pour des cas très simples, il n'est pas aisé de construire un document XML dont la structure est satisfaisante et dont les informations ne sont pas (trop) redondantes. Avoir les outils (les schémas XML) ne suffit pas pour construire un bon modèle, un bon dialecte XML. Par ailleurs, il existe de nombreuses méthodes pour modéliser les données. Merise en propose une basée sur le modèle Entité-Association-Propriété (EAP) : le modèle conceptuel des données (MCD). Par conséquent, l'approche dans ce chapitre est de modéliser le système à l'aide de cet outil puis, en appliquant quelques règles, de le transformer en un schéma XML (passer du modèle conceptuel -MCD- au modèle logique des données -MLD-). Dans la suite, nous considérerons connue le modèle EAP.

SI à modéliser -> EAP (MCD) -> XML (MLD)

Pour plus de renseignements, vous pouvez vous reporter au le module B302 en L3 e-miage. Voici aussi quelques pointeurs pour vous mettre à niveau :

Attention : il ne s'agit pas, ici, de présenter un dialecte XML pour le modèle EAP, mais plutôt un dialecte spécifique au problème modélisé. En effet, une approche intéressante (à développer en exercice) est de déterminer un dialecte XML permettant de représenter un diagramme EAP (comme il existe XMI pour UML). Cependant, ce type de dialecte rend le document XML confus, lourd et pas forcément facile à traiter dans le cadre du SI modélisé et implémenté.

La méthode présentée ici est très proche de celle permettant de passer d'un modèle EAP à un modèle relationnel (voir le module B210 en L3 e-miage). Cependant, la cible étant de faire des dialectes spécifiques, elle n'est pas automatisable, elle est partielle (ne traite pas tous les cas) et elle demande des ajustements qui dépendent du système à modéliser.

2 Exemple "fil rouge"

3 Première approche

4 Optimisations par les cardinalités

5 Association personnalisée

6 Héritage et entités

7 Optimisations par les contraintes

8 Conclusion

Le méthode présentée ici est un guide pour faciliter la construction d'un langage (un dialecte) XML par rapport à un monde à représenter. Elle n'est pas complète et ne permet pas de traiter de manière automatique tous les cas possibles. C'est un point de départ générique. Il est évident que des spécificités peuvent être exploitées pour améliorer la structure et minimiser la redondance.


Exercices et tests :

Exercice 1

À l'université, les étudiants sont connus par leur nom, prénom, leur âge et leur numéro d'inscription. Pour chaque étudiant, on dispose du nom, du numéro de bureau et du numéro de téléphone de son enseignant référent (enseignant-chercheur qui travaille à l'université qui le suit dans ses études et qui peut être contacté en cas de besoin). Un enseignant peut s'occuper de plusieurs étudiants. Chaque étudiant a obligatoirement un seul enseignant pour sa scolarité et, s'il n'en a pas choisi un, l'UFR peut lui proposer une liste de personnes qui n'ont pas d'étudiant en charge, mais qui sont susceptibles d'en avoir un. Afin d'évaluer la charge d'encadrement, il sera aussi mémorisé le temps passé par l'enseignant à s'occuper de chacun des étudiants dont il a la charge. Ceci peut donner le modèle suivant :

EAP Enseignant référent

Proposez un modèle de document XML pour cette analyse.

Solution

Exercice 2

Nous voulons modéliser une gestion de prêts de livres dans une médiathèque (exercice inspiré de [AnV01]). Une solution a conduit au MCD suivant :

EAP Emprunt d'ouvrage avec historique

Proposez un document XML, sans redondance, permettant de mémoriser les emprunts.

Proposez une nouvelle solution avec plus de contrôles mais aussi avec plus de redondance.

Solution

Exercice 3

On souhaite créer une base de données destinée à la gestion des pays, des fleuves, des espaces maritimes (exercice inspiré de [Bue08]).

Chaque pays est connu par un nom, une superficie, un nombre d'habitants et la liste des fleuves qui le traversent. Un fleuve est connu par son nom, sa longueur, le pays dans lequel il prend sa source, l'espace maritime dans lequel il se jette, la liste des pays qu'il traverse et la distance parcourue dans chacun de ces pays. Un espace maritime est connu par un nom, un type ("mer" ou "océan"), la liste des pays qu'il côtoie et la liste des fleuves qui s'y jettent. Ceci peut donner le modèle suivant :

EAP Enseignant référent

Proposez un modèle de document XML complet pour cette analyse. Vous préciserez ce que votre modèle ne peut pas représenter ou vérifier.

Solution

Exercice 4

Proposez un dialecte XML permettant de représenter un diagramme EAP de base, c'est-à-dire sans l'héritage, sans les contraintes, sans les classes d'association etc.