42
De UML à SQL> une synthèse Christian Soutou http://icare.iut-blagnac.fr/soutou

deUMLaSQL

Embed Size (px)

DESCRIPTION

de uml a sql

Citation preview

Page 1: deUMLaSQL

De UML à SQL>une synthèse

Christian Soutouhttp://icare.iut-blagnac.fr/soutou

Page 2: deUMLaSQL

C. Soutou - 2006 2

“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

Page 3: deUMLaSQL

C. Soutou - 2006 3

Plan

• Historique / Généralités• Face à face Merise/UML• Profil UML pour les bases de données• Exercice• Bibliographie, Webographie

Page 4: deUMLaSQL

C. Soutou - 2006 4

Historique

UML 1.1

UML 1.0 IBM etObjecTime

UML 0.9x

Unified Method 0.8

Booch OMT

OOSE

Autres méthodes

Rational, HP, Microsoft, Oracle, Unisys, etc

UML 1.2

UML 1.3

UML 2.0

1997

1998

1999

2003

Page 5: deUMLaSQL

C. Soutou - 2006 5

Généralités

• UML (Unified Modeling Language)

• Objectifs− Représenter des systèmes par une notation

unifiée basée sur les concepts objets− Langage de modélisation (analyse et conception)− Établir un couplage entre concepts et code

exécutable (C++, Java…)

Page 6: deUMLaSQL

C. Soutou - 2006 6

Les diagrammes• Statiques (structurel)

– Diagrammes de classes– Diagrammes d’objets– Diagrammes de cas d’utilisation (use cases)– Diagrammes de composants– Diagrammes de déploiement

• Dynamiques (comportemental)– Diagrammes de séquence– Diagrammes de collaboration– Diagrammes d’états-transitions– Diagrammes d’activités

Page 7: deUMLaSQL

C. Soutou - 2006 7

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 simplifiés, sans représentation des envois de messages

• Cas d’utilisation (use cases) : Description des fonctions du système du point de vue des utilisateurs

• Composants : Description des composants physiques du système

• Déploiement : Description des composants sur les dispositifs matériels

Page 8: deUMLaSQL

C. Soutou - 2006 8

Niveaux de conception

• Conceptuel : oui• Logique : oui• Physique : non• Externe : très peu

Physique

Logique

Conceptuel

Externe

Page 9: deUMLaSQL

C. Soutou - 2006 9

• Notoriété 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 indéniables des concepts objets (réutilisabilité, maintenance, prototypage)

Pourquoi utiliser UML?

Page 10: deUMLaSQL

C. Soutou - 2006 10

Face à face Merise/UML

• Concepts de base• Associations• Agrégations• Contraintes• Héritage

Page 11: deUMLaSQL

C. Soutou - 2006 11

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., North-Holland, 1976

• P.P. Chen, “The Entity-Relationship Model : Towards a Unified View of Data”, ACM Transactions on Database Systems, Vol 1, N°1, 1976

Page 12: deUMLaSQL

C. Soutou - 2006 12

Face à face Merise/UML

• Les « + » d’UML• Les méthodes (dynamique des classes)• Les stéréotypes : mécanismes d’extensibilité

par ajout de nouveaux types de classes<<Table>> <<View>> <<Association>>…

• Lien avec les applications Java

• Le « - » d’UML : absence de méthode (ce n’est qu’une notation)

Page 13: deUMLaSQL

C. Soutou - 2006 13

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 l’interprétation est différente

Page 14: deUMLaSQL

C. Soutou - 2006 14

Associations Merise• un identifiant (simple ou composé) par entité• pas d’identifiant d’association• pas de propriété pour les associations binaires

un-à-un et un-à-plusieurs• Rôles possibles

Page 15: deUMLaSQL

C. Soutou - 2006 15

Cardinalité n’est pas multiplicité• Interprétation des cardinalités

– du modèle de Chen (entity relationship) / UML – du modèle MCD de Merise

Associations binaires : simple permutation

Associations n-aires : raisonnement différent

Page 16: deUMLaSQL

C. Soutou - 2006 16

Associations n-aires• Dans Merise : lues d’une entité du sens entité concernée →

entités connectées

• Dans le modèle de P. Chen et pour UML : lues du sens entités connectées → entité concernée

• Rôles et attributs possibles dans tous les formalismes

Page 17: deUMLaSQL

C. Soutou - 2006 17

Associations n-aires UML• Trois possibilités de représentation

• Symbole losange

• Classe stéréotypée

• Classe-association (modélisation de contraintes d’unicité et d’inclusion)

Page 18: deUMLaSQL

C. Soutou - 2006 18

Symbole losange• De plus en plus d’outils le prenne en compte

Page 19: deUMLaSQL

C. Soutou - 2006 19

Classe stéréotypée• Les liens doivent s’instancier simultanément

Mal supporté par les outils (ex. Rose / PowerAMC) dans la génération SQL (cléprimaire)

Page 20: deUMLaSQL

C. Soutou - 2006 20

Contrainte d’unicité• «Un employé présent dans un aéroport ne

travaille que pour le compte d’une seule compagnie aérienne ».

Page 21: deUMLaSQL

C. Soutou - 2006 21

Contrainte d’inclusion• «Un employé ne peut représenter que ses

employeurs dans tout aéroport où il travaille. »

Page 22: deUMLaSQL

C. Soutou - 2006 22

Cumul de contraintes• «Un employé ne peut représenter que ses employeurs dans

tout aéroport où il travaille. »• «Un employé présent dans un aéroport ne travaille que pour

le compte d’une seule compagnie aérienne ».

Page 23: deUMLaSQL

C. Soutou - 2006 23

