173
         N        F        1       7 Cours Général CONCEPTION DE BASES DE DONNÉES I  Paternité - Pas d'Utilis ation Commerciale - Par tage des Conditi ons Initiales à l'Iden tique : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Version 10.01 Publié le 11 janvier 2010 STÉPHANE CROZAT

base de donnée

Embed Size (px)

Citation preview

NF17

CONCEPTION

DE BASES

DE DONNES

I

Version 10.01 Cours Gnral

STPHANE CROZAT

Paternit - Pas d'Utilisation Commerciale - Partage des Conditions Initiales l'Identique : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

Publi le 11 janvier 2010

TABLE DES MATIRES

Introduction I - Prsentation des bases de donnes

9 11

A. BD et SGBD : vue d'ensemble...............................................................................................................111. Qu'est ce qu'une BD ?..................................................................................................................................................11 2. Qu'est ce qu'un SGBD ?...............................................................................................................................................11 3. Pourquoi des SGBD ?..................................................................................................................................................12 4. Caractristiques des SGBD.........................................................................................................................................13

B. Notions gnrales pour les bases de donnes........................................................................................131. Notion de donnes........................................................................................................................................................14 2. Notion de modle de donnes......................................................................................................................................14 3. Notion de schma de donnes......................................................................................................................................15 4. Notion de langage de donnes.....................................................................................................................................16 5. Notion d'administration de donnes............................................................................................................................17

C. Les mthodes de conception de bases de donnes.................................................................................171. Mthodologie de conception d'une base de donnes...................................................................................................18 2. La mthode MERISE et le modle E-A........................................................................................................................19 3. Le langage de modlisation UML................................................................................................................................19 4. lments pour l'analyse de l'existant et des besoins....................................................................................................19 5. Le MCD........................................................................................................................................................................21 6. Le MLD........................................................................................................................................................................21

D. En rsum : Conception de bases de donnes.......................................................................................22

II - Le niveau conceptuel

: la modlisation des bases de donnes

23

A. Bases du diagramme de classes UML...................................................................................................231. Prsentation d'UML.....................................................................................................................................................23 2. Classes.........................................................................................................................................................................24 3. Attributs.......................................................................................................................................................................24 4. Mthodes......................................................................................................................................................................25 5. Associations.................................................................................................................................................................26 6. Cardinalit...................................................................................................................................................................27 7. Hritage.......................................................................................................................................................................27 8. Exemple : Des voitures et des conducteurs..................................................................................................................28

B. Diagramme de classes UML avanc......................................................................................................291. Explicitation des associations......................................................................................................................................29 2. Classe d'association.....................................................................................................................................................30 3. Associations ternaires..................................................................................................................................................31 4. Composition.................................................................................................................................................................31 5. Classes abstraites........................................................................................................................................................32 6. Contraintes...................................................................................................................................................................34 7. Contraintes sur les associations..................................................................................................................................35 8. Paquetages...................................................................................................................................................................36

C. Le modle E-A.......................................................................................................................................371. Le modle E-A en bref.................................................................................................................................................37

S. Crozat - UTC 2009

3

2. Entit............................................................................................................................................................................37 3. Association...................................................................................................................................................................39 4. Cardinalit d'une association......................................................................................................................................39 5. Modle E-A tendu.......................................................................................................................................................40 6. Entit de type faible.....................................................................................................................................................41 7. Illustration d'entits faibles.........................................................................................................................................41

D. En rsum : Schma conceptuel............................................................................................................42 E. Bibliographie commente sur la modlisation UML.............................................................................43

III - Le niveau logique

: la modlisation relationnelle

45

A. Description du modle relationnel.........................................................................................................451. Le niveau logique.........................................................................................................................................................45 2. Le modle relationnel..................................................................................................................................................46 3. Domaine.......................................................................................................................................................................46 4. Produit cartsien..........................................................................................................................................................46 5. Relation........................................................................................................................................................................47 6. Attribut et enregistrement............................................................................................................................................47 7. La relation Vol.............................................................................................................................................................48 8. Cl................................................................................................................................................................................48 9. Cl artificielle..............................................................................................................................................................49 10. Lien entre relations....................................................................................................................................................50 11. clatement des relations pour viter la redondance.................................................................................................50 12. Cl trangre.............................................................................................................................................................52 13. Schma relationnel....................................................................................................................................................52 14. Exemple de schma relationnel simple pour la gographie......................................................................................53

B. Le passage UML vers Relationnel.........................................................................................................541. Transformation des classes..........................................................................................................................................54 2. Transformation des associations.................................................................................................................................55 3. Remarques concernant la transformation des associations 1:1..................................................................................55 4. Transformation des attributs et mthodes...................................................................................................................56 5. Transformation des classes d'association....................................................................................................................56 6. Transformation des compositions................................................................................................................................57 7. Transformation de la relation d'hritage.....................................................................................................................57 8. Transformation de la relation d'hritage par rfrence..............................................................................................59 9. Transformation de la relation d'hritage par les classes filles....................................................................................59 10. Transformation de la relation d'hritage par la classe mre....................................................................................60 11. Exemple de transformation d'une relation d'hritage...............................................................................................61 12. Hritage et cl primaire.............................................................................................................................................63 13. Liste des contraintes..................................................................................................................................................63 14. Correspondance entre UML et relationnel................................................................................................................63

C. Le passage E-A vers Relationnel...........................................................................................................641. Transformation des entits...........................................................................................................................................64 2. Transformation des associations.................................................................................................................................64 3. Transformation de la relation d'hritage.....................................................................................................................65 4. Exemple de passage E-A vers relationnel....................................................................................................................65 5. Comparaison des modles E-A, UML et relationnel...................................................................................................66

D. Algbre relationnelle.............................................................................................................................671. Concepts manipulatoires.............................................................................................................................................67 2. Oprateurs ensemblistes..............................................................................................................................................68 3. Projection.....................................................................................................................................................................69 4. Restriction....................................................................................................................................................................69 5. Produit.........................................................................................................................................................................70 6. Jointure........................................................................................................................................................................70 7. Jointure naturelle.........................................................................................................................................................71 8. Jointure externe...........................................................................................................................................................71 9. Division........................................................................................................................................................................72 10. Proposition de notations............................................................................................................................................73 11. Exercice de synthse : Oprateurs de base et additionnels.......................................................................................73

4

S. Crozat - UTC 2009

E. En rsum : Schma relationnel.............................................................................................................74 F. Bibliographie commente sur le modle relationnel..............................................................................74

IV - Le langage SQL

75

A. Qu'appelle-t-on SQL?............................................................................................................................75 B. Le Langage de Dfinition de Donnes de SQL.....................................................................................761. Types de donnes.........................................................................................................................................................76 2. Cration de tables........................................................................................................................................................77 3. Contraintes d'intgrit.................................................................................................................................................78 4. Cration de vues..........................................................................................................................................................79 5. Suppression d'objets.....................................................................................................................................................80 6. Modification de tables.................................................................................................................................................80 7. Exemple de modifications de tables.............................................................................................................................81

C. Gestion avec le Langage de Manipulation de Donnes de SQL............................................................821. Insertion de donnes....................................................................................................................................................82 2. Mise jour de donnes................................................................................................................................................83 3. Suppression de donnes...............................................................................................................................................83

D. Questions avec le Langage de Manipulation de Donnes de SQL........................................................841. Slection.......................................................................................................................................................................84 2. Oprateurs de comparaisons et oprateurs logiques..................................................................................................85 3. Expression du produit cartsien..................................................................................................................................86 4. Expression d'une projection.........................................................................................................................................86 5. Expression d'une restriction........................................................................................................................................86 6. Expression d'une jointure............................................................................................................................................86 7. Oprateurs ensemblistes..............................................................................................................................................87 8. Tri.................................................................................................................................................................................88 9. Fonctions de calcul......................................................................................................................................................88 10. Agrgats.....................................................................................................................................................................89

