UML et bases de données

36
UML et bases de données Jean-Claude Bamba Christian Pagé

description

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 - PowerPoint PPT Presentation

Transcript of UML et bases de données

Page 1: UML et bases de données

UML et bases de données

Jean-Claude BambaChristian Pagé

Page 2: UML et bases de données

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

Page 3: UML et bases de données

SGBDR - défis

Structures Composantes actives Communications avec extérieur

(ex EJB)

Page 4: UML et bases de données

SGBDR - défis

Mais: paradigmes objet inexistants Héritage Encapsulation polymorphisme

Page 5: UML et bases de données

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

Page 6: UML et bases de données

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

Page 7: UML et bases de données

Traduction des relations

select P1.* from Personne=P1,Personne=P2

where P1.IdConjoint=P2.Id

Personne

IdNomPrenomIdAdresseIdConjoint

Adresse

FK1 IdAdrAdresse2

Page 8: UML et bases de données

Traduction de l'héritage

Select * from Etudiant, Personne where Etudiant.Id=Personne.Id

Personne

FK1 IdNomPrenomIdAdresse

Etudiant

IdProgramme

Page 9: UML et bases de données

Traduction du polymorphisme

select * from Registariat, Etudiant,Personnewhere Registariat.rela= Etudiant.Idand Registariat.rela=Personne.Idselect * from Registariat,Personnewhere Registariat.rela=Personne.Id

Page 10: UML et bases de données

Ex: Polymorphisme et agrégation

Page 11: UML et bases de données

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

Page 12: UML et bases de données

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

Page 13: UML et bases de données

UML, Modèles et métamodèles

Méta-Métamodèle

Objets

Modèle utilisateur

Métamodèle

Page 14: UML et bases de données

Défis de modélisation

Clés Inclusions et dépendances

fonctionnelles Dépendances inclusives binaires Étoiles Chemins

Page 15: UML et bases de données

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 »)

Page 16: UML et bases de données

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)

Page 17: UML et bases de données

Clés

Étiquette {PK} pour chaque attribut de la clé primaire

(Insérez ici une expression OCL)(Insérez ici une expression OCL)

Page 18: UML et bases de données

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)

Page 19: UML et bases de données

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)

Page 20: UML et bases de données

Dépendances fonctionnelles auto-référentielles

« Classes persistantes cachées » Transformer en aggrégation

Page 21: UML et bases de données

Dépendances inclusives auto-référentielles

Autre type de « classe cachée » Traduire par une sous-classe

Page 22: UML et bases de données

É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!

Page 23: UML et bases de données

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

Page 24: UML et bases de données

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

Page 25: UML et bases de données

Génération de la BD

Générer lemodèle (UML)

Traduire en XMLStocker (SGBDR)

Page 26: UML et bases de données

Consultation de la BD

Extraire (SGBDR) Traduire en XMLAfficher chez le

client (www)

Page 27: UML et bases de données

Mise à jour de la BD

Entrer les données(application client)

Valider par XMLGénérer SQL

Stocker (SGBDR)

Page 28: UML et bases de données

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

Page 29: UML et bases de données

Règles actives

Gachettes Procédures stockées

Méthodes associées aux classes (ou à des méta-classes)

Page 30: UML et bases de données

Outils CASE, UML et bases de données

Computer Assisted Software Engineering

Les principaux Rational Rose (IBM) Together (Borland)

Page 31: UML et bases de données

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

Page 32: UML et bases de données

Environnement Together

Page 33: UML et bases de données

Together

Import/export de schéma Fait le pont entre er et uml Utile pour la création/intégration

d’applications multi-niveaux

Page 34: UML et bases de données

Communication avec un SGBD

Page 35: UML et bases de données

Importation/Exportation

Importation Format XMI Archive J2EE Schéma de BD

Exportation Project JBuilder Format XMI Schéma de BD

Page 36: UML et bases de données

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…