20 nov 2013 · Exercices Exo1 Exprimer sous forme d'un diagramme de classe UML qu'une classe AA poss`ede un attribut attr1 dont l'accés est protégé et
Exercice n°1 On veut modéliser le système d'information d'une bibliothèque (1) Modélisation objet UML : Recherche des candidats classes puis critique
Figure 11 : Récapitulatif des différents logiciels UML A ce stade il peut être légitime de penser qu'un tel exercice n'est pas nécessaire car il
sanitaire et à un exercice d'entraînement Le schéma Merise serait identique à l'exemple 1-38 sans contrainte Le diagramme UML serait
nombreux exercices mettant en jeu tous les niveaux du processus d'une base de données Comment utiliser UML pour les bases de données ?
UML 2 pour les bases de données avec 20 exercices corrigés http://www developpez net/forums/f429/general-developpement/alm/outils/autres/
Database Design for Smarties Using UML for Data Modeling Morgan Kaufman 1999 Profil UML pour les bases de données • Exercice
Ce type d'exercice à un rôle formateur méthode repose aussi sur l'utilisation d'UML pour la description http://www developpez net / forums/
Métier Un métier est d'abord l'exercice par une personne d'une activité dans un lisation des processus métier (contrairement aux diagrammes UML)
De UML à
SQL> une synthèse
Christian Soutou
http://icare.iut-blagnac.fr/soutou
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
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
C. Soutou - 2006 4
Historique
UML 1.1
UML 1.0
IBM et
ObjecTime
UML 0.9x
Unified Method 0.8
Booch OMT
OOSE
Autres méthodes
Rational, HP,
Microsoft,
Oracle,
Unisys, etcUML 1.2
UML 1.3
UML 2.0
199719981999
2003
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...)
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
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
C. Soutou - 2006 8
Niveaux de conception
•Conceptuel : oui •Logique : oui • Physique : non • Externe : très peu
Physique
Logique
Conceptuel
Externe
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?
C. Soutou - 2006 10
Face à face Merise/UML
• Concepts de base • Associations • Agrégations • Contraintes • Héritage
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
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 <
> <> <>... • Lien avec les applications Java • Le " - » d'UML : absence de méthode (ce n'est qu'une notation) 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 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-à-unet un-à-plusieurs • Rôles possibles 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
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 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) C. Soutou - 2006 18
Symbole losange
• De plus en plus d'outils le prenne en compte 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) C. Soutou - 2006 20
Contrainte d'unicité
•"Un employé présent dans un aéroport ne travaille que pour le compte d'uneseule compagnie aérienne». C. Soutou - 2006 21
Contrainte d'inclusion
•"Un employé ne peut représenter que ses employeurs dans tout aéroport où il travaille. » C. Soutou - 2006 22
Cumul de contraintes
•"Un employé ne peut représenter que sesemployeurs dans tout aéroport où il travaille. »
•"Un employé présent dans un aéroport ne travaille que pour le compte d'uneseule compagnie aérienne ».
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) 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 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 TX S I CIF C. Soutou - 2006 26
Contrainte de partition : CHECK
C. Soutou - 2006 27
Exclusivité : CHECK
Totalité : CHECK
X T Simultanéité : CHECK
S <> <> <> C. Soutou - 2006 28
Code SQL pour la simultanéité
CREATE TABLE Pilote
(numpil NUMBER PRIMARY KEY, nompil VARCHAR(10), saniVARCHAR(10), entraineVARCHAR(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 29
Contrainte d'inclusion : déclencheur
Merise/2
<> I 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 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 C. Soutou - 2006 32
Héritage Merise/2 - UML
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) C. Soutou - 2006 34
Profil UML pour les BD
• Définition •Éléments • Exemple sous Rose 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 Modelingproposé par Rational Software C. Soutou - 2006 36
Éléments du profil UML/BD
C. Soutou - 2006 37
Profil UML/BD
• Éléments d'une architecture C. Soutou - 2006 38
Association un-à-plusieurs
C. Soutou - 2006 39
Association plusieurs-à-plusieurs
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. 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. 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, ...quotesdbs_dbs29.pdfusesText_35