E. Instructions avances pour le LMD de SQL..........................................................................................901. Requtes imbriques....................................................................................................................................................90 2. Sous-requte d'existence IN.........................................................................................................................................91 3. Sous-requte d'existence EXISTS.................................................................................................................................92 4. Sous-requte de comparaison ALL..............................................................................................................................92 5. Sous-requte de comparaison ANY..............................................................................................................................93 6. Raffinement de questions dans la clause FROM.........................................................................................................93

F. Le Langage de Contrle de Donnes de SQL........................................................................................941. Attribution de droits.....................................................................................................................................................94 2. Rvocation de droits....................................................................................................................................................95

G. En rsum : SQL....................................................................................................................................95 H. Bibliographie commente sur le SQL....................................................................................................96

V - La thorie de la normalisation relationnelle

97

A. Les dpendances fonctionnelles............................................................................................................971. Exercice introductif : Redondance..............................................................................................................................97 2. Les problmes soulevs par une mauvaise modlisation.............................................................................................98 3. Principes de la normalisation......................................................................................................................................99 4. Dpendance fonctionnelle............................................................................................................................................99 5. Les axiomes d'Armstrong...........................................................................................................................................100 6. Autres proprits dduites des axiomes d'Armstrong................................................................................................100 7. DF lmentaire..........................................................................................................................................................101 8. Notion de fermeture transitive des DFE....................................................................................................................101 9. Notion de couverture minimale des DFE...................................................................................................................101 10. Notion de graphe des DFE......................................................................................................................................102 11. Dfinition formelle d'une cl....................................................................................................................................102

B. Les formes normales............................................................................................................................1031. Principe de la dcomposition.....................................................................................................................................103 2. Formes normales.......................................................................................................................................................103

S. Crozat - UTC 2009

5

3. Premire forme normale............................................................................................................................................104 4. Deuxime forme normale...........................................................................................................................................104 5. Troisime forme normale...........................................................................................................................................105 6. Forme normale de Boyce-Codd.................................................................................................................................106

C. Bibliographie commente sur la normalisation...................................................................................107

VI - Le relationnel-objet

109

A. Introduction : R, OO, RO....................................................................................................................1091. Les atouts du modle relationnel...............................................................................................................................109 2. Les inconvnients du modle relationnel...................................................................................................................109 3. Les SGBDOO.............................................................................................................................................................110 4. Les SGBDRO.............................................................................................................................................................111

B. Le modle relationnel-objet.................................................................................................................1111. Les SGBDRO.............................................................................................................................................................111 2. Le modle imbriqu...................................................................................................................................................111 3. Les types utilisateurs..................................................................................................................................................112 4. Les collections............................................................................................................................................................113 5. Comparaison relationnel et relationnel-objet...........................................................................................................113 6. Tables d'objets...........................................................................................................................................................114 7. Hritage et rutilisation de types...............................................................................................................................114 8. Identification d'objets et rfrences...........................................................................................................................115

C. Le passage conceptuel vers relationnel-objet......................................................................................1161. Classe.........................................................................................................................................................................116 2. Attributs.....................................................................................................................................................................116 3. Association 1:N..........................................................................................................................................................117 4. Association N:M.........................................................................................................................................................117 5. Hritage.....................................................................................................................................................................117

D. SQL3 (implmentation Oracle 9i).......................................................................................................1171. Les nouveaux types de donnes.................................................................................................................................117 2. Les types de donnes abstraits...................................................................................................................................117 3. Mthodes et SELF......................................................................................................................................................118 4. Nested tables..............................................................................................................................................................119 5. Tables d'objets...........................................................................................................................................................119 6. Insertion d'objets........................................................................................................................................................120 7. Insertion de collections partir de requtes SELECT..............................................................................................120 8. Slection dans des objets...........................................................................................................................................121 9. Slection dans des tables imbriques.........................................................................................................................122 10. Manipulation d'OID.................................................................................................................................................123

E. Exemples RO.......................................................................................................................................1241. Exemple : Gestion de cours.......................................................................................................................................124 2. Exemple : Gestion de cours simplifie (version avec OID).......................................................................................127

F. En rsum : Le relationnel-objet..........................................................................................................129 G. Bibliographie commente sur le relationnel-objet...............................................................................129

VII - La gestion des transactions

131

A. Problmatique des pannes et de la concurrence..................................................................................131 B. Transactions.........................................................................................................................................1321. Notion de transaction.................................................................................................................................................132 2. Droulement d'une transaction..................................................................................................................................132 3. Proprits ACID d'une transaction...........................................................................................................................132 4. Transactions en SQL..................................................................................................................................................133 5. Exemple de transaction sous Oracle..........................................................................................................................133 6. Exemple de transaction sous Access..........................................................................................................................134 7. Journal des transactions............................................................................................................................................134

C. Fiabilit et transactions........................................................................................................................1351. Les pannes..................................................................................................................................................................135 2. Point de contrle........................................................................................................................................................135

6

S. Crozat - UTC 2009

3. Reprise aprs panne...................................................................................................................................................136 4. Algorithme de reprise UNDO-REDO........................................................................................................................137 5. Ecriture en avant du journal......................................................................................................................................138

D. Concurrence et transactions.................................................................................................................1391. Trois problmes soulevs par la concurrence...........................................................................................................139 2. Le verrouillage...........................................................................................................................................................141 3. Le dverrouillage.......................................................................................................................................................142 4. Protocole d'accs aux donnes..................................................................................................................................142 5. Solution aux trois problmes soulevs par la concurrence.......................................................................................143 6. Inter-blocage..............................................................................................................................................................144

E. En rsum : Les transactions................................................................................................................145 F. Bibliographie commente sur les transactions.....................................................................................145

VIII - L'optimisation du schma interne

147

A. Introduction l'optimisation des BD...................................................................................................1471. Schma interne et performances des applications.....................................................................................................147 2. valuation des besoins de performance....................................................................................................................148 3. Indexation..................................................................................................................................................................149 4. Dnormalisation........................................................................................................................................................149 5. Groupement de tables................................................................................................................................................150 6. Partitionnement de table............................................................................................................................................151 7. Vues concrtes...........................................................................................................................................................151

B. En rsum : L'optimisation..................................................................................................................152 C. Bibliographie commente sur l'optimisation.......................................................................................152

IX - Ouvrage de rfrence conseill Questions de synthse Solution des exercices de TD Glossaire Signification des abrviations Bibliographie Index

153 155 173 175 177 179 181

S. Crozat - UTC 2009

7

INTRODUCTION

Les BD sont nes vers la fin des annes 1960 pour combler les limites des systmes de fichiers. Les BD relationnelles, issues de la recherche de Codd, sont celles qui ont connu le plus grand essor depuis plus de 20 ans, et qui reste encore aujourd'hui les plus utilises. Le langage SQL est une couche technologique, idalement indpendante des implmentations des SGBDR, qui permet de crer et manipuler des BD relationnelles. Les usages de BD se sont aujourd'hui gnraliss pour entrer dans tous les secteurs de l'entreprise, depuis les "petites" BD utilises par quelques personnes dans un service pour des besoins de gestion de donnes locales, jusqu'aux "grosses" BD qui grent de faon centralise des donnes partages par tous les acteurs de l'entreprise. Paralllement l'accroissement de l'utilisation du numrique comme outil de manipulation de toutes donnes (bureautique, informatique applicative, etc.) et comme outil d'extension des moyens de communication (rseaux) d'une part et les volutions technologiques (puissance des PC, Internet, etc.) d'autre part ont la fois rendu indispensable et complexifi la problmatique des BD. Les consquences de cette gnralisation et de cette diversification des usages se retrouvent dans l'mergence de solutions conceptuelles et technologiques nouvelles et sans cesse renouveles.

S. Crozat - UTC 2009

9

I -

PRSENTATION DES BASES DEBD et SGBD : vue d'ensemble Notions gnrales pour les bases de donnes Les mthodes de conception de bases de donnes En rsum : Conception de bases de donnes

DONNES

I11 14 19 24

