UML et bases de donnes JeanClaude Bamba Christian
UML et bases de données Jean-Claude Bamba Christian Pagé
Plan n Problématique n n Modélisation UML->ER et ER->UML XML, UML et SGBDR Règles actives Outils CASE, UML et bases de données n n UML et SGBDR Together Conclusions
SGBDR - défis n n n Structures Composantes actives Communications avec extérieur (ex EJB)
SGBDR - défis n Mais: paradigmes objet inexistants n n n Héritage Encapsulation polymorphisme
Traduction de l'identifiant de la classe n n n Créer une colonne Identifiant unique de la classe Ajouter le nom de la classe de l’objet
Traduction des agrégations Select * from Personne, Adresse where Personne. Id=X and Personne. Id. Adresse=Adresse. Id L’association qui une agrégation particulière sera matérialisé par le fait qu’une Adresse ne peut exister par elle-même.
Traduction des relations select P 1. * from Personne=P 1, Personne=P 2 where P 1. Id. Conjoint=P 2. Id
Traduction de l'héritage Select * from Etudiant, Personne where Etudiant. Id=Personne. Id
Traduction du polymorphisme select * from Registariat, Etudiant, Personne where Registariat. rela= Etudiant. Id and Registariat. rela=Personne. Id select * from Registariat, Personne where Registariat. rela=Personne. Id
Ex: Polymorphisme et agrégation
Expression select * from A, E, D where A. Agr=E. Id and E. Id=D. Id select * from A, D where A. Agr=D. Id select * from B, A, E, D where A. Agr=E. Id and E. Id=D. Id and B. Id=A. Id select * from B, A, D where A. Agr=D. Id and B. Id=A. Id select * from C, A, E, D where A. Agr=E. Id and E. Id=D. Id and C. Id=A. Id select * from C, A, D where A. Agr=D. Id and C. Id=A. Id
Structures: reverse engineering n n Décrire en UML un schéma déjà existant Spécifier un méta-métamodèle adéquat Li Liwu, Zhao Xin (2003) UML Specification of relational databases. Journal of Object Technology 2(5): 87 -100
UML, Modèles et métamodèles Méta-Métamodèle Modèle utilisateur Objets
Défis de modélisation n n Clés Inclusions et dépendances fonctionnelles Dépendances inclusives binaires Étoiles Chemins
Boîte à outils n Stéréotypes UML n n Basés sur des métaclasses définies dans le métamodèle Valeurs d’étiquettes ( « tagged values » )
Classe relationnelle vs classe UML n n Stéréotype « persistent » Tuple = instance de la classe persistante (Insérez ici une expression OCL)
Clés n Étiquette {PK} pour chaque attribut de la clé primaire (Insérez ici une expression OCL)
Inclusions n n Stéréotype « Inclusion » Dépendance entre deux attributs de deux classes (Insérez ici une expression OCL)
Dépendances fonctionnelles n n n Stéréotype « Functional » Étiquette «{FD} » Ex: les attributs d’une classe ont une dépendance fonctionnelle vis-à-vis de la clé primaire (Insérez ici une expression OCL)
Dépendances fonctionnelles auto-référentielles n n « Classes persistantes cachées » Transformer en aggrégation
Dépendances inclusives autoréférentielles n n Autre type de « classe cachée » Traduire par une sous-classe
Étoiles n n n Classe dépendant de n autres classes Si n=2, classe associative Si n=3 ou plus, … hmm… on a un problème de normalisation!
Chemins n Si 1 -NF, pas de structures de données complexes! n n n « chemins d’accès » entraînent des dépendances et des jointures Intéressant de fusionner des classes pour diminuer le # de dépendances Associations, agrégations ou compositions
UML, XML et BD relationnelles… n n n Stocker le modèle UML avec XMI Automatiser le traitement du modèle UML Valider le modèle UML Hayashi Larry S, Hatton John (2001) Combining UML, XML and relational database technologies – the best of all worlds for robust linguistic databases. In Proceedings of the IRCS Workshop on Linguistic Databases. pp 115 -124
Génération de la BD
Consultation de la BD
Mise à jour de la BD
Avantages et inconvénients n Avantages n n « Client universel » Délégation de responsabilité à « l’intergiciel » XML n Inconvénients n n Schéma pas optimal Complexité du traitement des règles actives
Règles actives n n n Gachettes Procédures stockées Méthodes associées aux classes (ou à des méta-classes)
Outils CASE, UML et bases de données n n Computer Assisted Software Engineering Les principaux n n Rational Rose (IBM) Together (Borland)
Together n n n Modélisation UML Modélisation E/R Génération de code SQL (DDL) Génération de documentation Compatible avec la plupart des IDE
Environnement Together
Together n n n Import/export de schéma Fait le pont entre er et uml Utile pour la création/intégration d’applications multi-niveaux
Communication avec un SGBD
Importation/Exportation n Importation Format XMI Archive J 2 EE Schéma de BD n n n Exportation Project JBuilder Format XMI Schéma de BD
Conclusions n n n « No database is an island » UML permet de formaliser et généraliser la modélisation d’applications et de bases de données Encore un apprentissage de plus…
- Slides: 36