Академический Документы
Профессиональный Документы
Культура Документы
Michel Dubois
I.U.T. de Vannes
Michel.Dubois@univ-ubs.fr
Michel Dubois
PLAN
1. Rappels sur la dmarche UML 2. Pralable la modlisation, le dictionnaire des donnes 3. Rappels sur la modlisation Entit-Association 4. Introduction aux notations UML 5. Correspondances Merise / UML 6. Modle Logique des Donnes relationnelles 7. Autres formalismes pour AGL bases de donnes 8. Rappels sur la modlisation directe 9. Modle Physique Oracle SQL2 10. Les options procdurales dOracle 11. Modle Logique des Donnes objet-relationnelles 12. Modle Physique Oracle SQL3
UML pour les bases de donnes- p. 2
Bibliographie
UML et bases de donnes
UML 2 pour les bases de donnes, C. Soutou, Eyrolles, 2007.
Pour rcuprer le standard UML www.omg.org www.celigent.com/uml Pour comprendre le paradigme objet Object-Oriented Software Construction - 2nd edition, B. Meyer, Prentice Hall, 1997. Pour sinitier au langage UML Modlisation Objet avec UML ,P-A. Muller, deuxime dition, Eyrolles, 1999. The Unified Modeling Language User Guide , Grady Booch, Jim Rumbaugh, Ivar Jacobson, Addison-Wesley, 1999.
UML pour les bases de donnes- p. 3
Bibliographie
Pour la modlisation conceptuelle Analysis Patterns: Reusable Objects Models , M. FOWLER, Addison-Wesley. Advanced Object-Oriented Analysis & Design Using UML , James J. Odell, SIGS Reference Library, Cambridge University Press. Pour le dveloppement de bases de donnes Ingnierie des Systmes dInformation MERISE , D. Nanci et al. SYBEX. The Data Modeling Handbook : A Best-Practice Approach to Building Quality Data Models , Michael Reingruber, William W. Gregory, Paperback. Object-Oriented Modeling and Design for Database Applications , M. Blaha et W. Premerlani, Prentice Hall.
UML pour les bases de donnes- p. 4
Objectifs du chapitre
1. Origine
3 ans defforts de nombreux mthodologistes du DOO dont 3 rputs au sein de Rational Software Corporation G. Booch (OOD) fin 94: trs expressive en phases de conception et dimplmentation J. Rumbaugh (OMT) fin 94 : trs utile pour l analyse et la mise en place des SI I. Jacobson (OOSE) fin 95 : excellent support des cas d utilisation pour l expression des besoins, lanalyse et la conception haut niveau Le support de grands acteurs du monde de linformatique fin 96 : IBM, MICROSOFT, HP, ORACLE, DEC, UNISYS, etc.
Standard de modlisation des applications informatiques construites laide dobjets, depuis Septembre 97 par lOMG (V 1.1.)
RFP
UML 1.3 (10/99) UML 1.2 (O7/98) UML 1.1 (OMG 09/97) UML 1.0 (OMG 01/97) UML 0.91 (OOPSLA 10/96)
Consortium
Les 1000
Booch-93
OOD(91) Booch
langage = syntaxe + semantique syntaxe = lments du langage (les mots) sont assembls pour former des expressions (des phrases) smantique = la signification des expressions syntaxiques UML Notation Guide dfinit la syntaxe graphique dUML UML Semantics dfinit la smantique des contructions syntaxiques
Example of semantic rule: Class [1] English: If a Class is concrete, all the Operations of the Class should have a realizing Method in the full descriptor. OCL: not self.isAbstract implies self.allOperations-> forAll (op | self.allMethods-> exists (m | m.specification-> includes(op)))
Example of syntactic rules: Class Basic Notation: A class is drawn as a solid-outline rectangle with three compartments separated by horizontal lines. Presentation Option: Either or both of the attribute and operation compartments may be suppressed. Example of syntactic guideline: Class Style Guideline: Begin class names with an uppercase letter.
Couche M2 : mta-classes
<<instanceOf>> :Pile
Les lments
Les lments comportementales : interaction, machine dtat Les lments de regroupement : paquetages Les lments dannotation : note UML pour les bases de donnes- p. 17
Les relations
Les relations peuvent tre de 4 types
Dpendance : relation smantique entre 2 lments dans laquelle un changement dans llment indpendant peut affecter la smantique de llment dpendant Association : relation structurelle qui dcrit un ensemble de liens, un lien tant une connexion entre objets (agrgation : association entre un tout et ses parties) Gnralisation : relation de gnralisation/spcialisation dans laquelle les objets de llment spcialis sont substituables aux objets de llment gnrique Ralisation
Cest la reprsentation graphique dun ensemble dlments connects par un ensemble de relations Un diagramme est une projection du systme selon un point de vue spcifique. En UML, 9 diagrammes diffrents sont grs
Diagramme de classes Diagramme dobjets Diagramme de squence Diagramme de collaboration Diagramme de cas dutilisation Diagramme dtats-transitions Diagramme dactivits Diagramme de composants Diagramme de dploiement
Les diagrammes
3. Contenu
Une approche
Une dmarche
Un Langage
AOO unifie
The Unified Modeling Language (UML) is a language for Specifying, visualizing, constructing and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of the best engineering practices that have proven successful in the modeling of large and complex systems.
OMG Unified Modeling Language Specification 1.3. March 2000
Notation UML
Diagramme de cas dutilisation Diagramme dtats-transitions Diagramme dactivits Diagramme de composants Diagramme de dploiement
UML pour les bases de donnes- p. 26
Diagramme de classes : structure statique du systme en termes de classe et de relation entre ces classes au niveau conceptuel, danalyse ou de conception Diagramme dobjets
Faciliter la comprhension des structures de donnes complexes dcrites dans le DC Identifier les classes et les relations
Les Diagrammes
Diagramme de squence : montrer les interactions entre objets dun point de vue temporel sous la forme dun protocole dchange de message.
UML pour les bases de donnes- p. 27
Les Diagrammes
Diagramme de collaboration : montrer les interactions entre les objets en insistant plus particulirement sur la structure spatiale des objets cooprant Diagramme de cas dutilisation : dcrire le comportement du systme concevoir du point de vue de lutilisateur (spcification oriente utilisateur). Pilote le dveloppement. Diagramme dtats-transitions : modliser le comportement dune classe qui a un comportement ractif trs marqu suite aux diffrentes sollicitations externes
UML pour les bases de donnes- p. 28
Diagramme dactivits : reprsenter le comportement interne dune mthode (la ralisation dune opration) ou dun cas dutilisation ou d un processus mtier Diagramme de composants : dcrire les composants de lapplication et leurs relations. Ce diagramme montre les choix de ralisation. Diagrammes de dploiement : disposition physique des matriels entrant dans la composition du systme et la rpartition des programmes sur ces matriels.
Les Diagrammes
Guichetier Retirer
1. Le cas dbute lorsque le guichetier slectionne lopration de retrait. 3. Le guichetier saisit le N du compte du client 5. Le guichetier confirme 7. Le guichetier saisit un montant 9. Le guichetier confirme
Guichetier
2. Le logiciel demande le N du compte concern 4. Le logiciel vrifie ce N, affiche son propritaire et demande confirmation 6. Le logiciel demande le montant du retrait. 8. Le logiciel vrifie que le compte est suffisamment approvisionn et demande confirmation 10. Le logiciel retire le montant du compte
UML pour les bases de donnes- p. 31
Logiciel
Le diagramme de classes
Personne nom prnom adresse membre 3..*
Etudiant nEtud ge
1 Appartient >
1..* 1
nom anneCra
0..2 Conseil
Dpartement
nom
context Etudiant inv : self.ge >= 16 Etudiant.allInstances->forAll{p1,p2| p1<>p2 implies p1.nEtud <> p2.nEtud}
Le diagramme dobjets
:Promotion Intitul = 1A
: Etudiant nom = Le_Lombric prnom = max adresse = la botte en terre nEtud = 111
: Etudiant
toto : Etudiant
Digramme de Collaboration
:Ascenseur
2: Allumer
:Cabine
3: Fermer
:Porte
:Lumire
:Porte
Fermer
Sequence Diagram
Collaboration Diagram
window parameter
State Trigger
Ready
Transition
Final state
Action
Pousse B / bip Eteinte do: rien Relache B Allume do: Alimente Pile mise Pile vide Attente do: Afficher heure Top quartz / Incrmenter seconde HS
Le diagramme dactivits
Trouver caf [trouv] Boire Coca Mettre le caf dans le filtre Mettre filtre dans machine Ajouter eau Chercher tasse [pas de caf] Tenir bon!
Allumer machine
Le diagrammes de composants
Main.cpp Main.obj
Com.obj
Prog.exe
Graphic.dll
Le diagrammes de dploiement
Processus hbergs
TX Serveur X 3 * RNIS PC Pilote 1 Porte Matre 10 TCP/IP 1 Serveur SGBD 1 Imprimante Dispositif 1 1
Chaque processus excute un programme principal du mme nom dcrit dans le Diagramme de Composant
5. Une dmarche
pilote par les cas d utilisation incrmentale itrative centre sur larchitecture
Analyste
Exprime Utilisateur
Ralise Programmeur
Testeur
UML pour les bases de donnes- p. 43
Dv. 1
Dv. 2
Dv. 3
V1 Cas 1 simplifi
V3
Attention : tous les incrments ne donnent pas ncessairement lieu un dlivrable client
UML pour les bases de donnes- p. 44
Une construction itrative Lors de chaque tape, on utilise un ou plusieurs des 9 diagrammes UML selon le principe du dveloppement orient modle...
Planification de litration 50% du total du projet! Analyse du cas dutilisation Conception du cas Codage
Itration
Chaque itration donne lieu la gnration dune version ou d un prototype.
Build
Deploy
Incrment 1
Incrment 2
...
Refine Plan
Sync. Artifact
Analyze
Design
Construct
Michel Dubois
DEMARCHE
monde rel
PERCEPTION
GENERALE
MODELISATION LOGIQUE
Michel Dubois
BASE DE DONNEES
DEMARCHE
monde rel
PERCEPTION
DIRECTE
MODELISATION CONCEPTUELLE
DICTIONNAIRE DES DONNEES GRAPHES DES DEPENDANCES FONCTIONNELLE OU NORMALISATION A PARTIR DE LA RELATION UNIVERSELLE
Numro d'immatriculation
Marque
Modle
Couleur
Nationalit du constructeur
Puissance
MODELISATION LOGIQUE
Michel Dubois
BASE DE DONNEES
TERMINOLOGIE table relation enregistrement occurrence ligne de table n-uplet tuple champ attribut colonne de table donne intention d une relation schma d une relation extension d une relation contenu d une relation
Michel Dubois UML pour les bases de donnes- p. 51
Michel Dubois
RUBRIQUES DU DICTIONNAIRE DE DONNES Chaque donne introduite dans le dictionnaire des donnes se voit prcise par une ligne dans un tableau ayant la forme suivante :
CODE ... LIBELLE ... NATURE ... STABILITE ... DOMAINE ... COMMENTAIRE ...
Michel Dubois
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
Ces deux rubriques contiennent l'appellation conventionnelle de la donne. Cette scission provient du fait que la plupart des SGBDR imposent des contraintes sur les noms de donnes. Par exemple ORACLE : les noms de donnes sont composs de 30 caractres maximum et ne peuvent tre forms que d'un seul mot. La colonne CODE contiendra la reprsentation code de la donne, peu intelligible mais manipulable par le SGBDR, puis une colonne LIBELLE reprsentant l'appellation intelligible de la donne. MS Access admet des noms de donnes sans trop de restrictions. Il suffit d'utiliser des crochets. La distinction n'est peut tre pas ncessaire dans ce cas.
Michel Dubois UML pour les bases de donnes- p. 56
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
Prcise si la donne est : Non calcule : La donne ne peut tre dduite par le systme partir d'autres donnes. Elle doit obligatoirement tre saisie ou importe depuis une autre base de donnes. Calcule : La donne est obtenue par l'application d'une opration sur une ou plusieurs autres donnes. Une telle donne pourra tre gnre "au vol" par le SGBD et pourra donc ne pas tre stocke dans la base de donnes. Incrmente : Il s'agit d'une donne, destine rfrencer un objet et dont la valeur est incrmente (ajout de la valeur 1) chaque fois qu'on cre une nouvelle occurrence dans la base de donnes.
Michel Dubois UML pour les bases de donnes- p. 57
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
les donnes calcules : Une telle donne pourra tre gnre "au vol" par le SGBD et pourra donc ne pas tre stocke dans la base de donnes. Toutefois, il faudra s'assurer que le dictionnaire des donnes comprenne toutes les donnes entrant dans son calcul. Dans le cas contraire, il faudra les ajouter. Exemple de dcomposition d une donne calcule : Montant d Montant On ne retiendra que les noeuds terminaux
total arrhes Montant par produit Quantit Prix commande produit UML pour les bases de donnes- p. 58 *
Michel Dubois
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
Cette colonne indique les possibilits de transformations subies par la donne au cours du temps, une fois qu'elle a t saisie ou calcule. Une donne peut tre considre comme : Evolutive : Elle est destine voir sa valeur modifie au cours du temps. Stable : Une fois que l'on a mis une valeur dans cette donne, elle ne changera pas au cours du temps. Paramtre : Il s'agit d'une donne relativement stable, mais qui peut toutefois tre modifie de manire faire voluer le systme, l'adapter un changement de rglementation par exemple.
Michel Dubois UML pour les bases de donnes- p. 59
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
Les paramtres : Ils ne peuvent pas se rattacher un objet-type ou un individu-type mais contiennent une valeur destine tre exploite par le systme de base de donnes au cours de son fonctionnement (par exemple en tant que composante de calcul pour des donnes calcules). Une donne de type paramtre n'existe qu'en un seul exemplaire pour tout le systme. Si plusieurs occurrences d'un objet-type quelconque ou d'un individu-type quelconque peuvent avoir des valeurs diffrentes pour cette donne, alors ce n'est pas un paramtre mais une donne volutive.
Michel Dubois UML pour les bases de donnes- p. 60
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
Le domaine dcrit l'ensemble des valeurs pouvant tre stockes dans une donne. Le domaine de valeur sera renseign tout d'abord par un type de donnes (ORACLE ou ACCESS ou neutre) Une valeur par dfaut, qui correspondra la valeur affecte la donne avant toute forme de saisie. Des restrictions ou conditions de validit : Une donne couleur des yeux pourra tre de type Texte[20 caractres] avec une restriction supplmentaire prenant la forme d'une liste de valeurs autorises, un salaire >0. Un caractre de saisie obligatoire ou non. Ceci rend facultative/obligatoire la saisie d'une valeur.
Michel Dubois UML pour les bases de donnes- p. 61
CODE ...
LIBELLE ...
NATURE ...
STABILITE ...
DOMAINE ...
COMMENTAIRE ...
Cette colonne contient : un descriptif de chaque donne (si ncessaire) ou mme un exemple. la formule de calcul des donnes ayant la nature calcule (obligatoire). L'intrt de faire apparatre la formule de calcul en clair permet de vrifier que les informations ncessaires ce calcul sont bien prsentes dans le dictionnaire des donnes (dans le cas contraire, il faut les rajouter).
Michel Dubois
EXEMPLE DE DD
CODE LIBELLE NATURE CATEGORIE DOMAINE COMMENTAIRE
Non calcule / saisie Stable Incrmente Stable Non calcule / saisie Non calcule / saisie Non calcule / saisie Incrmente Non calcule / saisie Non calcule / saisie Non calcule / saisie Non calcule / saisie Incrmente Incrmente Non calcule / saisie Non calcule / saisie Non calcule / saisie Non calcule / saisie Non calcule /saisie
Calcule
texte[40] numrique texte[30] numrique texte[100] numrique texte[10] numrique texte[20] texte[100] numerique numerique date texte[25] numrique numrique numrique
numrique
Raison sociale du fournisseur Tlphone du fournisseur Adresse du fournisseur Rfrence interne d'un article Rfrence d'un article chez le fournisseur PRIX_FOUR Prix d'un article chez le fournisseur NOM_CLIENT Nom d'un client ADR_CLIENT Adresse d'un client REF_CLIENT Rfrence d'un client N_FACTURE Numro d'une facture DATE_FACT Date d'une facture DESARTICLE Dsignation d'un article PRIX_ART Prix de vente d'un article QUANTITE Quantit d'un article REMISE Remise sur un article
MONTANT_HT Montant HT d'un article
Stable Evolutive Evolutive Stable Stable Evolutive Stable Evolutive Stable Stable Stable Stable Evolutive Stable Stable
Stable
11 Rajoute du fait de la possibilit d'homonymie prcdente afin de distinguer deux fournisseurs ayant le mme nom. forme juridique+ inscription au registre du commerce
Hypothse restrictive : Possibilit d'homonymie. Unique, peut servir de cl Unique (lgislation), peut servir de cl Aurait pu galement tre considre comme calcule Prix interne d'un article Quantit apparaissant sur une ligne de facture Remise sur un article en % Montant HT d'une ligne de facture = PRIX_ART*QUANTITE*(1-REMISE). Stable car pas de mise jour en cas d'volution de PRIX_ART. somme de MONTANT_HT TOTAL_HT*0,186 TOTAL_HT+TVA 1 = liquide ; 2= CCP; 3=Virement Postal; 4=Chque bancaire; 5=C.B.; 6=Virement bancaire
PRIX_ART-PRIX_FOUR, calcule seulement sur demande
Total HT d'une facture Tva sur facture Total TTC d'une facture Mode de rglement Marge sur un article
Michel Dubois
NAT_CONS PUISSANCE
Michel Dubois
Michel Dubois
Michel Dubois
Chapitre 3
Michel Dubois
Entit
Une entit est un objet du rel peru qui a une existence propre. Elle peut donc tre dcrite indpendamment des autres objets. Par extension, une entit dsigne l ensemble des objets du rel peru qui jouent le mme rle dans le systme d information et qui sont donc dcrits par les mmes caractristiques.
UML pour les bases de donnes- p. 70
Entit
Une entit peut tre
un individu, comme par exemple : une personne, un client, un animal, un objet concret : une matire premire, un produit, un objet abstrait : un service, un compte bancaire, un lieu : une rgion, un magasin, un objet documentaire : un contrat, une facture, ...
UML pour les bases de donnes- p. 71
Association
lien smantique entre au moins deux entits le lien n est pas orient : les commandes comportent des produits veut galement dire que les produits peuvent tre commands . souvent nomme par un verbe ou un substantif une association est un objet du rel peru qui n a d existence qu au travers des entits qu elle met en correspondance par extension, une association dsigne l ensemble des associations de mme nature dans le systme d information et qui sont donc dcrites de la mme faon.
UML pour les bases de donnes- p. 72
Proprit
donne lmentaire permettant de dcrire une entit ou une association cette donne peut se mesurer par une valeur synonyme : attribut Rgles de base :
une mme proprit ne peut pas servir dcrire deux objets (entit / association) diffrents une entit possde au moins une proprit, son identifiant une association peut ne pas porter de proprit
UML pour les bases de donnes- p. 73
Reprsentation graphique
nom dentit Association nom dassociation Entit
proprit dentit
Description exhaustive
Concerner 2 Commande 1356 21/02/2002 Concerner 2 Commande 1357 22/02/2002 Concerner 3 Concerner 5 Produit BZ35 Brioche 2.6 Produit AZ34 Beurre 250g 1.4 Produit AZ33 Pain de Mie 1.52
Ralisation particulire d une entit, proprit ou association synonyme : instance Exemple d occurrence de l entit commande : n1356 du 21/02/2002 Exemple d occurrence de l association concerner : 2 produits BZ35 pour la commande n1356 Une occurrence de proprit est une valeur : l occurrence de la proprit prix unitaire pour le produit BZ35 est 2.6
UML pour les bases de donnes- p. 76
Occurrence
Cardinalit
La cardinalit est une notion obligatoire du modle qui permet de rsoudre la question de l anomalie de la commande 1246 qui est une commande vide C est donc l expression d une contrainte perue sur le monde et que l on indique dans le modle. Par exemple : une commande concerne toujours au moins un produit.
UML pour les bases de donnes- p. 77
(fournir)
PRODUIT
x x x x x
Tout fournisseur ne fournit qu'un seul produit. Tout produit n'est fourni que par un seul fournisseur.
Michel Dubois SGBD - p. 79
Un fournisseur fournit un ou plusieurs produits. Tout produit n'est fourni que par un seul fournisseur.
Michel Dubois
SGBD - p. 80
(fournir)
PRODUITS
x x x x x
Un fournisseur fournit un ou plusieurs produits. Un produit est fourni par un ou plusieurs fournisseurs.
Michel Dubois SGBD - p. 81
CARDINALITES MINIMALES
Valeur Dfinition Exemple
Une occurrence de l'entit un produit peut ne pas tre peut exister sans command participer l'association
Une occurrence de l'entit toute commande concerne participe ncessairement au moins un produit au moins une fois une occurrence d'association
Michel Dubois
CARDINALITES MAXIMALES
Valeur Dfinition Exemple
Une occurrence de l'entit un employ travaille au participe au plus une fois plus dans un service
Une occurrence de l'entit une commande peut peut participer plusieurs concerner plusieurs fois produits
Michel Dubois
Configurations possibles
0,1 : une occurrence de l entit participe au plus une fois l association 1,1 : une occurrence de l entit participe exactement une fois l association 0,N : une occurrence de l entit peut ne pas participer l association 1,N : une occurrence de l entit participe au moins une fois l association
UML pour les bases de donnes- p. 84
EXEMPLE
Michel Dubois
RELATIONS OBLIGATOIRES
Notation E-A Explication
Michel Dubois
RELATIONS OPTIONNELLES
Notation E-A Explication
UNE occurrence de A peut avoir 0,1,N vis--vis. UNE occurrence de B est limite 0 ou 1 homologue
TOUTE occurrence de A a AU MOINS un homologue. Mais UNE occurrence de B peut ne pas en avoir, en avoir 1 ou plusieurs
Michel Dubois
FOURNISSEUR
fournit
PRODUIT
x x x x 1,1
Michel Dubois
x x x x 1,1
PRODUIT
FOURNISSEUR
fournit
PRODUIT
x x x 1,1
x x x x 0,1
PRODUIT
Michel Dubois
HOMME
FEMME
x x x 0,1 x x
x x
FEMME
0,1
Michel Dubois
FOURNISSEUR
fournit
PRODUIT
x x x 1,n x
x x
PRODUIT
1,1
Michel Dubois
FOURNISSEUR
fournit
PRODUIT
x x x
PRODUIT
x 1,n
x 0,1
Michel Dubois
HOMME
est pre de
ENFANT
x x x 0,n x x
x x
ENFANT
0,1
Michel Dubois
FOURNISSEUR
fournit
PRODUIT
x x x 1,n
x x x x 1,n
PRODUIT
Michel Dubois
FOURNISSEUR
fournit
PRODUIT
x x x 1,n x x
x x
PRODUIT
0,n
Michel Dubois
x x x x
0,n
x x x x
0,n
ENFANT
Michel Dubois
Michel Dubois
IDENTIFIANT D'ENTITE
Proprit PARTICULIERE de l'entit telle que pour chacune des valeurs de cette proprit, il existe une occurrence UNIQUE de l'entit. L'identifiant est inscrit en tte de la liste des proprits et soulign. Dans les modles trs denses il peut suffire rsumer les autres proprits, pour faciliter la lecture.
Michel Dubois UML pour les bases de donnes- p. 99
IDENTIFIANT D'ASSOCIATION
Une association N'A PAS D'IDENTIFIANT explicite : l'association dpend des entits qu'elle relie. Son identifiant se dduit par calcul du produit cartsien des identifiants des entits associes. Pour l'association CONCERNE qui relie COMMANDE PRODUIT, l'identifiant est le produit cartsien de N Commande et N Produit.
Michel Dubois
ASSOCIATION REFLEXIVE
Une association "rflexive" est une association qui lie des occurrences d'une mme entit entre elles. C'est un cas particulier de la dimension 2. Pour viter toute ambigut, il vaut mieux indiquer le ROLE jou distinctement par chacune des occurrences.
Michel Dubois
Pour une occurrence de mdecin, il peut ne pas y avoir de couple patient * acte (le Directeur du centre par exemple qui ne participe pas aux consultations) mais en gnral il y en a plusieurs. Pour un acte il peut ne pas y avoir de couple mdecin * patient (un acte chirurgical qui n'est pas pratiqu dans notre centre par exemple) mais ventuellement plusieurs. Pour un patient il y a au moins un couple mdecin * acte et ventuellement plusieurs.
Michel Dubois UML pour les bases de donnes- p. 103
Pour une occurrence de client, il y a au moins un couple local * contrat et au plus plusieurs Pour un local il peut ne pas y avoir de couple client * contrat mais ventuellement plusieurs Pour un contrat il y a 1 et 1 seul couple client * local si l'on trouve une cardinalit 1,1 sur l'une des pattes, le modle peut tre dcompos
Michel Dubois UML pour les bases de donnes- p. 104
l'association LOUER est indirectement identifie par N Client * NEmplacement * N Contrat. N Contrat -> N Client, NEmplacement Pour identifier une occurrence de LOUER parmi toutes les autres, N Contrat suffit.
Michel Dubois
Michel Dubois
ACTEUR N acteur
0,n
Jouer
0,n
Titre Pice
0,n
THEATRE Nom_thatre
CIF
Michel Dubois
N acteur
0,n
0,n
0,1
A l'affiche de
0,n
THEATRE Nom_thatre
Titre Pice
0,n
Michel Dubois
IDENTIFICATION RELATIVE
Certaines entit type ont par ailleurs une existence totalement dpendante d autres entit type. Il s agit d entit faible. L identification relative s effectue par par une proprit stable de cette entit qui ne remplie pas les conditions d un identifiant absolu et par une cardinalit 1,1 (R).
Paye CLIENT
0,n
id
1,1
Conpose
1,1 (R)
ARTICLE
Michel Dubois
Rfrence prix
0,n
Concerne
UML pour les bases de donnes- p. 110
a pour DF DF
constructeur
voiture
CIF
constructeur
Magasin 1,n
Extension du modle
Existence de valeurs nulles ou insignifiantes (card min = 0) Redondance des proprits Description pas assez fine des relations entre objets Smantique insuffisamment prise en compte
Extension du modle
Couverture : toute occ. du type gnrique doit appartenir lune des spcialisations Disjonction : une occ. dun sous-type ne peut appartenir qu un sous-type
Couverture Disjonction
S1 G + G S1
T
Non couverture
G S2 S1 G S2 S1 S2 S2
Non disjonction
CONTRAINTES DE SPCIALISATION
Michel Dubois
Extension du modle
Lentit spcialis hrite :
Des proprits de lentit gnrique Des relations associes lentit gnrique
Identifiant : il peut y avoir plusieurs identifiants correspondant des vues externes diffrentes
Identifiant total : permet didentifier chacune des occurrences dun type Identifiant relatif : intgre une relation stable (CIF) id source = id cible + numro dordre
UML pour les bases de donnes- p. 122
GNRALISATION-SPCIALISATION
Pour reprsenter la proposent le schma suivant : gnralisation-spcialisation, quelques ouvrages
Michel Dubois
GNRALISATION-SPCIALISATION
Cette reprsentation est dangereuse plus d'un titre. En effet, elle laisse supposer : - que la gnralisation-spcialisation peut tre reprsente par une simple relation entre ensembles (ce qui donne un schma pour le moins tonnant !).
CLIENT "ETRE UN" CLIENT PORTEFEUILLE
- qu'il existe un lien entre deux occurrences dentits-type (celles-ci ayant chacune son existence propre) ; cela ne correspond videmment pas la ralit ! La relation de gnralisation-spcialisation permet de considrer le mme client avec plus ou moins de dtails ; elle ne concerne donc qu'une et une seule occurrence d'entit-type.
Michel Dubois UML pour les bases de donnes- p. 124
LIEN D'INCLUSION
En conclusion, le concept de gnralisation est bien une extension au modle entit-association. Il exprime une relation d'inclusion entre un sous-type et sa classe gnrique. La gnralisation-spcialisation permet de voir une mme occurrence d'entit-type diffrents niveaux d'abstraction.
CLIENT
CLIENT PORTEFEUILLE
Michel Dubois
Extension du modle
Reprsentation des contraintes inter-relations : Inclusion ou implication : les occ de la relation source sont incluses dans lensemble des occ de la relation cible
O1
R1
I
O2 O3
R2
Exclusion : la participation dune occ de lobjet une occ de relation exclut sa participation aux occ des autres relations lies par la contrainte Reprsentation : sur un lien non flch
UML pour les bases de donnes- p. 126
Extension du modle
Totalit : toute occ de lobjet pivot participe au moins une occurrence dun des types de relations lies par le contrainte Reprsentation : T lien supplmentaire sur lobjet pivot Partition : mme chose en remplaant au moins par P exactement Egalit ou simultanit : galit entre lensemble des occurrences des types de relations lies par la contrainte S Proprit multivalue Ensemble : sans doublon Liste : avec doublon Surcharge des domaines de valeurs possible pour les soustypes (Personne.ge [0:120] ; Employ.ge [18:65]
UML pour les bases de donnes- p. 127
Le Diagramme De Classes
Personne nom prnom adresse membre 3..*
Etudiant nEtud ge
Promotion * 1 Appartient > intitul 1..3 Associ 1 Dpartement 1..* nom {subset} a 0..2 * Conseil
anneCra
1
nom
Le Diagramme Dobjets
:Promotion intitul = 1A :Dpartement nom = stid anneCra = 71
: Etudiant nom = Le_Lombric prnom = max adresse = la botte en terre nEtud = 111 age = 18
: Etudiant
toto : Etudiant
Notion dobjet
Dans le monde rel, notre esprit structure notre environnement selon le concept dobjet (chaise, table, etc.). La modlisation objet des logiciels rejoint la faon que nous avons nous mme dvoquer le monde qui nous entoure. Les objets de modlisation vont dfinir une ralit simplifie (on parle dabstraction) des entits du monde rel. Ces objets de modlisation deviendront au fil du dveloppement des objets informatiques (au sens de la POO ou des BDOO) ou des tuples (au sens des SGBDR). Les objets de modlisation reprsente le plus souvent une abstraction dentits massiques (ex : un client de banque Mr. James, lavion 218 pour Honolulu) ou abstraites (ex : la trajectoire de lavion pour Tokyo) du monde rel.
Comme pour les objets du monde rel, les objets de modlisation se voient associer un tat, une identit et un comportement qui les qualifient
Compte_de_toto Compte_de_toto
solde = 100F tat = ouvert
Elisabeth Le Saux
Compte_de_toto
crditer () dbiter () bloquer()
SGBD - Conception p.133
Ltat d un objet
Ltat regroupe les valeurs instantanes de tous ses attributs et des liens quil entretient. Un attribut est une information particulire sur lobjet du monde rel modlis. Chaque attribut peut prendre une valeur dans un domaine de dfinition donn. Un attribut est une variable type.
LaVoituredAlesi : Voiture couleur = rouge niveau = 200 litres tat = Bon acclerer() freiner() ...
jaffr:Personne
ge =55 ans formation = ENA fonction = PDG socit = ELF salaire = inavouable
LaVoituredAlesi : Voiture couleur = rouge niveau = 175 litres tat = Hors Service acclerer() freiner() ...
UML pour les bases de donnes- p. 134
Le comportement d un objet
Le comportement regroupe toutes les comptences dun objet. Il se prsente sous la forme doprations. Une opration reprsente un service offert par lobjet aux autres objets. Les oprations dun objet sont dclenches suite une stimulation externe : lenvoi par lobjet client dun message lobjet fournisseur du service. Le message est dnot par le nom de lopration offerte par lobjet fournisseur que lon souhaite stimuler.
UML pour les bases de donnes- p. 135
Lidentit d un objet
Tous les objets du monde rel sont uniques. De la mme faon, tout objet de modlisation ou d implantation possde une identit qui lui est propre. Cet identit sappelle OID pour Object IDentifier. LOID permet de distinguer tout objet de faon non ambigu, indpendamment de son tat. Il est ncessaire de connatre lOID dun objet pour accder ses services. Attention : 2 objets ayant des identits diffrentes mais ayant le mme tat sont diffrents! La notion d identit est un concept qui ne se reprsente pas de manire explicite dans une modlisation objet. Dans les langages objets cet identifiant est la rfrence vers lobjet. Dans une table de SGBDR cest la valeur de cl primaire du tuple reprsentant lobjet.
UML pour les bases de donnes- p. 136
Un exemple
Valrie prnom = valrie date_anni =11/11/1975 adresse = 54 rue Pennec tel = 02-97-50-50-23 :Etudiant
nom = Dupont filire = IUP origine = IUT noteUML = 15 option = GIS noter(note) ... Point de vue Professeur
Compte
crditer () dbiter () bloquer()
Le processus dinstanciation
La classe
Compte
solde: Somme plancher: Somme crditer (s :Somme) dbiter (s : Somme) solde() : Somme
C1:Compte
solde = 200F plancher = -200F crditer (s :Somme) dbiter (s : Somme) solde() : Somme
:Compte
solde = 700F plancher = -500F crditer (s :Somme) dbiter (s : Somme) solde() : Somme
instanciation
Un objet nomm
Un objet anonyme
UML pour les bases de donnes- p. 141
Le Diagramme de Classes
Structure statique du systme en termes de classe et de relation entre ces classes au niveau conceptuel, danalyse ou de conception
Personne nom prnom adresse membre 3..*
tudiant nEtud ge
Promotion * 1 Appartient > intitul 1..3 Associ 1 Dpartement 1..* nom anneCra 1
UML pour les bases de donnes- p. 142
a 0..2
* Conseil nom
{subset}
Le Diagramme dObjets
Faciliter la comprhension des structures de donnes complexes dcrites dans le DC Identifier les classes et les relations
:Promotion intitul = 1A :Dpartement nom = sir anneCra = 97
: tudiant nom = Le_Lombric prnom = max adresse = la botte en terre nEtud = 111 age = 21
: tudiant
toto : tudiant
Une association
tudiant
Un lien
Pierre-Alain : tudiant
Mulhouse : Universit
Un lien
Jean-Jacques : tudiant
Rennes : Universit
Eric : tudiant
Un lien
Un lien
Anne : tudiant
Strasbourg : Universit
Un lien
Laurence : tudiant
Emploie >
Enseignant
Personne
Enfant
Parent
hberge
emploie
* Enseignant
1 0..1 M .. N * 1 .. *
Un et un seul (eq 1..1) Zro ou un De M N (entiers naturels) Plusieurs (eq 0..*) D'un plusieurs
UML pour les bases de donnes- p. 149
Les Classes-Associations
Ajouter des oprations et des attributs une association crer une classe d association Une instance d association cre une instance de la classe d association Exemple
Adhrent 1
Emprunte >
Exemplaire
Prt
date dure Prolonger()
UML pour les bases de donnes- p. 150
Agrgation / Composition
Proprit de l agrgation : transitivit (si A B C alors A C) mais non symtrique (si A B, B A)
Document
Paragraphe
Phrase
Les agrgations dUML reprsentent des associations qui ne sont pas symtriques et pour lesquelles lune des extrmits joue un rle prdominant par rapport lautre. Lagrgation concerne seulement les associations binaires (rflexives ou non). Il est prfrable dutiliser une agrgation lorsquune classe fait partie dune autre classe ou lorsquune action sur une classe implique une action sur une autre classe. UML dfinit deux formes dagrgation :
La composition (composite aggregation) requiert quun objet appartienne au plus une composition dobjets un instant donn. Cette appartenance peut changer au cours du temps. La composition implique en outre une forme de propagation entre le composite et le composant (en particulier la destruction du composite entranera obligatoirement la destruction de ses composants). Cette agrgation est reprsente par un losange noirci du ct du rle de la classe composite appele agrgat . Lagrgation de composition ne simpose que lorsque lassociation est de type composite/composant ou fait partie de. Lagrgation partage autorise quun objet appartienne simultanment diffrentes compositions dobjets. Cette agrgation est reprsente par un losange clair du ct du rle de la classe concerne par lassociation appele agrgat . Les agrgations partages sont un peu plus difficiles dfinir, elles renforcent le couplage dune association binaire et interviennent lorsque la composition ne sapplique pas et que des objets sont fortement dpendants par rapport dautres objets dans le cadre de lassociation.
Michel Dubois
Agrgations dUML
Modlisons un ordinateur qui est compos dun cran, dun ou de plusieurs disques et de diffrents priphriques en utilisant une agrgation de composition. Les composants (objets des classes Ecran, Disque et Periphrique) et les composites (objets de la classe Ordinateur) sont ici considrs comme des pices relles. La destruction dun ordinateur entranera la destruction de ses composants.
Composition UML
Au niveau de la base de donnes, la composition se programme avec SQL laide de la propagation de laction de suppression via les cls trangres (ON DELETE CASCADE) ou par dclencheurs.
Michel Dubois UML pour les bases de donnes- p. 153
Le losange clair indiquerait que les composants seraient considrs comme des types de pices et non comme des pices relles. Chaque objet des classes Ecran, Disque et Peripherique pourrait ainsi tre partag entre diffrents objets de type Ordinateur. La destruction dun ordinateur nentranerait pas ncessairement la destruction de ses composants. Considrons aussi lexistence dun copropritaire na de sens que si limmeuble existe. Il ne sagit pas ici dune relation composite/composant. La suppression dun objet de type immeuble nentranera pas forcment la destruction de ses copropritaires (pour ceux qui sont copropritaires dans dautres immeubles).
Notion assez subjective, lagrgation relve plus de la conception dtaille que de la modlisation. Elle se traduira au niveau physique par programmation de dclencheurs ou de contraintes SQL (de vrification CHECK ou de rpercussion de cl trangre CASCADE). UML pour les bases de donnes- p. 154
Relation de Gnralisation
La relation de Gnralisation est un concept fondamental de la modlisation objet. Cette relation entre classes est un mcanisme permettant de dfinir une classe (on parle de sous-classe ou de classe fille) partir dune autre classe (on parle de super-classe) tout en laffinant. Laffinement peut consister en lajout dattributs, lajout ou la redfinition doprations. La sous-classe prsente en plus de ses propres proprits toutes les proprits de sa super-classe. Un objet instance de la sousclasse possdera donc toutes les proprits (attributs, oprations, relations, contraintes) dfinies dans la super-classe plus toutes les proprits dfinies dans la sous-classe. La relation de gnralisation est souvent traduite smantiquement par est un .
UML pour les bases de donnes- p. 155
B Impossible !!! A C
Impossible !!!
Gnralisation
Gnralisation = factoriser les lments communs, cest--dire les attributs et les mthodes La gnralisation est opre aprs identification des classes
Abstractions plus gnrales Vhicule
Vhicule terrestre
Vhicule arien
Voiture
Camion
Avion
Hlicoptre
Gnralisation et Spcialisation
Il y a deux faons dapprhender la relation de Gnralisation lors du dveloppement dun logiciel.
Partant dune classe existante on dfinit une sous-classe capturant des particularits dun ensemble dobjets non discrimins par la classe existante. La sous-classe est une spcialisation de la superclasses. Lacte de spcialisation est la base de la rutilisation. Partant d un ensemble de classe existante on factorise laide dune super-classe les proprits communes ces classes dans une classe plus gnrale. La super-classe ainsi dfinie est une gnralisation des classes existantes. La gnralisation est un acte difficile mais de grand profit (architecture plus facilement maintenable).
Gnralisation et Agrgation
Ne pas confondre agrgation et gnralisation
L agrgation met en relation des objets chaque objet est l instance d une classe La gnralisation met en relation des classes un objet est simultanment instance de la superclasse et une instance de la sous-classe Agrgation est compos de , relation et Gnralisation est une sorte de , relation ou
UML pour les bases de donnes- p. 161
Gnralisation et Agrgation
Exemple Une lampe de bureau est de type fluorescent ou incandescence. Elle possde un socle, un abat-jour, un interrupteur et un cble. La lampe incandescence est quipe d une douille barillet tandis que la lampe fluorescente est quipe d un ballast, dun starter et de deux douilles rotatives Diagramme des classes faisant apparatre l hritage et l agrgation ?
UML pour les bases de donnes- p. 162
Association navigable
Par dfaut, une association UML est navigable dans les deux sens. Cela signifie que si, dans le cadre de la relation, un objet A est reli un objet B, par dfinition B est aussi reli A (dans le cadre de cette mme relation). UML 2 permet dexprimer dans un diagramme que les instances dune classe ne connaissent pas les instances dune autre bien qutant relies entre elles dans le cadre de lassociation.
La proprit de navigation est vrifie dans la grande majorit des associations. La rduction de la porte dune association sera ralise en phase dimplmentation (par programmation). Il ny a pas de sens dfinir une association prcisant la navigation des deux cts simultanment.
Michel Dubois UML pour les bases de donnes- p. 163
Associations 1-1
Merise
Etudiant 1,1 noinscrip nom effectuer 0,1 Stage numstage theme responsable
UML
Associations 1-N
Merise
Professeur numprof 0,n nom grade responsable 1,1 UV numUV titre datecreation
UML
voudrait >
UML
Merise
vux numordre
0,n
Vux numordre
UML
Association n-aire
Dpartement codedpt nodpt
Merise
0,n Logiciel nomlogi editeur 0,n installation dateinstall Dpartement codedpt nodpt Logiciel nomlogi editeur * * 1..* Serveur nomserv typeserv 1,n Serveur nomserv typeserv
UML
installation dateinstall
UML pour les bases de donnes- p. 169
Association n-aire
Une association n-aire sans contrainte se reprsente avec UML soit par un losange (symbole de lassociation) qui connecte les n classes et une classe-association, soit par une classe strotype relie aux n classes. Une association n-aire avec contrainte se reprsente plus facilement avec UML par une ou plusieurs classes-associations reliant les n classes. Association en losange
Classe strotype
Cette notation nest pas conseille moins dutiliser un outil qui ne prend pas en compte le symbole losange de lassociation et de vouloir toutefois modliser une association n-aire sans contrainte. Michel Dubois
UML pour les bases de donnes- p. 170
Merise
0,n Logiciel nomlogi editeur Dpartement codedpt nodpt * * Logiciel nomlogi editeur installation 1..* dateinstall 1 Serveur nomserv typeserv 0,n installation dateinstall 1,n Serveur nomserv typeserv
UML
La classe-association permet de prendre en compte explicitement la contrainte dunicit qui concerne linstallation des logiciels : un logiciel dun dpartement nest install que sur un seul serveur. UML pour les bases de donnes- p. 171
UML
Merise
UML
Contrainte de partition
0,1
Merise
dtachement P opration
Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion Mission sanitaire 0..1 codemsan organisme Mission entranement codement 0..1 date rgion
UML pour les bases de donnes- p. 174
UML
1..*
{Partition} dtachement
{xor} est possible. En OCL: inv: ((detachement->isEmpty() and operation->notEmpty()) or (detachement->notEmpty() and operation->isEmpty()))
1..*
opration
Contrainte d exclusion
0,1
Merise
dtachement opration
Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion Mission sanitaire 0..1 codemsan organisme Mission entranement codement 0..1 date rgion
UML
1..*
{Exclusion} dtachement
1..*
opration
En OCL: inv: ((detachement->isEmpty() and operation->notEmpty()) or (detachement->notEmpty() and operation->isEmpty())) or bases de donnes- p. 175 UML pour les ((detachement->isEmpty() and operation->isEmpty())
Contrainte de totalit
0,1
Merise
dtachement T opration
Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion Mission sanitaire 0..1 codemsan organisme Mission entranement codement 0..1 date rgion
UML pour les bases de donnes- p. 176
UML
1..*
{Totalit} dtachement
1..*
opration
Contrainte de simultanit
0,1
Merise
dtachement S opration
Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion Mission sanitaire 0..1 codemsan organisme Mission entranement codement 0..1 date rgion
UML pour les bases de donnes- p. 177
UML
1..*
{Simultanit} dtachement
1..*
opration
Contrainte dinclusion
1,1 effectue I voeux 0,1 Stage numstage theme responsable
Merise
0,n
0..1
effectue >
UML
Michel Dubois
Reprsentation des contraintes Des contraintes peuvent tre ajoutes aux attributs et oprations dune classe
notation entre { }
modifieurs crditer (Somme) {pr = Somme > 0 post solde = solde +somme} dbiter (Somme) Accesseur Solde : Somme
Toute contrainte prdfinie par UML2 ou exprime laide du langage OCL sera programmer par la suite sous SQL soit par contrainte de vrification (CHECK), soit par dclencheur.
Michel Dubois UML pour les bases de donnes- p. 183
public = +
usager
implmenteur
Classe
+a1 : T1 -a2 : T2
Hritage
Animal
Carnivore
Herbivore
Animal
UML
{Partition}
La notation est quivalente pour les autres formes d hritage, savoir exclusion et totalit. Le cas sans contrainte est reprsent sans ornement particulier
Merise
Carnivore
Herbivore
Chapitre 6
Michel Dubois
Michel Dubois
Michel Dubois
Michel Dubois
Michel Dubois
Michel Dubois
ASSOCIATION 1:1 -> (1,1)-(1,1) Une telle association peut se rduire une seule entit. La rgle n1 s applique. Des vues peuvent reconstituer les deux relations.
Pret num pret montant
1,1
sur
Gage
1,1
num_gage entrepot
ASSOCIATION 1:1 -> (1)-(1) Une telle association peut se rduire une seule classe. La rgle n1 s applique. Des vues peuvent reconstituer les deux relations.
Michel Dubois
sur
Gage
1,1
num_gage entrepot
Toutes les df sont intra-relations et ne posent pas de problme de contraintes supplmentaires. PRETGAGE
NUM_PRET_SUR_GAGE ENTREPOT MONTANT
Michel Dubois
Posseder
MAISON
1,1
Michel Dubois
Michel Dubois
Posseder
MAISON
1,1
df forte partielle
ASSOCIATION 1:N -> (1,1)-(1,N) La rgle n2 s applique. Une contrainte de dpendance fonctionnelle totale :
CONTRAT.num_contrat ->(T) SOCIETE.num_societe Toute socit est associ un contrat. Donc l ensemble des socits prsent dans la table contrat est gal l ensemble des socits de la table socit.
CONTRAT[num_societe]=SOCIETE[num_societe] <=> CONTRAT[num_societe]SOCIETE[num_societe]:cl trangre et CONTRAT[num_societe]SOCIETE[num_societe]
CONTRAT num contrat
Michel Dubois
1,1
passe
1,n
Michel Dubois
passe
1,n
CONTRAT
CONTRAT NUM_CONTRAT NUM_SOCIETE passe
SOCIETE (T)
SOCIETE (T) NUM_SOCIETE
VOITURE
0,1
Michel Dubois
Michel Dubois
VOITURE
0,1
Posseder
Michel Dubois
ASSOCIATION 1:1 -> (1,1)-(0,1) La rgle n2 s applique qu une seule fois. On va privilgier la dpendance fonctionnelle forte.
EDIFICE num_edifice type
0,1
est un
MAISON
1,1
Michel Dubois
est un
MAISON
1,1
ASSOCIATION 1:1 -> (0,1)-(0,1) La rgle n2 s applique qu une seule fois. On va privilgier un sens (au choix)
ENTREPRISE SIRET entreprise adresse
0,1
correspondre
TIERS
0,1
Michel Dubois
correspondre
TIERS
0,1
Michel Dubois
Michel Dubois
Michel Dubois
Michel Dubois
num article designation quantite stock UML pour les bases de donnes- p. 210 prix
Michel Dubois
ASSOCIATION N-AIRE
MAISON Coordonnees date construction surface Realiser
0,n
Michel Dubois
Preceder
0,n precede
Michel Dubois
Preceder
0,n precede
Michel Dubois
est parent de
0,2 enfant
Michel Dubois
est parent de
0,2 enfant
enfant
pere/mere
Michel Dubois
Contrainte de partition
0,1 Pilote numpil nom grade 0,1 P opration dtachement Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion
Pilote (numPilote, nom, grade) MissionSanitaire(codemsan, organisme) MissionEntranement (codement, date, rgion) Dtachement (#numpilote, #codemsan) Opration (#numpilote, #codement) Pilote[numPilote] Dtachement[numPilote] Opration[numPilote] Opration[numPilote] Dtachement[numPilote] =
UML pour les bases de donnes- p. 218
Contrainte d exclusion
0,1 Pilote numpil nom grade 0,1 opration Mission entranement codement 1,n date rgion dtachement Mission sanitaire 1,n codemsan organisme
Pilote (numPilote, nom, grade) MissionSanitaire(codemsan, organisme) MissionEntranement (codement, date, rgion) Dtachement (#numpilote, #codemsan) Opration (#numpilote, #codement) Opration[numPilote] Dtachement[numPilote] =
UML pour les bases de donnes- p. 219
Contrainte de totalit
0,1 Pilote numpil nom grade 0,1 T opration dtachement Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion
Pilote (numPilote, nom, grade) MissionSanitaire(codemsan, organisme) MissionEntranement (codement, date, rgion) Dtachement (#numpilote, #codemsan) Opration (#numpilote, #codement) Pilote[numPilote] Opration[numPilote] Dtachement[numPilote]
UML pour les bases de donnes- p. 220
Contrainte de simultanit
0,1 Pilote numpil nom grade 0,1 S opration dtachement Mission sanitaire 1,n codemsan organisme Mission entranement codement 1,n date rgion
Pilote (numPilote, nom, grade) MissionSanitaire(codemsan, organisme) MissionEntranement (codement, date, rgion) Dtachement (#numpilote, #codemsan) Opration (#numpilote, #codement) Opration[numPilote] = Dtachement[numPilote]
UML pour les bases de donnes- p. 221
Contrainte d inclusion
1,1 Etudiant 1,n noinscrip nom effectue I voeux 0,1 Stage numstage theme responsable 0,n
Etudiant (noinscrip, nom, #numstage) Stage(numstage, theme, responsable) Voeux (noinscrip, numstage) Etudiant[noinscrip, numstage] Voeux
Elisabeth Le Saux
Hritage
Vhicule immatriculation PTAC
Voiture NbPlaces
Camion nbEssieux
Vhicule (immatriculation , PTAC, type obligatoire) Voiture (#immatriculation, nbPlaces) Camion (#immatriculation, nbEssieux)
Contraintes d hritage
Partition : Vhicule[immatriculation] Voiture[immatriculation] Camion[Immatriculation] Voiture[immatriculation] Camion[Immatriculation] = Totalit : Vhicule[immatriculation] Voiture[immatriculation] Camion[Immatriculation] Exclusion Voiture[immatriculation] Camion[Immatriculation] =
Agrgation UML
Alors que lagrgation partage de UML se traduit au niveau logique comme une simple association, il nen est pas de mme pour la composition. Lexemple dcrit le schma relationnel dduit dune composition (on suppose que lattribut a identifie la classe composante et que lattribut c identifie la classe composite). La cl primaire des relations dduites des classes composantes doit contenir lidentifiant de la classe composite (quelles que soient les multiplicits).
Michel Dubois
Intrimaire
code intrimaire,
1,n
1,n
Priode
num_priode,
grer
planifier
lieu_intervention
Agence
1,n code_agence,
Contrat
1,n
num_contrat,
Entits Agence(codeA, nomA, rueA, villeA) Contrat(num_contrat, caractristiques) Intrimaire(codeI, nomI, rueI, villeI, #codeA) Priode(num_priode, ) Associations Planning (#codeI, #num_contrat, #num_priode, lieu_intervention) L association grer n apparat pas directement : la cl trangre codeA dans intrimaire la remplace
UML pour les bases de donnes- p. 229
Spectateur
Num_spec, nomS CIF 1,n
Reprsentation
Num_rep, dateR, heureR 1,n
Point de vente
Num_point, rueP, villeP, 1,n priode_ouverture Se drouler Nb_places_reste 1,n
Spectacle
Num_spectacle, titre valuer tarif
DF 1,n
Salle
Num_salle, capacit
Catgorie
Num_categ, 1,n nomC
UML pour les bases de donnes- p. 230
Chapitre 7
Michel Dubois
Formalisme de P. CHEN
Linterprtation des cardinalits constitue la diffrence fondamentale entre le formalisme du modle de P. Chen et le MCD de Merise. Les cardinalits dune association binaire dans le modle de Chen et de Merise sont inverses au niveau de laxe de reprsentation de lassociation. Les cardinalits dune association binaire dans le modle de Chen et dans le formalisme UML sont positionnes de faon identique. Le problme de lapproche de P. Chen rside dans son manque de cohrence entre la reprsentation des associations binaires et des associations n-aires. La majorit des outils de conception amricains nont pas suivi cette vision des choses car ils ont t incapables de programmer ce concept (mme le produit Designer dOracle). Ces outils modlisent les associations n-aires en dfinissant n+1 entit(s), dont n sont relies une seule par des associations binaires un-plusieurs.
Michel Dubois
TYPES DE CONTRAINTES D'INTGRITS RFRENTIELLES Contraintes 1 plusieurs ( ) : La cl primaire (ct 1) ne peut contenir de doublons. La cl trangre (ct ) peut quand elle contenir des valeurs en double pour peu qu'elles existent dans la cl primaire associe. Contraintes 1 1 : Ces contraintes sont plus rares et correspondent au cas o la cl trangre ne peut contenir de doublons.
UML pour les bases de donnes- p. 233
TYPES DE CONTRAINTES D'INTGRITS RFRENTIELLES Reprsentations d'un schma de tables avec des contraintes d'intgrit rfrentielles dans le cadre d'une base de donnes mmorisant l'Etat Civil.
Table Personne
N INSEE Nom Prnom Date de naissance Lieu de naissance Date dcs Lieu dcs
Table Mariage
Table Personne
N INSEE Nom Prnom Date de naissance Lieu de naissance Date dcs Lieu dcs N INSEE Pre N INSEE Mre
Table Mariage
N INSEE poux N INSEE pouse Date mariage Lieu mariage Date jugement de divorce Lieu jugement de divorce
Table Enfants
N INSEE Enfant N INSEE pre N INSEE mre
MySQL WORKBENCH
Barker's Notation
Michel Dubois
La notation Barker se rfre la notation ERD dvelopp par Richard Barker, Ian Palmer, Harry Ellis et al. tout en travaillant la socit britannique de consultants CACI autour de 1986. La notation a t adopt par Barker quand il a rejoint Oracle et est effectivement dfinie, dans son livre CASE Method: Entity Relationship Modelling en 1990 puis utilise dans la srie de ses livres sur sa mthode de modlisation nomme CASE. Cette notation a t et est encore utilise par les outils de modlisation Oracle. Il s'agit d'une variation du style de modlisation de donnes en patte doie qui a t initie par Chen puis plbiscite en raison de sa lisibilit et l'utilisation efficace de l'espace dessin. Les associations entre entits sont binaires ; les cardinalits sont reprsentes graphiquement. Les entits peuvent tre spcialises ou gnralises sous forme de SubType et Super-Type. Oracle utilise la notion darc pour modliser une restriction dassociations (exclusion mutuelle ou une contrainte de Ou-exclusif). Pour remplacer les associations de degr n:n, il y a des entits associatives ; les entits associatives sont des entits dpendantes, identifies par deux parents ou plus. Une entit associative peut tre dote dattributs et tre, son tour, associe toute autre UML pour les bases de donnes- p. 237 entit.
Barker's Notation
Lorsquune association est identifiante, elle est non transfrable pour respecter la rgle de stabilit de cl primaire. la non transfrabilit de lassociation entre CLIENT et COMMANDE, reprsente par un losange; cette non transfrabilit spcifie que lorsquune commande est cre et attribue un client, elle ne peut plus tre attribue ou transfre un autre client. Ceci implique que si un utilisateur se trompe de client lors de ltablissement dune commande, il devra dtruire la commande errone et en rcrer une nouvelle en lui attribuant le client correct. lassociation identifiante entre COMMANDE et LIGNECOMMANDE, reprsente par un trait perpendiculaire lassociation ; lassociation identifiante spcifie que les lignes de commandes seront identifies par lidentifiant de la commande et par un identifiant de ligne tout comme un enfant est identifi par le nom de famille des parents et son prnom.
les rles jous par les 2 entits participant lassociation ; la cardinalit minimale de 0, reprsente par un trait till, pour le rle ComposeeDe de lentit CATEGORIE ; la cardinalit maximale de n, reprsente par une patte doie sur le rle oppos, pour le rle ComposeeDe de lentit CATEGORIE ; la cardinalit minimale de 1, reprsente par un trait plein, pour le rle AppartientA de lentit PRODUIT ; la cardinalit maximale de 1, reprsente par une absence de patte doie sur le rle oppos, pour le rle AppartientA de lentit PRODUIT. .
Michel Dubois
Le pilote JDBC THIN 10g ne supporte pas lauthentification radius contrairement au pilote OCI et aux pilotes 11g OCI/THIN. Le fichier SQLNET.ORA du rpertoire point par la variable denvironnement TNS_ADMIN contient : sqlnet.authentification.services= radius
A lUBS, il faut utiliser le pilote OCI, le serveur Oracle 10g utilisant lauthentification radius : java.util.Properties props = new java.util.Properties(); props.setProperty("sqlnet.authentification.services", "radius"); props.setProperty("user","e0602180"); props.setProperty("password","1234"); String url="jdbc:oracle:oci:" +"@oraetud.univ-ubs.fr:1521:ORAETUD"; conn = DriverManager.getConnection(url,props);
UML pour les bases de donnes- p. 240
jdbc:oracle:oci:e0602180/1234@oraetud.univ-ubs.fr:1521:ORAETUD
Quelques points forts sont mettre en exergue : un grand choix de SGBD est pris en compte, la robustesse et la qualit de lergonomie qui permet de travailler facilement avec diffrents diagrammes dans le mme environnement. Les seuls points faibles se rduisent la nonprise en compte des contraintes et des associations n-aires avec la notation UML.
Michel Dubois UML pour les bases de donnes- p. 241
Michel Dubois
Michel Dubois
Michel Dubois
DEMARCHE
monde rel
PERCEPTION
DIRECTE
MODELISATION CONCEPTUELLE
DICTIONNAIRE DES DONNEES GRAPHES DES DEPENDANCES FONCTIONNELLE OU NORMALISATION A PARTIR DE LA RELATION UNIVERSELLE
Numro d'immatriculation
Marque
Modle
Couleur
Nationalit du constructeur
Puissance
MODELISATION LOGIQUE
Michel Dubois
BASE DE DONNEES
TERMINOLOGIE table relation enregistrement occurrence ligne de table n-uplet tuple champ attribut colonne de table donne intention d une relation schma d une relation extension d une relation contenu d une relation
Michel Dubois UML pour les bases de donnes- p. 248
Michel Dubois
NATURE Non calcule / saisie Non calcule / saisie Non calcule / saisie Non calcule / saisie
CATEGORIE Stable
NAT_CONS PUISSANCE
DOMAINE COMMENTAIRE texte[20] Identifiant de voiture obligatoire Texte[30] obligatoire Texte[30] obligatoire Texte[10] dans ( Bleu , Rouge , Vert , Noire ) texte[20] obligatoire Numrique Obligatoire
Michel Dubois
ANOMALIES DE MANIPULATION
Table Location de voitures par des clients NClient 01 01 02 02 02 03 Nom Client Prnom Client N Immatriculation Martin Martin Durand Durand Durand Dupont Pierre Pierre Paul Paul Paul Jacques 91253 ABC 75 56465 CDE 78 91253 ABC 75 1256 DCE 75 8953 XY 56 56465 CDE 78 Marque voiture Modle voiture Date de location Renault FIAT Renault GMC Mercedes FIAT Twingo S Panda AM 96 Twingo S S 280 D 250 Panda AM 96 05/01/1997 04/03/1997 15/02/1997 25/02/1997 16/04/1997 12/06/1997 Nb jours de location 1 3 2 4 5 2
On ne peut ajouter un vhicule la base que s'il est lou par un client. La suppression de l'unique location d'un vhicule peut entraner la disparition des informations le concernant. La redondance sur la Fiat Panda AM 96 peut poser des problmes de cohrence.
Michel Dubois UML pour les bases de donnes- p. 253
ANOMALIES DE MANIPULATION
Table Voitures Numro d'immatriculation 91253 ABC 75 56465 CDE 78 132 YZ 01 1256 DCE 75 8953 XY 56 4565 TD 34 7897 BDE 75 2536 BRF 91 Marque Renault FIAT Mercedes GMC Mercedes FIAT Renault Mercedes Modle Twingo S Panda AM 96 S 280 S 280 D 250 Punto Twingo S S 280 Puissance 6 CV 5 CV 12 CV 8 CV 10 CV 6 CV 6 CV 12 CV Nationalit du constructeur Franaise Italienne Allemande Amricaine Allemande Italienne Franaise Allemande Couleur Bleu Rouge Gris mtallis Azur Rouge Noir Beige Bleu
On ne peut introduire le fait que la nationalit dpend de la marque. La suppression de 1256DCE 75 entrane la perte d'information disant que G M C est une compagnie amricaine. La fusion de constructeurs automobiles peut entraner un changement de nationalit. Cohrence!
Michel Dubois UML pour les bases de donnes- p. 254
Michel Dubois
DF DE L EXEMPLE
NUMERO S.S. NUMERO S.S. NUMERO S.S., NOM NUMERO S.S., NOM NUMERO S.S., PRENOM NUMERO S.S., PRENOM NUMERO S.S., ADRESSE NUMERO S.S., ADRESSE NUMERO S.S., NOM, PRENOM NUMERO S.S., NOM, ADRESSE NUMERO S.S., PRENOM, ADRESSE
Michel Dubois
PRENOM ADRESSE PRENOM ADRESSE NOM ADRESSE NOM PRENOM ADRESSE PRENOM NOM
UML pour les bases de donnes- p. 257
/ / / / / / / / / / /
NUMERO S.S. NUMERO S.S. NUMERO S.S. PRENOM NOM NOM ADRESSE ADRESSE PRENOM NUMERO S.S. NUMERO S.S.
UML pour les bases de donnes- p. 258
LIVRAISON
no-bon 10 10 18 ... date-bon 20-04-94 20-04-94 25-04-94 ... ref-art SDF0875 RMI7543 RMI7543 ... libell-art Poupe Barbie Monopoly Monopoly ... qt-art 200 250 20 ... code-famille JF JS JS ... libell-famille jouets filles jeu de socit jeu de socit ...
Michel Dubois
ENSEMBLE DE DF
Soit U l ensemble des attributs du domaine tudi, Soit V un sous ensemble de U : V U, Soit R(V) un schma de relation, Soit r une relation de schma R, Soit F un ensemble de dpendances fonctionnelles qui sont vraies dans r, On dit qu'un ensemble F de dpendances fonctionnelles implique logiquement la dpendance fonctionnelle X Y si et seulement si tout contenu de r vrifiant F vrifie aussi X Y. On note F X Y Exemple : R(A,B,C) et F={A B,B C} alors F A C
Michel Dubois UML pour les bases de donnes- p. 261
Ces axiomes permettent de dterminer les dpendances fonctionnelles logiquement impliques par d autres.
Michel Dubois UML pour les bases de donnes- p. 263
LA TABLE VOITURE
Numro d'immatriculation 91253 ABC 75 56465 CDE 78 3456 FGR 75 132 YZ 01 1256 DCE 75 8953 XY 56 Marque Renault FIAT GMC Mercedes GMC Mercedes VOITURE Modle Puissance Nationalit du constructeur Twingo S 6 CV Franaise Panda AM 96 5 CV Italienne D 350 12 CV Amricaine S 280 12 CV Allemande S 280 8 CV Amricaine D 250 10 CV Allemande Couleur Bleu Rouge Bleu Gris mtallis Azur Rouge
Michel Dubois
RFLEXIVIT BA A
Tout ensemble d'attributs dtermine lui-mme ou une partie de lui mme. Toute partie d'un ensemble d'attributs dpend de l'ensemble complet. Numro d'immatriculation, Marque Numro d'immatriculation, Marque Numro d'immatriculation, Marque Marque Numro d'immatriculation, Marque Numro d'immatriculation.
Michel Dubois
AUGMENTATION
A B A,C B,C Si A dtermine B (B dpend de A), les deux ensembles d'attributs peuvent tre enrichis par un mme troisime dans la relation de dpendance. Numro d'immatriculation Marque Numro d'immatriculation, Couleur Marque, Couleur
Michel Dubois
TRANSITIVIT
A B et B C A C Il y a dpendance fonctionnelle transitive entre 2 ensembles d'attributs A C lorsque A dtermine un ensemble d'attributs B, qui lui-mme dtermine C. Il y a dpendance fonctionnelle transitive entre 2 attributs A C lorsque C dpend d'un attribut B, qui lui-mme dpend de A. Numro d'immatriculation Marque et Marque Nationalit du constructeur Numro d'immatriculation Nationalit du constructeur
Michel Dubois UML pour les bases de donnes- p. 267
UNION
A B et A C A B, C Lorsque qu'un attribut dtermine deux groupes d'attributs distincts, il dtermine leur association. Numro d'immatriculation Marque et Numro d'immatriculation Couleur Numro d'immatriculation Marque, Couleur
Michel Dubois
PSEUDO-TRANSITIVIT
A B et B,C D A, C D
Michel Dubois
DCOMPOSITION
A B et C B A C Numro d'immatriculation Marque, Couleur Numro d'immatriculation Marque et Numro d'immatriculation Couleur Il y a diminution des buts : opration d clatement Quand le but d une df est monoattribut, on dit que la df est canonique. L opration d clatement permet de se ramener des df canoniques
Michel Dubois UML pour les bases de donnes- p. 270
Michel Dubois
Michel Dubois
EXEMPLES
Numro d'immatriculation Couleur
dfd
dfd Couleur
Michel Dubois
COUVERTURE MINIMALE
De tout ensemble de dpendance fonctionnelle, on peut extraire au moins un ensemble de dpendances fonctionnelles lmentaires et directes quivalent : modulo la transitivit et l augmentation. On lappelle sa couverture minimale. Elle minimise l expression des contraintes structurelles du S.I. que sont les DF. Donc tout ensemble de dpendances fonctionnelles admet une couverture minimale, en gnral non unique.
Michel Dubois UML pour les bases de donnes- p. 275
COUVERTURE MINIMALE
La couverture minimale G d'un ensemble F de dpendances fonctionnelles (DF) est un ensemble de DF tel que : 1. On peut dduire de G les mmes DF que de F : G+ = F+ 2. Il n'y a qu'un attribut droite dans toutes les DF de G (dcomposition) 3. Toutes les dpendances sont utiles : si on enlve une quelconque, on ne peut obtenir F+. 4.Toutes les dpendances sont lmentaires.
Michel Dubois UML pour les bases de donnes- p. 276
NOTION DE CL PRIMAIRE
Une table doit obligatoirement comporter une cl primaire. il faut que chaque enregistrement soit dot d'un identifiant pour tre retrouv : c'est le rle de la cl primaire. Par convention, la cl primaire d'une table apparat souligne dans la reprsentation en intention d'une table. On distingue deux types de cls primaires :
Les cls primaires simples, constitues par un seul attribut. Les cls primaires composes : parfois on dfinit une cl primaire forme de plusieurs attributs de manire obtenir l'unicit de la valeur de la cl.
Michel Dubois
PROPRITS DE LA CL PRIMAIRE
Par dfinition, la cl primaire doit dterminer tous les regroupements possibles des autres attributs de la table. Elle doit tre minimale. Elle ne peut avoir deux fois la mme valeur pour deux tuples. Il n y a pas de doublons. Il y a une contrainte unicit (UQ) sur toute la cl primaire. De prfrence, une cl primaire est compose d'attributs stables dans le temps. Une modification de la cl primaire risque de poser de gros problmes de cohrence, donc de maintenance de la base de donnes. Une cl primaire doit tre systmatiquement renseigne, donc on ne peut autoriser la prsence de valeurs nulles dans une de ses composantes qui, ds qu'elles se multiplient, conduisent invitablement l'apparition de doublons. La contrainte (NN) sur chaque partie de la cl primaire.
Michel Dubois UML pour les bases de donnes- p. 278
Dans ce cas on retiendra comme cl primaire la cl candidate la plus petite au niveau de la taille de stockage (Code postal, Adresse ). Toutes les cls candidates ont une contrainte dunicit (UQ) sur leur globalit. Pour une relation R, il y a toujours une cl candidate. Au pire V tout entier peut tre la cl candidate. Il vaut mieux envisager de crer un attribut incrment chaque cration d'une occurrence de la relation spcialement pour ce cas.
Michel Dubois UML pour les bases de donnes- p. 279
Michel Dubois
EXEMPLE DE GRAPHE
Pour nos seules donnes relatives aux voitures :
GRAPHE DES DEPENDANCES FONCTIONNELLES Numro d'immatriculation
Marque
Modle
Couleur
Nationalit du constructeur
Puissance
Michel Dubois
EXEMPLE
GRAPHE DES DEPENDANCES FONCTIONNELLES Numro d'immatriculation
Marque
Modle
Couleur
Nationalit du constructeur
Puissance
Ce graphe donnera les tables suivantes : Voiture (Numro d'immatriculation, #[Marque, Modle], Couleur) Nationalit (Marque, Nationalit du constructeur) Puissance (#Marque, Modle, Puissance)
Michel Dubois UML pour les bases de donnes- p. 284
Michel Dubois
D.F. INTER-RELATIONS
Une cl trangre exprime une DF inter-relation : quand on connat la cl trangre, on connat la valeur de la cl primaire rfrence. Exemple : R(A,B,C) R(D,#A) Les dpendances exprimes par ce schma de base : F={AB, AC, DA} mais on a aussi R.A R.A si on tient compte du schma relationnel. Cette DF ne reprsente pas une contrainte du Systme d Information. Elle est plutt dordre technique et ne se rencontre pas lors de lexploitation de la base de donnes : la raison dtre des cls trangres est de permettre la recomposition par jointure naturelle. Or cette dernire limine lattribut doublon dans la relation rsultat !
Michel Dubois UML pour les bases de donnes- p. 286
SCHEMA RELATIONNEL ET DF
Une dpendance fonctionnelle est une proprit du Systme d'Information qui est indpendante du dcoupage relationnel, puisque celui-ci n'existe pas ce moment. Ce qui n'empche pas de revenir sur les dpendances fonctionnelles aprs dcoupage (ou dcomposition) et de reprer des dpendances fonctionnelles qui sont devenues inter relation dans ce contexte. Retour l'exemple : F={AB, AC, DA} et R(A,B,C) R(D,#A) On a R'.D R'.A et R.A R.A donc R'.D R.A R.A R.B est intra-relation. R.A R.C est intra-relation. R'.D R.A est inter-relation.
Michel Dubois UML pour les bases de donnes- p. 287
Michel Dubois
PREMIRE EXTENSION
Numro d'immatriculation 91253 ABC 75 56465 CDE 78 3456 FGR 75 132 YZ 01 1256 DCE 75 8953 XY 56 VOITURE Marque Modle Renault FIAT GMC Mercedes GMC Mercedes Twingo S Panda AM 96 D 350 S 280 S 280 D 250 Couleur Bleu Rouge Bleu Gris mtallis Azur Rouge
Voiture.Numro d'immatriculation Voiture.Numro d'immatriculation (T) Puissance.Marque Voiture.Numro d'immatriculation (T) Puissance.Modle
Michel Dubois
(T) Puissance.(Marque,Modle)
Marque Renault FIAT GMC Mercedes GMC Mercedes PUISSANCE Modle Puissance Twingo S 6 CV Panda AM 96 5 CV D 350 12 CV S 280 12 CV S 280 8 CV D 250 10 CV
UML pour les bases de donnes- p. 291
DEUXIME EXTENSION
Numro d'immatriculation 91253 ABC 75 56465 CDE 78 3456 FGR 75 132 YZ 01 8953 XY 56 VOITURE Marque Modle Renault FIAT GMC Mercedes Mercedes Twingo S Panda AM 96 D 350 S 280 D 250 Couleur Bleu Rouge Bleu Gris mtallis Rouge
Voiture.Numro d'immatriculation Par contre, Voiture.Numro d'immatriculation (T) Puissance.Marque Voiture.Numro d'immatriculation (T) Puissance.Modle
Michel Dubois
(T) Puissance.(Marque,Modle)
PUISSANCE Modle Puissance Twingo S 6 CV Panda AM 96 5 CV D 350 12 CV S 280 12 CV S 280 8 CV D 250 10 CV
UML pour les bases de donnes- p. 292
(T) Puissance.Marque
(T) Puissance.Modle
Michel Dubois
NATURE Non calcule / saisie Non calcule / saisie Non calcule / saisie Non calcule / saisie
CATEGORIE Stable
NAT_CONS PUISSANCE
DOMAINE COMMENTAIRE texte[20] Identifiant de voiture obligatoire Texte[30] obligatoire Texte[30] obligatoire Texte[10] dans ( Bleu , Rouge , Vert , Noire ) texte[20] obligatoire Numrique Obligatoire
Michel Dubois
F = { Num_imma Marque, Num_imma Modele, Num_imma Couleur, Marque Nat_ Cons, Marque, Modele Puissance}
Cependant, un tel schma nexprime pas toutes les contraintes connues :
PUISSANCE[marque,modele]VOITURE[marque,modele] VOITURE.#[marque,modele] NOT NULL
Michel Dubois UML pour les bases de donnes- p. 297
SCHEMA RELATIONNEL
VOITURE
Numro dimmatriculation (1) Couleur Marque (nn) Modele (nn)
NATIONALITE
Marque (1) Nationalite du constructeur P
PUISSANCE
Marque (1) Modele (1) Puissance
}
T
{ }
(nn) (uq) P T
: partie de la cl primaire donc (nn,uq) : cl compose : cl trangre obligatoire : cl trangre avec contrainte dunicit : df inter-relation partielle : df inter-relation totale : rfrence
UML pour les bases de donnes- p. 298
Michel Dubois
01
DURAND
Jacques
Table EMPLOYES
Numro Employ 01 02 Nom DURAND DUPONT Prnom Jacques Jeanne
Table S.G.B.D.
Numro employ 01 01 01 01 02 02 SGBD matriss Oracle Access SQL Server Ingres DBase Paradox
Michel Dubois
Table Clients N Client 01 02 03 Nom Client Prnom Client Martin Durand Dupont Pierre Paul Jacques N Immatriculation 91253 ABC 75 56465 CDE 78 1256 DCE 75 8953 XY 56 Table Locations de voitures par des clients N Client 01 01 02 02 02 03 N Immatriculation 91253 ABC 75 56465 CDE 78 91253 ABC 75 1256 DCE 75 8953 XY 56 56465 CDE 78 Date de location 05/01/1997 04/03/1997 15/02/1997 25/02/1997 16/04/1997 12/06/1997
Table Voitures Marque voiture Modle voiture Renault FIAT GMC Mercedes Twingo S Panda AM 96 S 280 D 250
Nb jours de location 1 3 2 4 5 2
Michel Dubois
Michel Dubois
Table Nationalits par marque Marque Table voitures Numro d'immatriculation 91253 ABC 75 56465 CDE 78 132 YZ 01 1256 DCE 75 8953 XY 56 4565 TD 34 7897 BDE 75 2536 BRF 91 Marque Renault FIAT Mercedes GMC Mercedes FIAT Renault Mercedes Modle Twingo S Panda AM 96 S 280 S 280 D 250 Punto Twingo S S 280 Couleur Bleu Rouge Gris mtallis Azur Rouge Noir Beige Bleu Renault FIAT Mercedes GMC Nationalit du constructeur Franaise Italienne Allemande Amricaine Table Puissances par modle Marque Renault FIAT Mercedes GMC Mercedes Modle Twingo S Panda AM 96 S 280 S 280 D 250 Puissance 6 CV 5 CV 12 CV 8 CV 10 CV
Michel Dubois
FIAT
Michel Dubois
SQLPLUS
Invocation du client SQLPLUS (sur les partitions debian/linux lIUT, la commande sqlplus10g est aussi disponible)
>sqlplus /
Si les comptes ont une authentification externe Oracle.
>sqlplus duboism/xxx@oraetud
Si le nom de service oraetud a t dfinie dans tnsnames.ora.
La commande SQLPLUS EXIT permet de quitter SQLPLUS. Les commandes SQLPLUS ! ou HOST permettent dexcuter une commande du systme dexploitation
Sous windows XP, la commande host est disponible mais pas !. !cp p /forum/vannes/prof/lcsd01/MD/xxx.sql ~ (copier un fichier) !cd /forum/vannes/prof/lcsd01/MD (changer le rpertoire courant : ne marche que pour Linux) host sqlldr10g userid=duboism/xxx@oraetud control=xxx.ctl (charger une table sous linux lIUT) host \monRepertoire\xxx.bat ou !/monRepertoire/xxx.sh (excuter un fichier de commandes externes)
UML pour les bases de donnes- p. 310
Les script shell *.sh sous linux et les fichiers *.bat sous Windows XP permettent de linvoquer en mode batch. Michel Dubois
SQLPLUS MSDOS
Michel Dubois
SQLPLUS WINDOWS
Michel Dubois
SQLPLUS/SQLLDR LINUX
sqlplus duboism/xxxxxx@oraetud ( partir des distributions debian locales comme pour Windows) sqlplus10g duboism/xxxxxx@oraetud ( partir des distributions debian locales) sqlldr10g userid=duboism/xxxxxx@oraetud control=xxx.ctl
Michel Dubois
CONTRAINTES ET ORACLE
Contraintes sur la relation Cl primaire Cl(s) candidate(s) Cl(s) secondaire(s) Cl(s) trangre(s) et provenance Contrainte sur attribut autre que les cls Contrainte sur tuple appele par oracle contrainte de table Contrainte sur table Contrainte dajout Contrainte de modification Contrainte de suppression
Michel Dubois
Implantation PRIMARY KEY UNIQUE CREATE INDEX FOREIGN KEY REFERENCES NULL vs NOT NULL, CHECK CHECK TRIGGER DEFAULT, TRIGGER TRIGGER ON DELETE CASCADE, UML pour les bases de donnes- p. 317 TRIGGER
CREATE TABLE
Michel Dubois
Michel Dubois
CONTRAINTE DE COLONNE
Michel Dubois
CONTRAINTE DE TUPLE/TABLE
Michel Dubois
Michel Dubois
RENOMMER UNE TABLE On a la possibilit de changer le nom d'une table par la commande RENAME. la syntaxe est la suivante : RENAME ancien_nom TO nouveau_nom ;
Michel Dubois
Certaines contraintes peuvent empcher lajout de nouvelles donnes Par exemple, si on ajoute une contrainte rfrentielle qui rfrence la table elle-mme (cas de la hirarchie employ/suprieur). Pour pallier ce problme, SQL 2 permet dindiquer que la vrification dune contrainte doit tre diffre la fin de la transaction en cours, et pas immdiatement pour chaque commande SQL.
Michel Dubois UML pour les bases de donnes- p. 330
CONTRAINTES DIFFRABLES CONSTRAINT nom dfinition-contrainte [NOT] DEFERRABLE [INITIALLY {DEFERRED | IMMEDIATE}] La valeur par dfaut est NOT DEFERRABLE Par dfaut, si elle peut tre diffre, elle ne lest pas si on ne fait rien ; on peut changer a en prcisant INITIALLY DEFERRED
Michel Dubois UML pour les bases de donnes- p. 331
Il est parfois intressant d'enlever temporairement des contraintes. Oracle le permet par la commande ALTER TABLE ... DISABLE/ENABLE.
ALTER TABLE table DISABLE CONSTRAINT NOM_ UNIQUE UNIQUE
Michel Dubois UML pour les bases de donnes- p. 333
VUE SUR LES COLONNES DES CONTRAINTES La vue USER_CONS_COLUMNS permet dobtenir ces renseignements.
SQL> SELECT 2 FROM 3 WHERE constraint_name, column_name user_cons_columns table_name = 'EMP'; COLUMN_NAME ---------------------DEPTNO EMPNO MGR EMPNO DEPTNO
UML pour les bases de donnes- p. 334
Vous pouvez ajouter un commentaire une table par linstruction COMMENT. Les commentaires pouront tre obtenus par les vues : - ALL_COL_COMMENTS - USER_COL_COMMENTS - ALL_TAB_COMMENTS - USER_TAB_COMMENTS
Michel Dubois UML pour les bases de donnes- p. 335
UNE SEQUENCE Cest un gnrateur automatique de nombres uniques; Cest un objet partageable; Cest un objet utilis pour crer des valeurs pour une cl primaire ; Cet objet permet dviter dcrire du code au niveau applicatif ; Cet objet utilise le cache de la mmoire par soucis doptimisation.
Michel Dubois UML pour les bases de donnes- p. 336
Michel Dubois
Michel Dubois
Michel Dubois
1,1
sur
Gage
1,1
num_gage entrepot
Michel Dubois
-- ------------------------------------TABLE : PRETGAGE -- -----------------------------------CREATE TABLE PRETGAGE ( NUM_PRET_SUR_GAGE CHAR(32) NOT NULL, ENTREPOT CHAR(32) NOT NULL, MONTANT NUMBER(4) NOT NULL, CONSTRAINT PK_PRETGAGE PRIMARY KEY (NUM_PRET_SUR_GAGE) );
Michel Dubois UML pour les bases de donnes- p. 341
Posseder
MAISON
1,1
PERSONNE
Michel Dubois
passe
1,n
CONTRAT
CONTRAT NUM_CONTRAT NUM_SOCIETE passe (T)
(T)
SOCIETE
SOCIETE
NUM_SOCIETE
PERSONNE
0,n
VOITURE
0,1
Posseder
Michel Dubois
est un
MAISON
1,1
correspondre
TIERS
0,1
Michel Dubois
La rgle n3 s applique.
COMMANDE NUM_COMMANDE DATE_COMMANDE STATUS PORTER NUM_COMMANDE NUM_ARTICLE QUANTITE ARTICLE NUM_ARTICLE DESIGNATION QUANTITE_STOCK PRIX
Michel Dubois
Michel Dubois
Porter quantite
0,n
num article designation UML pour les bases de donnes- p. 354 quantite stock prix
ASSOCIATION N-AIRE
MAISON Coordonnees date construction surface Realiser
0,n
La rgle n3 s applique.
TYPE_TRAVAUX NUM_TRAVAUX DESIGNATION
Michel Dubois
ASSOCIATION N-AIRE
CREATE TABLE ENTREPRISE MAISON ( ENTREPRISE COORDONNEES REALISER SIRET_ENTREPRISE CHAR(32) NOT NULL, SIRET_ENTREPRISE DATE_CONSTRUCTION RAISON_SOCIALE CHAR(32) NOT NULL, NUM_TRAVAUX RAISON_SOCIALE SURFACE SIRET_ENTREPRISE ADRESSE ADRESSE CHAR(32) NOT NULL, COORDONNEES CONSTRAINT PK_ENTREPRISE PRIMARY KEY (SIRET_ENTREPRISE) DATE_REALISATION ); MONTANT CREATE TABLE MAISON ( COORDONNEES CHAR(32) NOT NULL, DATE_CONSTRUCTION DATE , SURFACE NUMBER(4), CONSTRAINT PK_MAISON PRIMARY KEY (COORDONNEES) TYPE_TRAVAUX ); NUM_TRAVAUX CREATE TABLE TYPE_TRAVAUX DESIGNATION ( NUM_TRAVAUX NUMBER(4) NOT NULL, DESIGNATION CHAR(32) NOT NULL, CONSTRAINT PK_TYPE_TRAVAUX PRIMARY KEY (NUM_TRAVAUX) ); CREATE TABLE REALISER ( NUM_TRAVAUX NUMBER(4) NOT NULL, SIRET_ENTREPRISE CHAR(32) NOT NULL, COORDONNEES CHAR(32) NOT NULL, DATE_REALISATION DATE , MONTANT NUMBER(4), CONSTRAINT PK_REALISER PRIMARY KEY (NUM_TRAVAUX, SIRET_ENTREPRISE, COORDONNEES), CONSTRAINT FK_TYPE_TRAVAUX FOREIGN KEY (NUM_TRAVAUX) REFERENCES TYPE_TRAVAUX (NUM_TRAVAUX), CONSTRAINT FK_ENTREPRISE FOREIGN KEY (SIRET_ENTREPRISE) REFERENCES ENTREPRISE (SIRET_ENTREPRISE), CONSTRAINT FK_MAISON FOREIGN KEY (COORDONNEES) REFERENCES MAISON (COORDONNEES) Michel Dubois UML pour les bases de donnes- p. 357 );
Preceder
0,n precede
La rgle n2 s applique.
Michel Dubois
Michel Dubois
est parent de
0,2 enfant
enfant
pere/mere
La rgle n3 s applique.
Michel Dubois UML pour les bases de donnes- p. 360
ETUDIANT niveau
ENSEIGNANT grade
Michel Dubois
SPCIALISATION
PERSONNE CREATE TABLE PERSONNE NUM_PERSONNE NOM ( DDN NUM_PERSONNE NUMBER(4) NOT NULL, NOM CHAR(32) NOT NULL, specialiser specialiser DDN DATE NOT NULL, ENSEIGNANT ETUDIANT NUM_PERSONNE CONSTRAINT PK_PERSONNE PRIMARY KEY (NUM_PERSONNE) NUM_PERSONNE GRADE NIVEAU NOM NOM ); DDN DDN CREATE TABLE ETUDIANT ( NUM_PERSONNE NUMBER(4) NOT NULL, NIVEAU CHAR(32) , NOM CHAR(32) NOT NULL, DDN DATE NOT NULL, CONSTRAINT PK_ETUDIANT PRIMARY KEY (NUM_PERSONNE), CONSTRAINT FK_SPECIALISER1 FOREIGN KEY (NUM_PERSONNE) REFERENCES PERSONNE (NUM_PERSONNE) ); CREATE TABLE ENSEIGNANT ( NUM_PERSONNE NUMBER(4) NOT NULL, GRADE CHAR(32) NOT NULL, NOM CHAR(32) NOT NULL, DDN DATE NOT NULL, CONSTRAINT PK_ENSEIGNANT PRIMARY KEY (NUM_PERSONNE), CONSTRAINT FK_SPECIALISER2 FOREIGN KEY (NUM_PERSONNE) REFERENCES PERSONNE (NUM_PERSONNE) );
Michel Dubois
Michel Dubois
GNRALISATION
TIERS CREATE TABLE TIERS NUM_TIERS ( RAISON_SOCIALE NUM_TIERS CHAR(32) NOT NULL, ADRESSE RAISON_SOCIALE CHAR(32) NOT NULL, ADRESSE CHAR(32) NOT NULL, CONSTRAINT PK_TIERS PRIMARY KEY (NUM_TIERS) ); Generalisation Generalisation CREATE TABLE CLIENT FOURNISSEUR CLIENT ( NUM_TIERS NUM_TIERS NUM_TIERS CHAR(32) NOT NULL, SIRET_FOURNISSEUR SIRET_CLIENT SIRET_CLIENT CHAR(32) NOT NULL, DELAI_LIVRAISON DECOUVERT_AUTORISE DECOUVERT_AUTORISE NUMBER(4) , RAISON_SOCIALE ADRESSE_LIVRAISON ADRESSE_LIVRAISON CHAR(32) NOT NULL, ADRESSE RAISON_SOCIALE RAISON_SOCIALE CHAR(32) NOT NULL, ADRESSE ADRESSE CHAR(32) NOT NULL, CONSTRAINT PK_CLIENT PRIMARY KEY (SIRET_CLIENT), CONSTRAINT FK_GENERALISATION1 FOREIGN KEY (NUM_TIERS) REFERENCES TIERS (NUM_TIERS) ); CREATE TABLE FOURNISSEUR ( NUM_TIERS CHAR(32) NOT NULL, SIRET_FOURNISSEUR CHAR(32) NOT NULL, DELAI_LIVRAISON DATE NOT NULL, RAISON_SOCIALE CHAR(32) NOT NULL, ADRESSE CHAR(32) NOT NULL, CONSTRAINT PK_FOURNISSEUR PRIMARY KEY (SIRET_FOURNISSEUR), CONSTRAINT FK_GENERALISATION2 FOREIGN KEY (NUM_TIERS) REFERENCES TIERS (NUM_TIERS) );
Michel Dubois UML pour les bases de donnes- p. 365
Michel Dubois
PLAN Les options procdurales (cf. Annexe A) Le langage PL/SQL (cf. Annexe B) Exemples de gestion de certaines contraintes d intgrits.
Michel Dubois UML pour les bases de donnes- p. 367
EXCLUSION DE PARTICIPATION D UNE ENTIT PLUSIEURS RELATIONS Un article donn ne peut la fois tre achet un fournisseur et approvisionner auprs d une unit de production.
Acheter
1,n
0,n
0,n
Approvisionner
0,n
Michel Dubois
CONTRAINTE D'EXCLUSION
ACHETER FOURNISSEUR
DROP TRIGGER X_ACHETER_APPROVISIONNER; NUM_FOURNISSEUR NUM_FOURNISSEUR NUM_ARTICLE CREATE TRIGGER X_ACHETER_APPROVISIONNER BEFORE INSERT ON Acheter FOR EACH ROW ARTICLE NUM_ARTICLE DECLARE nb_article_approvisionner number; BEGIN SELECT COUNT(*) INTO nb_article_approvisionner UNITE APPROVISIONNER NUM_UNITE NUM_UNITE FROM Approvisionner NUM_ARTICLE WHERE Num_Article=:new.Num_Article; IF nb_article_approvisionner >0 THEN raise_application_error(-20002, 'C''est un article d''approvisionnement'); END IF; END; / DROP TRIGGER X_APPROVISIONNER_ACHETER; CREATE TRIGGER X_APPROVISIONNER_ACHETER BEFORE INSERT ON Approvisionner FOR EACH ROW DECLARE nb_article_acheter number; BEGIN SELECT COUNT(*) INTO nb_article_acheter FROM Acheter WHERE Num_Article=:new.Num_Article; IF nb_article_acheter >0 THEN raise_application_error(-20002, 'C''est un article acheter'); END IF; Michel Dubois UML pour les bases de donnes- p. 369 END; /
CONTRAINTES D'EXCLUSION DE RELATIONS SUR D'AUTRES RELATIONS Une personne ne peut tre locataire et propritaire d'un mme logement.
Louer
0,n
0,n
0,1
PERSONNE
Michel Dubois
0,n
Possder
UML pour les bases de donnes- p. 370
num personne
CONTRAINTE D'EXCLUSION
DROP TRIGGER X_LOUER_LOGEMENT; CREATE TRIGGER X_LOUER_LOGEMENT BEFORE INSERT OR UPDATE ON Louer FOR EACH ROW DECLARE possede_deja number; BEGIN SELECT COUNT(*) INTO possede_deja FROM Logement WHERE Num_Proprietaire=:new.Num_personne AND Num_Logement=:new.Num_Logement; IF possede_deja >0 THEN raise_application_error(-20002, 'C''est le propritaire du logement'); END IF; END; / LOUER LOGEMENT DROP TRIGGER X_LOGEMENT_LOUER; NUM_LOGEMENT NUM_LOGEMENT CREATE TRIGGER X_LOGEMENT_LOUER NUM_PROPRIETAIRE NUM_PERSONNE BEFORE UPDATE OR INSERT ON Logement FOR EACH ROW WHEN (new.Num_Proprietaire IS NOT NULL) DECLARE Possder deja_locataire number; PERSONNE BEGIN NUM_PERSONNE SELECT COUNT(*) INTO deja_locataire FROM Louer WHERE Num_Logement=:new.Num_Logement AND Num_Personne=:new.Num_Proprietaire; IF deja_locataire >0 THEN raise_application_error(-20002, 'C''est un locataire du logement'); END IF; END; / Michel Dubois UML pour les bases de donnes- p. 371
ARTICLE
1,n
Porter quantite
0,n
num article designation quantite stock UML pour les bases de donnes- p. 372 prix
Michel Dubois
Michel Dubois
Michel Dubois
Sam_Sales
Close Old Orders
OE Data
Orders
Note: Les paquetages livrs avec Oracle ont depuis longtemps la possibilit de sexcuter selon le modle invoker rights.
UML pour les bases de donnes- p. 379
User/Data schema
PROCEDURE mng_account IS BEGIN ... code.acct_mgr.destroy(...); END;
modify destroy
accounts table
Michel Dubois
Michel Dubois