Les BD ont t cres pour faciliter la gestion qualitative et quantitative des donnes informatiques. Les SGBD sont des applications informatiques permettant de crer et de grer des BD (comme Oracle ou MySQL par exemple). Les BD relationnelles sont les plus rpandues et l'on utilise des SGBDR pour les implmenter. Le langage SQL est le langage commun tous les SGBDR, ce qui permet de concevoir des BD relativement indpendamment des systmes utiliss.

A. BD et SGBD : vue d'ensembleObjectifsComprendre l'intrt des BD. Comprendre ce qu'est un SGBD.

1. Qu'est ce qu'une BD ?Dfinition : Base de donnesUne BD est un ensemble volumineux, structur et minimalement redondant de donnes, relies entre elles, stockes sur supports numriques centraliss ou distribus, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables par un ou plusieurs utilisateurs travaillant potentiellement en parallle.

Exemple : Compagnie arienneUne BD de gestion de l'activit d'une compagnie arienne concernant les voyageurs, les vols, les avions, le personnel, les rservations, etc. Une telle BD pourrait permettre la gestion des rservations, des disponibilits des avions en fonction des vols effectuer, des affectation des personnels volants, etc.

2. Qu'est ce qu'un SGBD ?Dfinition : Systme de Gestion de Bases de DonnesUn SGBD est un logiciel qui prend en charge la structuration, le stockage, la mise jour et laS. Crozat - UTC 2009

11

Prsentation des bases de donnes

maintenance d'une base de donnes. Il est l'unique interface entre les informaticiens et les donnes (dfinition des schmas, programmation des applications), ainsi qu'entre les utilisateurs et les donnes (consultation et mise jour).

Exemple : Exemples de SGBD

Oracle est un SGBD relationnel (et Relationnel-Objet dans ses dernires versions) trs reconnu pour les applications professionnelles. MySQL est un SGBD relationnel libre (licence GPL et commerciale), simple d'accs et trs utilis pour la ralisation de sites Web dynamiques. Depuis la version 4 MySQL implmente la plupart des fonctions attendues d'un SGBD relationnel. PosgreSQL est un SGBD relationnel et relationnel-objet trs puissant qui offre une alternative open-source aux solutions commerciales comme Oracle ou IBM. Access est un SGBD relationnel Microsoft, qui offre une interface conviviale permettant de concevoir rapidement des applications de petite envergure ou de raliser des prototypes moindre frais.

3. Pourquoi des SGBD ?a) Jadis...Avant l'avnement des SGBD, chaque application informatique dans l'entreprise impliquait sa propre quipe de dveloppement, ses propres supports physiques, ses propres fichiers, ses propres normes, ses propres langages, etc.

b) Consquences...L'existence conjointe et croissante de ces applications indpendantes a des effets ngatifs, tels que : La multiplication des tches de saisie, de dveloppement et de support informatique La redondance anarchique des informations dans les fichiers L'incohrence des versions simultanes de fichiers La non-portabilit des traitements en raison des diffrences dans les formats et langages. La multiplication des cots de dveloppement et de maintenance des applications.

c) Problmes...Les consquences prcdemment cites se rpercutent sur l'entreprise en gnrant des problmes humains et matriels. Cots en personnels qualifis et en formations Remise des pouvoirs de dcision entre les mains de spcialistes informatiques Tout changement matriel ou logiciel a un impact sur les applications Tout changement de la structure des donnes ncessite de modifier les programmes

d) Or...En ralit les applications ne sont jamais totalement disjointes, des donnes similaires (le coeur de l'information d'entreprise) sont toujours la base des traitements. On peut citer typiquement : Les donnes comptables Les donnes clients et fournisseurs Les donnes relatives la gestion des stocks Les donnes relatives aux livraisons Les donnes marketting et commercialesS. Crozat - UTC 2009

12

Prsentation des bases de donnes

Les donnes relatives au personnel etc.

4. Caractristiques des SGBDLa conception d'un systme d'information pour tre rationnelle l'chelle d'une entreprise se doit d'adopter un certain nombre de principes, tels que : Une description des donnes indpendante des traitements Une maintenance de la cohrence de donnes Le recours des langages non procduraux, interactifs et structurants Dans ce cadre les SGBD se fixent les objectifs suivants : Indpendance physique des donnes Le changement des modalits de stockage de l'information (optimisation, rorganisation, segmentation, etc.) n'implique pas de changements des programmes. Indpendance logique des donnes L'volution de la structure d'une partie des donnes n'influe pas sur l'ensemble des donnes. Manipulation des donnes par des non-informaticiens L'utilisateur n'a pas savoir comment l'information est stocke et calcule par la machine, mais juste pouvoir la rechercher et la mettre jour travers des IHM ou des langages assertionnels simples. Administration facilite des donnes Le SGBD fournit un ensemble d'outils (dictionnaire de donnes, audit, tuning, statistiques, etc.) pour amliorer les performance et optimiser les stockages. Optimisation de l'accs aux donnes Les temps de rponse et de dbits globaux sont optimiss en fonctions des questions poses la BD. Contrle de cohrence (intgrit smantique) des donnes Le SGBD doit assurer tout instant que les donnes respectent les rgles d'intgrit qui leurs sont imposes. Partageabilit des donnes Les donnes sont simultanment consultables et modifiables. Scurit des donnes La confidentialit des donnes est assure par des systmes d'authentification, de droits d'accs, de cryptage des mots de passe, etc. Sret des donnes La persistance des donnes, mme en cas de panne, est assure, grce typiquement des sauvegardes et des journaux qui gardent une trace persistante des oprations effectues.

B. Notions gnrales pour les bases de donnesObjectifsConnatre les diffrences entre modle conceptuel, modle logique et implmentation physique. Comprendre l'importance de la modlisation conceptuelle.

S. Crozat - UTC 2009

13

Prsentation des bases de donnes

1. Notion de donnesDfinition : DonnesElment effectif, rel, correspondant une type de donnes. Synonymes : Occurence, Instance

Exemple : Donnes

L'entier 486 Le vhicule (460HP59, Renault, Megane, Jaune)

Dfinition : Type de donnesEnsemble d'objets qui possdent des caractristiques similaires et manipulables par des oprations identiques. Synonymes : Classe

Exemple : Type de donnes

Entier = { 0, 1, 2, ... , N } Vhicule = (immatriculation, marque, type, couleur)

2. Notion de modle de donnesDfinition : Modle de donnesEnsemble de concepts et de rgles de composition de ces concepts permettant de dcrire des donnes (cf. Bases de donnes : objet et relationnel [Gardarin99]). Un modle est souvent reprsent au moyen d'un formalisme graphique permettant de dcrire les donnes (ou plus prcisment les types de donnes) et les relations entre les donnes. On distingue trois niveaux de modlisation pour les bases de donnes : Le modle conceptuel Il permet de dcrire le rel selon une approche ontologique, sans prendre en compte les contraintes techniques. Le modle logique Il permet de dcrire une solution, en prenant une orientation informatique gnrale (type de SGBD typiquement), mais indpendamment de choix d'implmentation prcis. Le modle physique Il correspond aux choix techniques, en terme de SGBD choisi et de sa mise en uvre (programmation, optimisation, etc.).

Exemple : Exemple de formalisme de modlisation conceptuelle

Le modle Entit-Association (cf. The entity-Relationsheep Model - Towards a Unified View of Data [Chen76]) a t le plus rpendu dans le cadre de la conception de bases de donnes. Le modle UML, qui se gnralise pour la conception en informatique, se fonde sur une approche objet.

Exemple : Exemple de formalisme de modlisation logique

Le modle relationnel est le modle dominant. Le modle relationnel-objet (adaptation des modles relationnel et objet au cadre des SGBD) est actuellement en pleine croissance. Le modle objet "pur" reste majoritairement au stade exprimental et de la recherche.

14

S. Crozat - UTC 2009

Prsentation des bases de donnes

Des modles plus anciens (hirarchique, rseau, etc.) ne sont plus gure utiliss aujourd'hui.

