Vous êtes sur la page 1sur 42

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

Vous aimerez peut-être aussi