UML et bases de données Jean-Claude Bamba Christian Pagé
Plan Problématique UML et SGBDR Modélisation Modélisation UML->ER et ER->UML XML, UML et SGBDR Règles actives Outils CASE, UML et bases de données Together Conclusions
SGBDR - défis Structures Composantes actives Communications avec extérieur (ex EJB)
SGBDR - défis Mais: paradigmes objet inexistants Héritage Encapsulation polymorphisme
Traduction de l'identifiant de la classe 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.IdAdresse=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 P1.* from Personne=P1,Personne=P2 where P1.IdConjoint=P2.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 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 Objets Modèle utilisateur Métamodèle
Défis de modélisation Clés Inclusions et dépendances fonctionnelles Dépendances inclusives binaires Étoiles Chemins
Boîte à outils Stéréotypes UML Basés sur des métaclasses définies dans le métamodèle Valeurs d’étiquettes (« tagged values »)
Classe relationnelle vs classe UML Stéréotype « persistent » Tuple = instance de la classe persistante ( Insérez ici une expression OCL )
Clés Étiquette {PK} pour chaque attribut de la clé primaire ( Insérez ici une expression OCL )
Inclusions Stéréotype « Inclusion » Dépendance entre deux attributs de deux classes ( Insérez ici une expression OCL )
Dépendances fonctionnelles 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 « Classes persistantes cachées » Transformer en aggrégation
Dépendances inclusives auto- référentielles Autre type de « classe cachée » Traduire par une sous-classe
Étoiles 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 Si 1-NF, pas de structures de données complexes! « 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… 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
Génération de la BD
Consultation de la BD
Mise à jour de la BD
Avantages et inconvénients Avantages « Client universel » Délégation de responsabilité à « l’intergiciel » XML Inconvénients Schéma pas optimal Complexité du traitement des règles actives
Règles actives Gachettes Procédures stockées Méthodes associées aux classes (ou à des méta-classes)
Outils CASE, UML et bases de données Computer Assisted Software Engineering Les principaux Rational Rose (IBM) Together (Borland)
Together 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 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 Importation Format XMI Archive J2EE Schéma de BD Exportation Project JBuilder Format XMI Schéma de BD
Conclusions « 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…