3. Notion de schma de donnesDfinition : Schma de donnesDescription, au moyen d'un langage formel, d'un ensemble de donnes dans le contexte d'une BD. Un schma permet de dcrire la structure d'une base de donnes, en dcrivant l'ensemble des types de donnes de la base. L'occurence d'une base de donnes est constitue de l'ensemble des donnes correspondant aux types du schma de la base.

Exemple : Schma de base de donnesEtudiant (NumEtud, nom, ville) Module(NumMod, titre) Inscription(NumEtud, NumMod, date)

Exemple : Instance de base de donnesEtudiant (172, 'Dupont', 'Lille') Etudiant (173, 'Durand', 'Paris') Etudiant (174, 'Martin', 'Orlans') Module(1, 'SGBD') Module(1, 'Systmes d'exploitation') Inscription(172, 1, 2002) Inscription(172, 2, 2002) Inscription(173, 1, 2001) Inscription(174, 2, 2002) On distingue trois niveaux d'abstraction de schmas : Le niveau conceptuel Il permet de dcrire les entits et les associations du monde rel. Il s'agit du schma global de la base de donnes, il en propose une vue canonique. Le niveau conceptuel correspond au modle conceptuel. Le niveau externe Il permet de dcrire les entits et les associations du monde rel, mais vues d'un utilisateur ou d'un groupe d'utilisateurs particuliers (on parle d'ailleurs galement de "vue" pour un shma externe). Il s'agit d'une restriction du schma conceptuel oriente vers un usage prcis. Il existe gnralement plusieurs schmas externes pour un mme schma conceptuel. Le niveau externe correspond un sous ensemble du modle conceptuel restreint aux points de vue de certains utilisateurs. Le niveau interne Il correspond l'implmentation physique des entits et associations dans les fichiers de la base. Le niveau interne correspond aux modles logiques et physiques.

Remarque : ANSI/X3/SPARCLes trois niveaux, conceptuel, externe et interne, sont les trois niveaux distingus par le groupe de normalisation ANSI/X3/SPARC en 1975.

S. Crozat - UTC 2009

15

Prsentation des bases de donnes

Les trois niveaux de schma selon ANSI/X3/SPARC

4. Notion de langage de donnesDfinition : Langage de donnesLangage informatique permettant de dcrire et de manipuler les schmas d'une BD d'une une manire assimilable par la machine. Synonymes : Langage orient donnes

Exemple : SQLSQL est le langage orient donnes consacr aux SGBD relationnels et relationnels-objet. Un langage de donnes peut tre dcompos en trois sous langages : Le Langage de Dfinition de Donnes Le LDD permet d'implmenter le schma conceptuel (notion de table en SQL) et les schmas externes (notion de vue en SQL). Le Langage de Contrle de Donnes Le LCD permet d'implmenter les droits que les utilisateurs ont sur les donnes et participe donc la dfinition des schmas externes. Le Langage de Manipulation de Donnes Le LMD permet l'interrogation et la mise jour des donnes. C'est la partie du langageS. Crozat - UTC 2009

16

Prsentation des bases de donnes

indispensable pour exploiter la BD et raliser les applications.

Exemple : Dfinition de donnes en SQLCREATE TABLE Etudiant ( NumEtu : integer, Nom : string, Ville : string) Cette instruction permet de crer une relation "Etudiant" comportant les proprits "NumEtu", "Nom" et "Ville".

Exemple : Contrle de donnes en SQLGRANT ALL PRIVILEGES ON Etudiant FOR 'Utilisateur' Cette instruction permet de donner tous les droits l'utilisateur "Utilisateur" sur la relation "Etudiant".

Exemple : Manipulation de donnes en SQLSELECT Nom FROM Etudiant WHERE Ville = 'Compigne' Cette instruction permet de rechercher les noms de tous les tudiants habitant la ville de Compigne.

5. Notion d'administration de donnesDfinition : AdministrateurPersonne ou groupe de personnes responsables de la dfinition des diffrents niveaux de schma. On distingue un type d'administrateur par niveau de schma : L'administrateur entreprise est en charge de la gestion du schma conceptuel et des rgles de contrle des donnes. L'administrateur de donnes est en charge de la gestion des schmas externes et de leur correspondance avec le schma conceptuel. L'administrateur base de donnes est en charge de la gestion du schma interne et de sa correspondance avec le schma conceptuel.

Dfinition : Dictionnaire des donnesLe dictionnaire de donnes d'un SGBD contient les informations relatives aux schmas et aux droits de toutes les bases de donnes existantes au sein de ce SGBD. Il s'agit d'un outil fondamental pour les administrateurs. Les dictionnaires de donnes sont gnralement implments sous la forme d'une base de donnes particulire du SGBD, ce qui permet de grer les donnes relatives aux bases de donnes de la mme faon que les autres donnes de l'entreprise (i.e. dans une base de donnes). Synonymes : Catalogue des donnes, Mtabase

C. Les mthodes de conception de bases de donnesObjectifsConnatre la mthodologie de conception d'une BD.

S. Crozat - UTC 2009

17

Prsentation des bases de donnes

1. Mthodologie de conception d'une base de donnesMthode : tapes de la conception d'une base de donnes1. Analyse de la situation existante et des besoins 2. Cration d'une srie de modles conceptuels (canonique et vues externes) qui permettent de reprsenter tous les aspects importants du problme 3. Traduction des modles conceptuels en modle logique et optimisation (normalisation) de ce modle logique 4. Implmentation d'une base de donnes dans un SGBD, partir du modle logique

Processus de conception d'une base de donnes

Conseil : L'importance de l'tape d'analyseLa premire tape de la conception repose sur l'analyse de l'existant et des besoins. De la qualit de la ralisation de cette premire tape dpendra ensuite la pertinence de la base de donnes par rapports aux usages. Cette premire tape est donc essentielle et doit tre mene avec soins. Si la premire tape est fondamentale dans le processus de conception, elle est aussi la plus dlicate. En effet, tandis que des formalismes puissants existent pour la modlisation conceptuelle puis pour la modlisation logique, la perception de l'existant et des besoins reste une tape qui repose essentiellement sur l'expertise d'analyse de l'ingnieur.

Conseil : L'importance de l'tape de modlisation conceptuelleEtant donne une analyse des besoins correctement ralise, la seconde tape consiste la traduire selon un modle conceptuel. Le modle conceptuel tant formel, il va permettre de passer d'une spcification en langage naturel, et donc soumise interprtation, une spcification non ambige. Le recours aux formalismes de modlisation tels que E-A ou UML est donc une aide fondamentale pour parvenir une reprsentation qui ne sera plus lie l'interprtation du lecteur. La traduction d'un cahier des charges spcifiant l'existant et les besoins en modle conceptuel reste nanmoins une tape dlicate, qui va conditionner ensuite l'ensemble de l'implmentation informatique. En effet les tape suivantes sont plus mcaniques, dans la mesure o un modle logique est dduit de faon systmatique du modle conceptuel et que l'implmentation logicielle est galement ralise par traduction directe du modle logique.

Remarque : Les tapes de traduction logique et d'implmentationDes logiciels spcialiss (Sybase PowerDesigner [w_sybase] pour la modlisation E-A ou Objecteering software [w_objecteering] pour la modlisation UML) sont capables partir d'un modleS. Crozat - UTC 2009

18

Prsentation des bases de donnes

conceptuel d'appliquer des algorithmes de traduction qui permettent d'obtenir directement le modle logique, puis les instructions pour la cration de la base de donnes dans un langage orient donnes tel que SQL. L'existence de tels algorithmes de traduction montre que les tapes de traduction logique et d'implmentation sont moins complexes que les prcdentes, car plus systmatiques. Nanmoins ces tapes exigent tout de mme des comptences techniques pour optimiser les modles logiques (normalisation), puis les implmentations en fonction d'un contexte de mise en oeuvre matriel, logiciel et humain.

2. La mthode MERISE et le modle E-AMERISE est une mthode d'analyse informatique particulirement adapte la conception de bases de donnes.

L'analyse selon MERISE La mthode MERISE a pour fondement le modle E-A, qui a fait son succs. Les principales caractristiques du modle E-A sont : Une reprsentation graphique simple et naturelle Une puissance d'expression leve pour un nombre de symboles raisonnables Une lecture accessible tous et donc un bon outil de dialogue entre les acteurs techniques et non techniques Une formalisation non ambige et donc un bon outil de spcification dtaille

3. Le langage de modlisation UMLUML est un autre langage de modlisation, plus rcent et couvrant un spectre plus large que les bases de donnes. En tant que standard de l'OMG et en tant que outil trs utilis pour la programmation oriente objet, il est amen supplanter petit petit la modlisation E-A.

4. lments pour l'analyse de l'existant et des besoins

S. Crozat - UTC 2009

19

Prsentation des bases de donnes

La phase d'analyse de l'existant et des besoins est une phase essentielle et complexe. Elle doit aboutir des spcifications gnrales qui dcrivent en langage naturel les donnes manipules, et les traitements effectuer sur ces donnes. On se propose de donner une liste non exhaustive d'actions mener pour rdiger de telles spcifications.

Mthode : L'analyse de documents existantsLa conception d'une base de donnes s'inscrit gnralement au sein d'usages existants. Ces usages sont gnralement, au moins en partie, instruments travers des documents lectroniques ou non (papier typiquement). Il est fondamental d'analyser ces documents et de recenser les donnes qu'ils manipulent.

Exemple : Exemples de document existants

Fichiers papiers de stockage des donnes (personnel, produits, etc.) Formulaires papiers d'enregistrement des donnes (fiche d'identification d'un salari, fiche de description d'un produit, bon de commande, etc.) Documents lectroniques de type traitement de texte (lettres, mailing, procdures, etc.) Documents lectroniques de type tableurs (bilans, statistiques, calculs, etc.) Bases de donnes existantes, remplacer ou avec lesquelles s'accorder (gestion des salaires, de la production, etc.) Intranet d'entreprise (information, tlchargement de documents, etc.) etc.

Mthode : Le recueil d'expertise mtierLes donnes que la base va devoir manipuler sont toujours relatives aux mtiers de l'entreprise, et il existe des experts qui pratiquent ces mtiers. Le dialogue avec ces experts est une source importante d'informations. Il permet galement de fixer la terminologie du domaine.

Exemple : Exemples d'experts consulter

Praticiens (secrtaires, ouvrier, contrleurs, etc.) Cadres (responsables de service, contre-matres, etc.) Experts externes (clients, fournisseurs, etc.) etc.

Mthode : Le dialogue avec les usagersLa base de donnes concerne des utilisateurs cibles, c'est dire ceux qui produiront et consommeront effectivement les donnes de la base. Il est ncessaire de dialoguer avec ces utilisateurs, qui sont les dtenteurs des connaissances relatives aux besoins rels, lis leur ralit actuelle (aspects de l'organisation fonctionnant correctement ou dfaillants) et la ralit souhaite (volutions, lacunes, etc.).

