360 likes | 495 Views
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
E N D
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
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
Méta-Métamodèle Métamodèle Modèle utilisateur Objets UML, Modèles et métamodèles
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 115-124
Avantages « Client universel » Délégation de responsabilité à « l’intergiciel » XML Inconvénients Schéma pas optimal Complexité du traitement des règles actives Avantages et inconvénients
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
Together • Import/export de schéma • Fait le pont entre er et uml • Utile pour la création/intégration d’applications multi-niveaux
Importation Format XMI Archive J2EE Schéma de BD Exportation Project JBuilder Format XMI Schéma de BD Importation/Exportation
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…