Agrégations• L’agrégation ( ) affine une association (réflexive, binaire ou

n-aire) pour laquelle l’une des extrémités joue un rôle prédominant par rapport à l’autre

• L’agrégation concerne un seul rôle d’une association

• Agrégation forte : composition ( )

• La notion d’agrégation a été un des aspects les plus discutés de la notation UML

• L’agrégation se traduira au niveau de SQL par déclencheurs (triggers) ou contrainte CASCADE(sur des clés étrangères)

Page 24: deUMLaSQL

C. Soutou - 2006 24

Agrégations• Il est préférable d’utiliser une agrégation dans

les cas suivants– une classe fait partie d’une autre classe– une action sur une classe implique une action sur

une autre classe– les objets d’une classe sont subordonnés aux

objets d’une autre classe

Page 25: deUMLaSQL

C. Soutou - 2006 25

Contraintes• Objectif : plus de sémantique à un schéma

• Contraintes Merise/2– Partition– Exclusion– Totalité

– Inclusion – Simultanéité– Unicité (CIF)

• Prises en compte par les outils mais pas de génération automatique de code associée

XT

T

X

S

I

CIF

Page 26: deUMLaSQL

C. Soutou - 2006 26

Contrainte de partition : CHECK

Page 27: deUMLaSQL

C. Soutou - 2006 27

Exclusivité : CHECK

Totalité : CHECK

X

T

Simultanéité : CHECKS

<<Exclusivité>>

<<Totalité>>

<<Simultanéité>>

Page 28: deUMLaSQL

C. Soutou - 2006 28

Code SQL pour la simultanéité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))

);

Page 29: deUMLaSQL

C. Soutou - 2006 29

Contrainte d’inclusion : déclencheur

Merise/2

<<Sous-ensemble>>

I

Page 30: deUMLaSQL

C. Soutou - 2006 30

Contrainte d’unicité• Merise/2 (CIF)

– Associations binaires (un-à-plusieurs)– Associations n-aires : inter-entités

– Associations binaires (un-à-plusieurs)– Associations n-aires : classes-

associations

Page 31: deUMLaSQL

C. Soutou - 2006 31

Héritage au niveau conceptuel• Exemple : les navigants d’Air France

– PNT : Personnel Navigant Technique– PNC : Personnel Navigant Commercial

• Contraintes possibles– de partition (A)– exclusion (B)– totalité (C)– aucune (D)

A B C D

Personnel

PNT

PNC

Personnel

PNT

Chercheur PNC

Les2

Personnel

PNT

PNC

Les2

Personnel

PNT

PNC

Page 32: deUMLaSQL

C. Soutou - 2006 32

Héritage Merise/2 - UML

Page 33: deUMLaSQL

C. Soutou - 2006 33

Héritage au niveau logique• décomposition par distinction

• décomposition descendante (push-down)

• décomposition ascendante (push-up).

Personnel[numPers, nomPers]

PNT[numPers#, brevet, validiteLicence]

PNC[numPers#, indice, prime]

PNT[numPers, nomPers, brevet, validiteLicence]

PNC[numPers, nomPers, indice, prime]

Personnel[numPers, nomPers,indice, prime,brevet, validiteLicence]

• Exclusion• Partition

• Totalité!!!

• Totalité (mais valeurs NULL)

Page 34: deUMLaSQL

C. Soutou - 2006 34

Profil UML pour les BD

• Définition• Éléments• Exemple sous Rose

Page 35: deUMLaSQL

C. Soutou - 2006 35

Profils UML

• Un profil est une proposition d’une communauté et regroupe un ensemble d’éléments UML – Composants– Stéréotypes– Icônes– …

qui s’appliquent à un contexte particulier et qui conservent le méta-modèle d’UML intact

• UML profile for Data Modeling proposé par Rational Software

Page 36: deUMLaSQL

C. Soutou - 2006 36

Éléments du profil UML/BD

Page 37: deUMLaSQL

C. Soutou - 2006 37

Profil UML/BD

• Éléments d’une architecture

Page 38: deUMLaSQL

C. Soutou - 2006 38

Association un-à-plusieurs

Page 39: deUMLaSQL

C. Soutou - 2006 39

Association plusieurs-à-plusieurs

Page 40: deUMLaSQL

C. Soutou - 2006 40

Exercice• Un client d’une banque est caractérisé par (num, nom, adresse). Il faudra pouvoir stocker ses différents numéros de téléphone 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 rémunéré à un taux (txInt).

• Un compte courant est caractérisé par un nombre d’opération de carte bleue (nbopCB).

• On veut stocker les opérations faites par un client (signataire ou pas) sur un compte courant (dateop, montant). Quand le montant est positif il s’agit d’un dépôt, quand il est négatif il s’agit d’un retrait.

Page 41: deUMLaSQL

C. Soutou - 2006 41

Exercice• Un compte courant peut avoir plusieurs signataires (qui

sont des clients de l’agence). Pour un compte courant donnéun signataire peut avoir différent droits (droit) :– ‘D’ signifie le droit de débiter sur le compte– ‘R’ signifie le droit de retirer un chéquier– ‘X’ signifie le droit de retirer et de clôturer le compte

• Il est important de savoir quel employé de la banque (numEmp, nomEmp) a affecté chaque droit.

Page 42: deUMLaSQL

C. Soutou - 2006 42

Bibliographie / Webographie

• D. Nanci, B. Espinasse, B. Cohen, Ingénierie des systèmes d'information : Merise, Vuibert, 2000

• P.A. Muller, N. Gaertner, Modélisation objet avec UML, Eyrolles, 2003

• P. Roques, UML par la pratique, Eyrolles, 2003

• C. Soutou, De UML à SQL, Eyrolles, 2002

• Forum Modélisation, Méthodes, …http://www.developpez.net/forums/index.php