Exemple : Exemples d'utilisateurs

Personnes qui vont effectuer les saisies d'information ( partir de quelles sources ? Quelle est leur responsabilit ? etc.) Personnes qui vont consulter les informations saisies (pour quel usage ? pour quel destinataire ? etc.) Personnes qui vont mettre jour les informations (pour quelles raisons ? comment le processus est enclench ? etc.) etc.

Mthode : L'tude des autres systmes informatiques existantsla base de donnes va gnralement (et en fait quasi systmatiquement aujourd'hui) s'insrer parmi un ensemble d'autres logiciels informatiques travaillant sur les donnes de l'entreprise. Il est important

20

S. Crozat - UTC 2009

Prsentation des bases de donnes

d'analyser ces systmes, afin de mieux comprendre les mcanismes existants, leurs forces et leurs lacunes, et de prparer l'intgration de la base avec ces autres systmes. Une partie de ces systmes seront d'ailleurs souvent galement des utilisateurs de la base de donnes, tandis que la base de donnes sera elle mme utilisatrice d'autre systmes.

Exemple : Exemples d'autres systmes coexistants

Autres bases de donnes (les donnes sont elle disjointes ou partiellement communes avec celles de la base concevoir ? quelles sont les technologies logicielles sur lesquelles reposent ces BD ? etc.) Systmes de fichiers classiques (certains fichiers ont-ils vocations tre supplants par la base ? tre gnrs par la base ? alimenter la base ? etc.) Applications (ces applications ont elles besoins de donnes de la base ? peuvent-elles lui en fournir ? etc.) etc.

5. Le MCDDfinition : MCDLe MCD est l'lment le plus connu de MERISE et certainement le plus utile. Il permet d'tablir une reprsentation claire des donnes du SI et dfinit les dpendances des donnes entre elles.

ExempleLe modle E-A est un formalisme de MCD, le diagramme de classe UML en est un autre.

RemarqueUn MCD est indpendant de l'tat de l'art technologique. A ce titre il peut donc tre mis en oeuvre dans n'importe quel environnement logiciel et matriel, et il devra tre traduit pour mener une implmentation effective.

6. Le MLDIntroductionOn ne sait pas implmenter directement un modle conceptuel de donnes dans une machine et il existe diffrentes sortes de SGBD qui ont chacun leur propre modle : SGF (qui ne sont pas vraiment des SGBD), SGBD hirarchiques (organiss selon une arborescence), SGBD rseau (encore appels CODASYL), SGBDR, SGBDOO, SGBDRO, etc.

Dfinition : MLDUn MLD est une reprsentation du systme tel qu'il sera implment dans un ordinateur.

ExempleLe modle relationnel est un formalisme de MLD.

RemarqueIl ne faut pas confondre le MLD (relationnel par exemple) avec le MCD (E-A par exemple). Il ne faut pas confondre le MLD avec son implmentation logicielle en machine (avec Oracle par exemple)

S. Crozat - UTC 2009

21

Prsentation des bases de donnes

D. En rsum : Conception de bases de donnesConception

Modle Conceptuel Schma conceptuel canonique et schmas externes Exemples E-A UML Modle Logique Schma interne indpendant d'un SGBD Exemples Relationnel Objet Relationnel-Objet Rseau Hirarchique Modle Physique Schma interne pour un SGBD particulier Exemples Oracle MySQL PostgreSQL DB2 Access SQLServer

* * *

Les SGBD assurent la gestion efficace et structure des donnes partages. Leur conception repose sur une approche trois niveaux : conceptuel et externe, logique, physique.

22

S. Crozat - UTC 2009

II -

LE NIVEAU CONCEPTUEL : LABases du diagramme de classes UML Diagramme de classes UML avanc Le modle E-A En rsum : Schma conceptuel Bibliographie commente sur la modlisation UML

MODLISATION DES BASES DE DONNES

II27 36 46 52 52

La modlisation est l'tape fondatrice du processus de conception de BD. Elle consiste abstraire le problme rel pos pour en faire une reformulation qui trouvera une solution dans le cadre technologique d'un SGBD. Aprs avoir rappel succinctement les fondements et objectifs des SGBD, ce chapitre proposera les outils mthodologiques ncessaires la modlisation, travers les formalismes E-A et UML.

A. Bases du diagramme de classes UMLObjectifsSavoir-faire un modle conceptuel. Savoir interprter un modle conceptuel.

Si le modle dominant en conception de bases de donnes a longtemps t le modle E-A, le modle UML se gnralise de plus en plus. Nous ne donnons ici qu'une introduction au diagramme de classes (parmi l'ensemble des outils d'UML), limit aux aspects particulirement utiliss en modlisation de bases de donnes.

