UML et bases de données

Post on 31-Dec-2015

54 views 0 download

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

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…