Download - UML et bases de données
UML et bases de données
Jean-Claude BambaChristian 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.
Personne
IdNomPrenomIdAdresse
Adresse
FK1 IdAdresse1Adresse2
Traduction des relations
select P1.* from Personne=P1,Personne=P2
where P1.IdConjoint=P2.Id
Personne
IdNomPrenomIdAdresseIdConjoint
Adresse
FK1 IdAdrAdresse2
Traduction de l'héritage
Select * from Etudiant, Personne where Etudiant.Id=Personne.Id
Personne
FK1 IdNomPrenomIdAdresse
Etudiant
IdProgramme
Traduction du polymorphisme
select * from Registariat, Etudiant,Personnewhere Registariat.rela= Etudiant.Idand Registariat.rela=Personne.Idselect * from Registariat,Personnewhere Registariat.rela=Personne.Id
Ex: Polymorphisme et agrégation
Expressionselect * from A,E,Dwhere A.Agr=E.Id and E.Id=D.Idselect * from A,Dwhere A.Agr=D.Idselect * from B,A,E,Dwhere A.Agr=E.Id and E.Id=D.Idand B.Id=A.Idselect * from B,A,Dwhere A.Agr=D.Idand B.Id=A.Idselect * from C,A,E,Dwhere A.Agr=E.Id and E.Id=D.Idand C.Id=A.Idselect * from C,A,Dwhere A.Agr=D.Idand 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)(Insérez ici une expression OCL)
Clés
Étiquette {PK} pour chaque attribut de la clé primaire
(Insérez ici une expression OCL)(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)(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)(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
Génération de la BD
Générer lemodèle (UML)
Traduire en XMLStocker (SGBDR)
Consultation de la BD
Extraire (SGBDR) Traduire en XMLAfficher chez le
client (www)
Mise à jour de la BD
Entrer les données(application client)
Valider par XMLGénérer SQL
Stocker (SGBDR)
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…