1. Prsentation d'UMLUML est un langage de reprsentation destin en particulier la modlisation objet. UML est devenu une norme OMG en 1997. UML propose un formalisme qui impose de "penser objet" et permet de rester indpendant d'un langage de programmation donn. Pour ce faire, UML normalise les concepts de l'objet (numration et dfinition exhaustive des concepts) ainsi que leur notation graphique. Il peut donc tre utilis comme un moyen de communication entre les tapes de spcification conceptuelle et les tapes de spcifications techniques. Dans le domaine des bases de donnes, UML peut tre utilis la place du modle E-A pour modliser le domaine. De la mme faon, un schma conceptuel UML peut alors tre traduit en schma logique

S. Crozat - UTC 2009

23

Le niveau conceptuel : la modlisation des bases de donnes

(relationnel ou relationnel-objet typiquement).

2. ClassesDfinition : ClasseUne classe est un type abstrait caractris par des proprits (attributs et mthodes) communes un ensemble d'objets et permettant de crer des instances de ces objets, ayant ces proprits.

Syntaxe

Reprsentation UML d'une classe

Exemple : La classe Voiture

Exemple de classe reprsente en UML

Exemple : Une instance de la classe VoitureL'objet V1 est une instance de la classe Voiture. V1 : Voiture Marque : 'Citron' Type : 'ZX' Portes : 5 Puissance : 6 Kilomtrage : 300000

Remarque : ClLe reprage des cls n'est pas systmatique en UML (la dfinition des cls se fera alors au niveau logique). On conseillera nanmoins de les reprsenter (en les soulignant dans le dessin). On vitera par contre d'ajouter des cls artificielles lorsqu'aucune cl n'est vidente.

RemarqueLa modlisation sous forme de diagramme de classes est une modlisation statique, qui met en exergue la structure d'un modle, mais ne rend pas compte de son volution temporelle. UML propose d'autres types de diagrammes pour traiter, notamment, de ces aspects.

3. AttributsS. Crozat - UTC 2009

24

Le niveau conceptuel : la modlisation des bases de donnes

Dfinition : AttributUn attribut est une information lmentaire qui caractrise une classe et dont la valeur dpend de l'objet instanci.

Remarque

