De UML SQL> une synthse
Christian Soutou
http://icare.iut-blagnac.fr/soutou
You cannot design databases without a familarity with the techniques of the ER diagramming R.J. Muller, Database Design for Smarties, Using UML for Data Modeling, Morgan & Kaufman, 1999
C. Soutou - 2006 2
Plan
Historique / Gnralits Face face Merise/UML Profil UML pour les bases de donnes Exercice Bibliographie, Webographie
C. Soutou - 2006
Historique
UML 1.2 UML 1.1 Rational, HP, Microsoft, Oracle, Unisys, etc UML 1.0 UML 0.9x
UML 2.0 2003 UML 1.3 1999 1998 1997
IBM et ObjecTime
Unified Method 0.8 OOSE Autres mthodes Booch OMT
C. Soutou - 2006 4
Gnralits
UML (Unified Modeling Language) Objectifs
Reprsenter des systmes par une notation unifie base sur les concepts objets Langage de modlisation (analyse et conception) tablir un couplage entre concepts et code excutable (C++, Java)
C. Soutou - 2006
Les diagrammes
Statiques (structurel)
Diagrammes de classes Diagrammes dobjets Diagrammes de cas dutilisation (use cases) Diagrammes de composants Diagrammes de dploiement Diagrammes de squence Diagrammes de collaboration Diagrammes dtats-transitions Diagrammes dactivits
Dynamiques (comportemental)
C. Soutou - 2006
Diagrammes statiques
Classes : Description des classes et des relations (associations entre les classes) Objets : Description des objets et leurs liens, correspondent des diagrammes de collaboration simplifis, sans reprsentation des envois de messages Cas dutilisation (use cases) : Description des fonctions du systme du point de vue des utilisateurs Composants : Description des composants physiques du systme Dploiement : Description des composants sur les dispositifs matriels
C. Soutou - 2006
Niveaux de conception
Conceptuel : oui Logique : oui Physique : non Externe : trs peu
Conceptuel
Logique
Externe Physique
C. Soutou - 2006
Pourquoi utiliser UML?
Notorit des entreprises qui appartiennent au consortium UML (DEC, HP, IBM, Microsoft, Oracle, Rational Software, Unisys...) La majorit des nouveaux projets utilisent cette UML via un outil Avantages indniables des concepts objets (rutilisabilit, maintenance, prototypage)
C. Soutou - 2006 9
Face face Merise/UML
Concepts de base Associations Agrgations Contraintes Hritage
C. Soutou - 2006
10
Historique de Merise
P. Moulin, J. Randon, S. Savoysky, S. Spaccapietra, H. Tardieu, M. Teboul, Conceptual model as database design tool, Proceedings of the IFIP Working conference on Modelling in Database Management Systems , G.M. Nijssen Ed., NorthHolland, 1976 P.P. Chen, The Entity-Relationship Model : Towards a Unified View of Data, ACM Transactions on Database Systems, Vol 1, N1, 1976
C. Soutou - 2006
11
Face face Merise/UML
Les + dUML
Les mthodes (dynamique des classes) Les strotypes : mcanismes dextensibilit par ajout de nouveaux types de classes
<<Table>> <<View>> <<Association>>
Lien avec les applications Java
Le - dUML : absence de mthode (ce nest quune notation)
C. Soutou - 2006 12
Face face Merise/UML
quivalences des concepts de base
Entit Classe Occurrence Objet Association Association / Classe-association Contraintes Contraintes / Notes MCD Diagramme des classes Cardinalit est synonyme de multiplicit mais linterprtation est diffrente
C. Soutou - 2006
13
Associations Merise
un identifiant (simple ou compos) par entit pas didentifiant dassociation pas de proprit pour les associations binaires un--un et un--plusieurs Rles possibles
C. Soutou - 2006
14
Cardinalit nest pas multiplicit
Interprtation des cardinalits
du modle de Chen (entity relationship) / UML du modle MCD de Merise
Associations binaires : simple permutation
Associations n-aires : raisonnement diffrent
C. Soutou - 2006 15
Associations n-aires
Dans Merise : lues dune entit du sens entit concerne entits connectes
Dans le modle de P. Chen et pour UML : lues du sens entits connectes entit concerne Rles et attributs possibles dans tous les formalismes
C. Soutou - 2006
16
Associations n-aires UML
Trois possibilits de reprsentation
Symbole losange Classe strotype Classe-association (modlisation de contraintes dunicit et dinclusion)
C. Soutou - 2006
17
Symbole losange
De plus en plus doutils le prenne en compte
C. Soutou - 2006
18
Classe strotype
Les liens doivent sinstancier simultanment
Mal support par les outils (ex. Rose / PowerAMC) dans la gnration SQL (cl primaire)
C. Soutou - 2006
19
Contrainte dunicit
Un employ prsent dans un aroport ne travaille que pour le compte dune seule compagnie arienne .
C. Soutou - 2006
20
Contrainte dinclusion
Un employ ne peut reprsenter que ses employeurs dans tout aroport o il travaille.
C. Soutou - 2006
21
Cumul de contraintes
Un employ ne peut reprsenter que ses employeurs dans tout aroport o il travaille. Un employ prsent dans un aroport ne travaille que pour le compte dune seule compagnie arienne .
C. Soutou - 2006
22
Agrgations
Lagrgation ( ) affine une association (rflexive, binaire ou n-aire) pour laquelle lune des extrmits joue un rle prdominant par rapport lautre Lagrgation concerne un seul rle dune association Agrgation forte : composition ( )
La notion dagrgation a t un des aspects les plus discuts de la notation UML Lagrgation se traduira au niveau de SQL par dclencheurs (triggers) ou contrainte CASCADE(sur des cls trangres)
C. Soutou - 2006 23
Agrgations
Il est prfrable dutiliser une agrgation dans les cas suivants
une classe fait partie dune autre classe une action sur une classe implique une action sur une autre classe les objets dune classe sont subordonns aux objets dune autre classe
C. Soutou - 2006
24
Contraintes
Objectif : plus de smantique un schma Contraintes Merise/2
Partition Exclusion Totalit Inclusion Simultanit Unicit (CIF)
XT X T I S CIF
Prises en compte par les outils mais pas de gnration automatique de code associe
C. Soutou - 2006 25
Contrainte de partition : CHECK
C. Soutou - 2006
26
Exclusivit : CHECK
X
<<Exclusivit>>
Totalit : CHECK
T
<<Totalit>>
Simultanit : CHECK
S
<<Simultanit>>
C. Soutou - 2006
27
Code SQL pour la simultanit
CREATE TABLE Pilote (numpil NUMBER PRIMARY KEY, nompil VARCHAR(10), sani VARCHAR(10), entraine VARCHAR(10), CONSTRAINT fk_pilote_sanitaire FOREIGN KEY(sani)REFERENCES Sanitaire(codesan), CONSTRAINT fk_pilote_entrainement FOREIGN KEY(entraine) REFERENCES Entrainement(codent), CONSTRAINT ck_pilote_simultaneite CHECK ((sani IS NULL AND entraine IS NULL) OR (sani IS NOT NULL AND entraine IS NOT NULL)) );
C. Soutou - 2006
28
Contrainte dinclusion : dclencheur
Merise/2
<<Sous-ensemble>>
C. Soutou - 2006 29
Contrainte dunicit
Merise/2 (CIF)
Associations binaires (un--plusieurs) Associations n-aires : inter-entits
Associations binaires (un--plusieurs) Associations n-aires : classesassociations
C. Soutou - 2006 30
Hritage au niveau conceptuel
Exemple : les navigants dAir France
PNT : Personnel Navigant Technique PNC : Personnel Navigant Commercial
Contraintes possibles
de partition (A) exclusion (B) totalit (C) aucune (D)
Personnel PNT Personnel Personnel PNT PNT
Les2
Personnel
PNT
Les2 Chercheur PNC
PNC
PNC
PNC
B
C. Soutou - 2006
D
31
Hritage Merise/2 - UML
C. Soutou - 2006
32
Hritage au niveau logique
dcomposition par distinction
PNC[numPers#, indice, prime] Personnel[numPers, nomPers] PNT[numPers#, brevet, validiteLicence]
Exclusion Partition
dcomposition descendante (push-down)
PNC[numPers, nomPers, indice, prime] PNT[numPers, nomPers, brevet, validiteLicence]
Totalit!!!
dcomposition ascendante (push-up).
Personnel[numPers, nomPers,indice, prime, brevet, validiteLicence]
Totalit (mais valeurs NULL)
C. Soutou - 2006
33
Profil UML pour les BD
Dfinition lments Exemple sous Rose
C. Soutou - 2006
34
Profils UML
Un profil est une proposition dune communaut et regroupe un ensemble dlments UML
Composants Strotypes Icnes
qui sappliquent un contexte particulier et qui conservent le mta-modle dUML intact
UML profile for Data Modeling propos par Rational Software
C. Soutou - 2006
35
lments du profil UML/BD
C. Soutou - 2006
36
Profil UML/BD
lments dune architecture
C. Soutou - 2006
37
Association un--plusieurs
C. Soutou - 2006
38
Association plusieurs--plusieurs
C. Soutou - 2006
39
Exercice
Un client dune banque est caractris par (num, nom, adresse). Il faudra pouvoir stocker ses diffrents numros de tlphone fixe, travail et portable (numtel). Un compte est rattach un client (ncompte, solde, dateouv). Un client peut disposer de plusieurs comptes. Un compte pargne est rmunr un taux (txInt). Un compte courant est caractris par un nombre dopration de carte bleue (nbopCB). On veut stocker les oprations faites par un client (signataire ou pas) sur un compte courant (dateop, montant). Quand le montant est positif il sagit dun dpt, quand il est ngatif il sagit dun retrait.
C. Soutou - 2006 40
Exercice
Un compte courant peut avoir plusieurs signataires (qui sont des clients de lagence). Pour un compte courant donn un signataire peut avoir diffrent droits (droit) : D signifie le droit de dbiter sur le compte R signifie le droit de retirer un chquier X signifie le droit de retirer et de clturer le compte Il est important de savoir quel employ de la banque (numEmp, nomEmp) a affect chaque droit.
C. Soutou - 2006
41
Bibliographie / Webographie
D. Nanci, B. Espinasse, B. Cohen, Ingnierie des systmes d'information : Merise, Vuibert, 2000 P.A. Muller, N. Gaertner, Modlisation objet avec UML, Eyrolles, 2003 P. Roques, UML par la pratique, Eyrolles, 2003 C. Soutou, De UML SQL, Eyrolles, 2002 Forum Modlisation, Mthodes,
http://www.developpez.net/forums/index.php
C. Soutou - 2006
42