Un attribut est typ : Le domaine des valeurs que peut prendre l'attribut est fix a priori. Un attribut peut tre multivalu : Il peut prendre plusieurs valeurs distinctes dans son domaine. Un attribut peut tre driv : Sa valeur alors est une fonction sur d'autres attributs de la classe (il peut donc aussi tre reprsent comme une mthode, et c'est en gnral prfrable). Un attribut peut tre compos : Il joue alors le rle d'un groupe d'attributs (par exemple une adresse peut tre un attribut compos des attributs numro, type de voie, nom de la voie). Cette notion renvoie la notion de variable de type Record dans les langages de programmation classiques.

Syntaxeattribut:type attribut_multivalu[nbMinValeurs..nbMaxValeurs]:type /attribut_driv:type attribut_compos - sous-attribut1:type - sous-attribut2:type - ...

Exemple : La classe Personne

Reprsentation d'attributs en UML Dans cet exemple, les attributs Nom, Prnom sont de type string, l'un de 20 caractres et l'autre de 10, tandis que DateNaissance est de type date et Age de type integer. Prnom est un attribut multivalu, ici une personne peut avoir de 1 3 prnoms. Age est un attribut driv, il peut tre calcul par une fonction sur DateNaissance.

4. MthodesDfinition : MthodeUne mthode (ou opration) est une fonction associe une classe d'objet qui permet d'agir sur les objets de la classe ou qui permet ces objets de renvoyer des valeurs (calcules en fonction de paramtres).

S. Crozat - UTC 2009

25

Le niveau conceptuel : la modlisation des bases de donnes

Syntaxemethode(paramtres):type

Remarque : Mthodes et modlisation de BDPour la modlisation des bases de donnes, les mthodes sont surtout utilises pour reprsenter des donnes calcules ( l'instar des attributs drives) ou pour mettre en exergue des fonctions importantes du systme cible. Seules les mthodes les plus importantes sont reprsentes, l'approche est moins systmatique qu'en modlisation objet par exemple.

Remarque : Mthodes, relationnel, relationnel-objetLors de la transformation du modle conceptuel UML en modle logique relationnel, les mthodes ne seront pas implmentes. Leur reprage au niveau conceptuel sert donc surtout d'aide-mmoire pour l'implmentation au niveau applicatif. Au contraire, un modle logique relationnel-objet permettra l'implmentation de mthodes associes des tables. Leur reprage au niveau conceptuel est donc encore plus important.

5. AssociationsDfinition : AssociationUne association est une relation logique entre deux classes (association binaire) ou plus (association naire) qui dfinit un ensemble de liens entre les objets de ces classes. Une association est nomme, gnralement par un verbe. Une association peut avoir des proprits ( l'instar d'une classe). Une association dfinit le nombre minimum et maximum d'instances autorise dans la relation (on parle de cardinalit).

Syntaxe

Notation de l'association en UML

RemarqueUne association est gnralement bidirectionnelle (c'est dire qu'elle peut se lire dans les deux sens). Les associations qui ne respectent pas cette proprit sont dites unidirectionnelles ou navigation restreinte.

Exemple : L'association Conduit

Reprsentation d'association en UML L'association Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des voitures.

26

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

6. CardinalitDfinition : Cardinalit d'une associationLa cardinalit d'une association permet de reprsenter le nombre minimum et maximum d'instances qui sont autorises participer la relation. La cardinalit est dfinie pour les deux sens de la relation.

SyntaxeSi mina (resp. maxa) est le nombre minimum (resp. maximum) d'instances de la classe A autorises participer l'association, on note sur la relation, ct de la classe A : mina..maxa. Si le nombre maximum est indtermin, on note n ou *.

AttentionLa notation de la cardinalit en UML est oppose celle adopt en E-A. En UML on note gauche (resp. droite) le nombre d'instances de la classe de gauche (resp. de droite) autorises dans l'association. En EA, on note gauche (resp. droite) le nombre d'instances de la classe de droite (resp. de gauche) autorises dans l'association.

RemarqueLes cardinalit les plus courantes sont : 0..1 (optionnel) 1..1 ou 1 (un) 0..n ou 0..* ou * (plusieurs) 1..n ou 1..* (obligatoire)

Exemple : La cardinalit de l'association Possde

Reprsentation de cardinalit en UML Ici un conducteur peut possder plusieurs voitures (y compris aucune) et une voiture n'est possde que par un seul conducteur.

7. HritageDfinition : HritageL'hritage est l'association entre deux classes permettant d'exprimer que l'une est plus gnrale que l'autre. L'hritage implique une transmission automatique des proprits (attributs et mthodes) d'une classe A une classe A'. Dire que A' hrite de A quivaut dire que A' est une sous-classe de A. On peut galement dire que A est une gnralisation de A' et que A' est une spcialisation de A.

Syntaxe

S. Crozat - UTC 2009

27

Le niveau conceptuel : la modlisation des bases de donnes

Notation de l'hritage en UML

RemarqueL'hritage permet de reprsenter la relation "est-un" entre deux objets.

RemarqueOutre qu'il permet de reprsenter une relation courante dans le monde rel, l'hritage a un avantage pratique, celui de factoriser la dfinition de proprits identiques pour des classes proches.

Exemple : La classe Conducteur

Reprsentation d'hritage en UML Dans cet exemple la classe Conducteur hrite de la classe Personne, ce qui signifie qu'un objet de la classe conducteur aura les attributs de la classe Conducteur (TypePermis et DatePermis) mais aussi ceux de la classe Personne (Nom, Prnom, DateNaissance et Age). Si la classe Personne avait des mthodes, la classe Conducteur en hriterait de la mme faon.

8. Exemple : Des voitures et des conducteursExemple

28

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

Exemple trs simple de diagramme de classes Les relations de ce diagramme expriment que les conducteurs sont des personnes qui ont un permis ; que toute voiture est possde par une unique personne (qui peut en possder plusieurs) ; que les voitures peuvent tre conduites par des conducteurs et que les conducteurs peuvent conduire plusieurs voitures.

RemarqueLes mots cls in, out et in/out devant un paramtre de mthode permettent de spcifier si le paramtre est une donne d'entre, de sortie, ou bien les deux.

RemarqueLe but d'une modlisation UML n'est pas de reprsenter la ralit dans l'absolu, mais plutt de proposer une vision d'une situation rduite aux lments ncessaires pour rpondre au problme pos. Donc une modlisation s'inscrit toujours dans un contexte, et en cela l'exemple prcdent reste limit car son contexte d'application est indfini.

B. Diagramme de classes UML avancObjectifsMatriser le diagramme de classe UML dans le cas de la conception de BD.

Les lments de modlisation suivant compltent les notations basiques du diagramme de classe : classe, attribut, association, cardinalit et hritage.

1. Explicitation des associationsSyntaxe : Sens de lectureIl est possible d'ajouter le sens de lecture du verbe caractrisant l'association sur un diagramme de classe UML, afin d'en faciliter la lecture. On ajoute pour cela une flche sur l'association

S. Crozat - UTC 2009

29

Le niveau conceptuel : la modlisation des bases de donnes

Syntaxe : RleIl est possible de prciser le rle jou par une ou plusieurs des classes composant une association afin d'en faciliter la comprhension. On ajoute pour cela ce rle ct de la classe concerne (parfois prcd d'un "+" ou bien dans un petit encadr coll au trait de l'association.

Exemple

Rle et sens de lecture sur une association

Remarque : Associations rflexivesL'explicitation des associations est particulirement utile dans le cas des associations rflexives.

2. Classe d'associationDfinition : Classe d'associationOn utilise la notation des classes d'association lorsque l'on souhaite ajouter des proprits une association.

Syntaxe : Notation d'une classe d'association en UML

Notation d'une classe d'association en UML

Exemple : Exemple de classe d'association

30

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

Emplois

3. Associations ternairesSyntaxe

Notation d'une association ternaire

Conseil : Ne pas abuser des associations ternairesIl est toujours possible de rcrire une association ternaire avec trois associations binaires, en transformant l'association en classe.

Conseil : Pas de degr suprieur 4En pratique on n'utilise jamais en UML d'association de degr suprieur 3.

4. CompositionDfinition : Association de compositionOn appelle composition une association particulire qui possde les proprits suivantes :

S. Crozat - UTC 2009

31

Le niveau conceptuel : la modlisation des bases de donnes

La composition associe une classe composite et des classes parties, tel que tout objet partie appartient un et un seul objet composite. C'est donc une association 1:N. La composition n'est pas partageable, donc un objet partie ne peut appartenir qu' un seul objet composite la fois. Le cycle de vie des objets parties est li celui de l'objet composite, donc un objet partie disparat quand l'objet composite auquel il est associ disparait.

RemarqueLa composition est une association particulire.

Syntaxe : Notation d'une composition en UML

Notation d'une composition en UML

Attention : Composition et cardinalitLa cardinalit ct composite est toujours de exactement 1. Ct partie la cardinalit est libre, elle peut tre 0..1, 1, * ou bien 1..*.

Exemple : Exemple de composition

Un livre On voit bien ici qu'un chapitre n'a de sens que faisant partie d'un livre, qu'il ne peut exister dans deux livres diffrents et que si le livre n'existe plus, les chapitres le composant non plus.

Remarque : Composition et entits faiblesLa composition permet d'exprimer une association analogue celle qui relie une entit faible une entit identifiante en modlisation E-A. L'entit de type faible correspond un objet partie et l'entit identifiante un objet composite.

5. Classes abstraites

32

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

Dfinition : Classe abstraiteUne classe abstraite est une classe non instanciable. Elle exprime donc une gnralisation abstraite, qui ne correspond aucun objet existant du monde.

Attention : Classe abstraite et hritageUne classe abstraite est toujours hrite. En effet sa fonction tant de gnraliser, elle n'a de sens que si des classes en hritent. Une classe abstraite peut tre hrite par d'autres classes abstraites, mais en fin de chane des classes non abstraites doivent tre prsentes pour que la gnralisation ait un sens.

Syntaxe : Notation d'une classe abstraite en UMLOn note les classes abstraites en italique.

Notation d'une classe abstraite en UML

Exemple : Exemple de classe abstraite

Des chiens et des hommes Dans la reprsentation prcdente on a pos que les hommes, les femmes et les chiens taient des objets instanciables, gnraliss respectivement par les classes mammifre et humain, et mammifre. Selon cette reprsentation, il ne peut donc exister de mammifres qui ne soient ni des hommes, ni des femmes ni des chiens, ni d'humains qui ne soient ni des hommes ni des femmes.

S. Crozat - UTC 2009

33

Le niveau conceptuel : la modlisation des bases de donnes

6. ContraintesAjout de contraintes dynamiques sur le diagramme de classeIl est possible en UML d'exprimer des contraintes dynamiques sur le diagramme de classe, par annotation de ce dernier.

Syntaxe : Notation de contraintes

Notation contraintes en UML

Exemple : Exemple de contraintes

Commandes

34

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

Mthode : Expressions formelles ou texte libre ?Il est possible d'exprimer les contraintes en texte libre ou bien en utilisant des expressions formelles. On privilgiera la solution qui offre le meilleur compromis entre facilit d'interprtation et non ambigut. La combinaison des deux est galement possible si ncessaire.

Mthode : Quelles contraintes exprimer ?En pratique il existe souvent de trs nombreuses contraintes, dont certaines sont videntes, ou encore secondaires. Or l'expression de toutes ces contraintes sur un diagramme UML conduirait diminuer considrablement la lisibilit du schma sans apporter d'information ncessaire la comprhension. En consquence on ne reprsentera sur le diagramme que les contraintes les plus essentielles. Notons que lors de l'implmentation toutes les contraintes devront bien entendu tre exprimes. Si l'on souhaite prparer ce travail, il est conseill, lors de la modlisation logique, de recenser de faon exhaustive dans un tableau toutes les contraintes implmenter.

7. Contraintes sur les associationsConcernant les associations, il existe une liste de contraintes exprimes de faon standard.

Syntaxe

Notation des contraintes sur les associations

Dfinition : InclusionSi l'association inclue est instancie, l'autre doit l'tre aussi (la contrainte d'inclusion a un sens, reprsent par une flche).

Syntaxe{IN}, galement note {Subset} ou {I}.

Dfinition : Et (galit, simultanit)Si une association est instancie, l'autre doit l'tre aussi (quivalent une double inclusion).

Syntaxe{AND}, galement note {=} ou {S} pour simultanit.

Dfinition : ExclusionLes deux associations ne peuvent tre instancis en mme temps.

Syntaxe{X}

S. Crozat - UTC 2009

35

Le niveau conceptuel : la modlisation des bases de donnes

Dfinition : Ou inclusif (couverture, totalit)Au moins une des deux relations doit tre instancie.

Syntaxe{OR}, galement not {T} pour totalit.

Dfinition : Ou exclusif (partition)Une exactement des deux relations doit tre instancie.

Syntaxe{XOR}, galement note {+} ou {XT} ou {Partition}.

8. PaquetagesDfinition : PackageLes paquetages (plus communment appels package) sont des lments servant organiser un modle. Ils sont particulirement utile ds que le modle comporte de nombreuses classes et que celles-ci peuvent tre tries selon plusieurs aspects structurants.

Syntaxe

Syntaxe des paquetages

Exemple

Exemple d'utilisation des packages

MthodeOn reprsente chaque classe au sein d'un package. Il est alors possible de faire une prsentation globale du modle (tous les packages), partielle (1 package) ou centre sur un package : l'on reprsente alors leS. Crozat - UTC 2009

36

Le niveau conceptuel : la modlisation des bases de donnes

package avec ses classes, ainsi que toutes les classes lies des autres packages.

Prsentation partielle du modle centre sur un package

C. Le modle E-AObjectifsSavoir-faire un modle E-A tendu. Savoir interprter un modle E-A tendu.

1. Le modle E-A en brefLe modle E-A (ou E-R en anglais) permet la modlisation conceptuelle de donnes. Il correspond au niveau conceptuel de la mthode MERISE (mthode d'analyse informatique), le MCD (cf. Mthode MERISE Tome 1 : Principes et outils [Tardieu83], Mthode MERISE Tome 2 : Dmarche et pratiques [Tardieu85]). La conception E-A est issue des travaux de Chen [Chen76] et se fonde sur deux concepts principaux et un troisime sous-jacent : l'entit, l'association et l'attribut ou proprit.

2. EntitDfinition : EntitUne entit est un objet du monde rel avec une existence indpendante. Une entit (ou type dentit) est une chose (concrte ou abstraite) qui existe et est distinguable des autres entits. L'occurrence dune entit est un lment particulier correspondant lentit et associ un lment du rel. Chaque entit a des proprits (ou attributs) qui la dcrivent. Chaque attribut est associ un domaine de valeur. Une occurence a des valeurs pour chacun de ses attributs, dans le domaine correspondant.

Syntaxe

Notation MERISE de l'entit

S. Crozat - UTC 2009

37

Le niveau conceptuel : la modlisation des bases de donnes

Notation Chen de l'entit

38

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

Remarque

Un attribut est atomique, c'est dire qu'il ne peut prendre qu'une seule valeur pour une occurence. Un attribut est lmentaire, c'est dire qu'il ne peut tre exprim par (ou driv) d'autres attributs. Un attribut qui identifie de faon unique une occurence est appel attribut cl.

3. AssociationDfinition : AssociationUne association (ou type dassociation) reprsente un lien quelconque entre diffrentes entits. Une occurrence dune association est un lment particulier de lassociation constitu dune et une seule occurrence des objets participants lassociation. On peut dfinir des attributs sur les associations. Le degr d'une association est le nombre d'entits y participant (on parlera notamment d'association binaire lorsque deux entits sont concernes).

Syntaxe

Notation MERISE de l'association

Notation Chen de l'association

RemarqueOn peut avoir plusieurs associations diffrentes dfinies sur les mmes entits.

4. Cardinalit d'une associationDfinition : Cardinalit d'une association binairePour les associations binaires la cardinalit minimale (resp. maximale) d'une association est le nombre minimum (resp. maximum) d'occurrences de l'entit d'arrive associes une occurrence de l'entit de dpart.

Syntaxe

S. Crozat - UTC 2009

39

Le niveau conceptuel : la modlisation des bases de donnes

Notation de la cardinalit

Exemple

Livre-Auteur Le diagramme E-A prcdent exprime qu'un auteur peut avoir crit plusieurs livres (mais au moins un), et que tout livre ne peut avoir t crit que par un et un seul auteur.

Remarque : Trois grands types de cardinalitIl existe trois grands types de cardinalit : Les associations 1:N (qui incluent les association 0,1:N) Les associations N:M Les associations 1:1 (qui incluent les association 0,1:1) Les autres associations peuvent toujours tre ramenes des associations N:M (dans le cas gnral) ou plusieurs associations 1:N (cas des associations 2:N ou 3:N par exemple).

5. Modle E-A tenduIntroductionOn peut tendre le modle E-A "classique" de faon accroitre son pouvoir de reprsentation. Cette extension du modle E-A permet de favoriser la dimension conceptuelle et de s'approcher des reprsentations objet, telles que UML.

a) Attributs compositesUn attribut peut tre compos hirarchiquement de plusieurs autres attributs.

ExempleUn attribut Adresse est compos des attributs Numro, Rue, No_Appartement, Ville, Code_Postal, Pays.

RemarqueLe domaine d'un attribut composite n'est donc plus un domaine simple (entier, caractres, etc.).

b) Attributs multivalusTout attribut peut tre monovalu ou multivalu.

ExempleLes ges des enfants dun employ.

RemarqueUn attribut multivalu n'est donc plus atomique.

40

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

c) Attributs drivLa valeur d'un attribut peut tre drive d'une ou plusieurs autres valeurs d'attributs.

ExempleL'ge d'une personne peut tre driv de la date du jour et de celle de sa naissance.

RemarqueUn attribut driv n'est donc plus lmentaire.

d) Sous-type d'entitUne entit peut-tre dfinie comme sous-type d'une entit plus gnrale.

ExempleLes entits Cadre et Technicien sont des sous-types de l'entit Employ.

RemarqueLa notion de sous-type est quivalente la notion d'hritage en modlisation objet.

6. Entit de type faibleCertaines entits dites "faibles" n'existent qu'en rfrence d'autres entits dites "identifiantes". L'entit identifiante est appel "identifiant tranger" et l'association qui les unit "association identifiante".

Dfinition : Entit de type faibleUne entit de type faible, galement appele entit non identifie, possde une cl locale (appele identifiant relatif) qui permet d'identifier une de ses occurrences parmi l'ensemble des occurrences associes une occurrence de l'entit identifiante. La cl complte d'une entit faible est la concatnation de la cl de l'entit identifiante et de sa cl locale.

Exemple

Association identifiante L'entit Tche est compltement dpendante de l'entit Projet et sa cl locale (No_tche) n'est pas suffisante l'identifier de faon absolue.

AttentionLe reprage des entits de type faible est trs important dans le processus de modlisation, il permet de rflchir la meilleure faon d'identifier de faon unique les entits et donc de trouver les meilleures cls. Notons de plus que le reprage d'entits faibles aura une influence importante sur le modle relationnel rsultant.

7. Illustration d'entits faiblesExemple

S. Crozat - UTC 2009

41

Le niveau conceptuel : la modlisation des bases de donnes

Villes Dans le schma ci-avant, on remarque que l'entit "ville" est faible par rapport l'entit "dpartement", qui est faible par rapport "rgion", qui est faible par rapport "pays". Cela signifie que la cl de ville, son nom, est une cl locale et donc que l'on considre qu'il ne peut pas y avoir deux villes diffrentes avec le mme nom, dans un mme dpartement. Il est par contre possible de rencontrer deux villes diffrentes avec le mme nom, dans deux dpartements diffrents. De la mme faon chaque dpartement possde un nom qui l'identifie de faon unique dans une rgion, et chaque rgion possde un nom qui l'identifie de faon unique dans un pays. Si les entits n'taient pas faibles, l'unicit d'un nom de ville serait valable pour l'ensemble du modle, et donc, concrtement, cela signifierai qu'il ne peut exister deux villes avec le mme nom au monde (ni deux dpartements, ni deux rgions).

RemarqueNotons pour terminer que, puisque "pays" n'est pas une entit faible, sa cl "nom" est bien unique pour l'ensemble du modle, et donc cela signifie qu'il ne peut exister deux pays avec le mme nom au monde.

D. En rsum : Schma conceptuelSchma conceptuelUn schma conceptuel peut tre reprsent sous forme de modle E-A ou sous forme de diagramme de classe UML. Entit ou Classe Proprit ou Attribut Typ Multi-valu Compos Driv Mthode Paramtres Valeur de retour Association Association Verbe Cardinalit Hritage Hritage d'attributs Hritage de mthodes Composition (ou entit faible) Cardinalit

42

S. Crozat - UTC 2009

Le niveau conceptuel : la modlisation des bases de donnes

E. Bibliographie commente sur la modlisation UMLComplment : Outils de modlisation UMLIl existe de nombreux outils de modlisation UML. On pourra citer : Dia [w_dia] : logiciel Open Source et multi-plateformes facile d'usage (qui marche nanmoins mieux sur Linux que sur Windows). Objecteering [w_objecteering] (version gratuite). voir galement en Open Source : ArgoUML1 ou EclipseUML.2 (non test par l'auteur).

Complment : Modlisation UMLUML2 en action [Roques04] Pour un aperu plus dtaill des possibilits d'expression du diagramme de classe UML, lire le chapitre 7 : Dveloppement du modle statique (pages 133 163). On pourra notamment y trouver : L'association d'agrgation Les proprits d'association L'expression de rles dans les associations Les attributs de classe Les qualificatifs Les oprations (ou mthodes) Le chapitre donne