MODLISATION DES DONNES : Approche pour la conception des bases des donnes
Par Philippe GUZLOU
06/01/14
6. FORMES NORMALES
6.1. Premire forme normale (1FN) 6.2. Deuxime forme normale (2FN) 6.3. Troisime forme normale (3FN) 6.4. Forme normale de Boyce-Codd (BCFN) 6.5. Quatrime forme normale (4FN) 6.6. Cinquime forme normale (5FN)
1. INTRODUCTION
L'objectif de ce document est d'initier le lecteur au formalisme de modlisation des donnes tel que le dfinit la mthode MERISE. MERISE dfinit trois niveaux de description du systme d'information :
philippe.guezelou.free.fr/mcd/mcd.htm 2/25
06/01/14
le niveau conceptuel, le niveau organisationnel, le niveau physique. La reprsentation distincte des donnes et des traitements selon les 3 niveaux voqus, conduit l'laboration de six modles, mais ce document ne s'intresse qu' la modlisation des donnes au niveau conceptuel. Le niveau conceptuel dcrit les choix de gestion adopts par l'entreprise. Schmatiquement, ce niveau de description rpond la question quoi ? , c'est--dire que veut-on faire qui reste vrai quelles que soient les solutions d'organisation et les solutions techniques mettre en uvre ? . Ce document synthtise les diffrentes tapes ncessaires la ralisation du modle conceptuel des donnes (MCD). Il aborde ensuite les aspects lis la normalisation qui permet la conception de bases de donnes cohrentes.
2. CONCEPTS DE BASE
Le formalisme utilis pour dcrire un MCD est celui du modle entit-association. La reprsentation de ce formalisme s'appuie sur trois concepts de base : l'objet ou entit, l'association, la proprit. L'objet est une entit ayant une existence propre. L'association est un lien ou relation entre objets sans existence propre. La proprit est la plus petite donne d'information dcrivant un objet ou une association. La reprsentation graphique utilise pour visualiser les donnes est la suivante :
Une proprit ne doit tre prsente que sur un seul objet ou une seule association. Les ambiguits lies la polysmie (un mme nom de proprit dsignant deux notions diffrentes) doivent tre leves en nommant de faon prcise les proprits. Les ambiguits lies la synonymie (des noms diffrents de proprits dsignant une mme notion) doivent tre limines. Un objet possde au moins une proprit. Une association peut n'avoir aucune proprit.
3. AUTRES CONCEPTS
3.1. OCCURRENCE
philippe.guezelou.free.fr/mcd/mcd.htm 3/25
06/01/14
L'occurrence d'une proprit est l'une des valeurs que peut prendre cette proprit. L'occurrence d'un objet est l'un des ensembles d'occurrences de ses proprits. L'occurrence d'une association est l'une des liaisons entre occurrences d'objets participant l'association. Les proprits d'un objet doivent avoir une occurrence quelle que soit l'occurrence de l'objet. Dans le cas contraire, il est ncessaire de crer un autre objet portant cette proprit. Lorsqu'une proprit d'un objet peut avoir plusieurs occurrences pour une occurrence de l'objet, il faut : soit crer autant de proprits sur cet objet qu'il y a de possibilits de valeurs pour cette proprit, soit crer un autre objet portant cette proprit et lier ce nouvel objet par une association avec l'objet initial. De la mme manire, lorqu'une proprit d'une association peut avoir plusieurs occurrences pour une occurrence de l'association, il faut : soit crer autant de proprits sur cette association qu'il y a de possibilits de valeurs pour cette proprit, soit crer un autre objet portant cette proprit et mettre ce nouvel objet en liaison avec cette association.
3.2. IDENTIFIANT
L'identifiant d'un objet est la ou les proprits permettant de dterminer de faon unique chacune des occurrences de l'objet. La valeur de l'identifiant doit tre diffrente pour chaque occurrence de l'objet. Pour reprer l'identifiant dans la reprsentation graphique d'un objet, le ou les proprits constituant l'identifiant sont prcdes d'un symbole (# ou *). L'identifiant d'une association est la concatnation des identifiants des objets relis.
3.4. CARDINALIT
Les cardinalits d'un objet dans une association dsignent le nombre minimum (0 ou 1) et le nombre maximum (1 ou n) de liens qu'il existe entre une occurrence de l'objet et une occurrence de l'association. Une valeur minimum 0 signifie qu'au moins une occurrence de l'objet n'est pas lie l'association. Une valeur minimum 1 signifie que toutes les occurrences de l'objet sont lies l'association. Une valeur maximum 1 signifie qu'aucune occurrence de l'objet n'est lie plus d'une fois l'association. Une valeur maximum n signifie qu'au moins une occurrence de l'objet est lie plusieurs fois l'association. partir de ces valeurs minimum et maximum possibles, il existe quatre types de cardinalit : (0,1) : une occurrence de l'objet n'est jamais lie plus d'une fois l'association. (1,1) : une occurrence de l'objet est toujours lie une et une seule fois l'association. (1,n) : une occurrence de l'objet est toujours lie au moins une fois l'association. (0,n) : aucune prcision donne.
philippe.guezelou.free.fr/mcd/mcd.htm
4/25
06/01/14
Une reprsentation schmatique des liens entre les occurrences d'objets peut aider dterminer les cardinalits d'une association. Exemple:
philippe.guezelou.free.fr/mcd/mcd.htm
5/25
06/01/14
4. EXEMPLE DE MCD
philippe.guezelou.free.fr/mcd/mcd.htm
6/25
06/01/14
5. DPENDANCES
5.1. RAPPEL DU LANGAGE ALGBRIQUE
Une relation n-aire dfinie sur des ensembles D1, D2, ..., Dn est un sous-ensemble du produit cartsien D1 x D2 x ... x Dn. Une relation n-aire est un ensemble de n-uplets <d1, d2, ..., dn> o . Chacun des ensembles Di est appel attribut de la relation. La relation est note R(D1, D2, ..., Dn). Dans le cadre d'une dfinition d'un modle de donnes, les langages d'interrogation pour la recherche de donnes peuvent tre scinds en deux classes : les langages algbriques, les langages prdicatifs. Le principe d'un langage algbrique est de considrer que l'information slectionner peut s'exprimer sous forme d'une relation obtenue par applications successives d'oprateurs dont les oprandes sont les relations de base. Ces oprateurs sont dcrits dans la suite de ce paragraphe. Les langages prdicatifs ne sont pas abords dans ce document. Par convention, les premires lettres de l'alphabet sont utilises pour dsigner les attributs et les dernires lettres pour dsigner les ensembles d'attributs. 5.1.1. Projection
philippe.guezelou.free.fr/mcd/mcd.htm 7/25
06/01/14
5.1.2. Anti-projection L'anti-projection R]X[ d'une relation n-aire R(X, Y) est dfinie par :
5.1.3. Produit cartsien Le produit cartsien R x S de deux relations n-aires R(X) et S(Y) est dfinie par :
5.1.4. Jointure La jointure (ou produit) R * S de deux relations n-aires R(X, Y) et S(Y, Z) est dfinie par :
5.1.5. Thta-jointure La Thta-jointure (ou Thta-produit) de deux relations n-aires R(X, A) et S(B, Y) est dfinie par (Thta est un oprateur de comparaison entre A et B) :
5.1.6. Slection La slection R{F} de la relation n-aire R(X) par la formule logique F applicable sur les n-uplets de R, est dfinie par : La formule F est construite partir des oprateurs de la logique : conjonction, disjonction, ngation, galit, infrieur, suprieur, diffrent. 5.1.7. Division La division de deux relations n-aires R(X, A) et S(B, Y) pour lesquelles les attributs A et B sont compatibles, est dfinie par :
5.1.8. Dpendance fonctionnelle Une dpendance fonctionnelle X Y entre X et Y dans une relation n-aire R(X, Y, Z) est dfinie par :
5.1.9. Dcomposition Une relation R(X1, X2, ..., Xn) est dcomposable selon (X1, X2), (X2, X3, X4), ..., (Xn-3, Xn-2, Xn-1), (Xn-1, Xn) si R = R[X1, X2] * R[X2, X3, X4] * ... * R[Xn-3, Xn-2, Xn-1] * R[Xn-1, Xn].
philippe.guezelou.free.fr/mcd/mcd.htm
8/25
06/01/14
Un identifiant dtermine par DF toutes les autres proprits de l'objet ou de l'association. Une DF P1 P2 est dite lmentaire si aucune partie de l'ensemble de proprits P1 ne dtermine la proprit ou l'ensemble de proprits P2. Les DF sont rgies par la rgle mathmatique de transitivit : si P1 Une DF P1 P2 est dite directe s'il n'y a pas de transitivit P1 P2 et P2 P3 et P3 P3 alors P1 P2. P3.
5.2.2. Dpendance fonctionnelle entre objets Il existe une DF O1 O2 entre deux objets O1 et O2 lis par une association, si chaque occurrence de O1 n'est associe qu' au plus une occurrence de O2. En d'autres termes, la prsence des cardinalits (0,1) ou (1,1) sur un objet, rvle une DF vers l'autre objet. O1 est l'objet source de la DF et O2 l'objet but. La DF est dite forte pour une cardinalit (1,1) et faible pour une cardinalit (0,1). Exemple :
Une DF forte n'est pas porteuse de proprits. Si une DF forte est porteuse de proprits, alors ces proprits doivent tre dplaces sur l'objet source de la DF. Une DF rvle une relation entre objets de type est un . 5.2.3. Contrainte d'intgrit fonctionnelle Une contrainte d'intgrit fonctionnelle sur un objet signifie que cet objet est totalement identifi par la connaissance d'un ou plusieurs autres objets au sein d'une mme association.
06/01/14
tant donn une association A(P) et X, Y des ensembles de proprits inclus dans P, il existe une DM entre les ensembles de proprits X, Y lorsque :
Y. .
Les donnes de l'association EFFECTUE peuvent tre : garagiste Martin Piquard Martin Piquard Tussier Piquard Martin Piquard Martin intervention lectricit Carrosserie Mcanique Carrosserie Dpannage Alarme lectricit Alarme Mcanique modle Citron Ford Renault Fiat Peugeot Fiat Renault Ford Citron
Il existe une DM garagiste intervention et une DM garagiste modle s'expliquant par le fait qu'un garagiste qui effectue un ensemble de types d'intervention pour un ensemble de modles de voiture, est capable d'effectuer chacun de ces types d'intervention sur chacun de ces modles de voiture.
06/01/14
R = R[X1] * R[X2] * ... * R[Xn-1] * R[Xn]. Cette dpendance est note *[X1][X2]...[Xn-1][Xn]. Si , la dpendance est dite partielle. Si P = P', la dpendance est dite totale. Exemple :
Les donnes de l'association RECETTE peuvent tre : famille Viandes Viandes Desserts Desserts saveur Sucr Sucr Sucr Acide catgorie Fruits Lgumes Fruits Fruits
Ce cas correspond X1 = (famille, saveur), X2 = (saveur, catgorie) et X3 = (catgorie, famille). La projection RECETTE[X1] donne : famille Viandes Desserts Desserts La projection RECETTE[X2] donne : saveur Sucr Sucr
philippe.guezelou.free.fr/mcd/mcd.htm
06/01/14
Acide La jointure RECETTE[X1] * RECETTE[X2] donne : famille Viandes Viandes Desserts Desserts Desserts La projection RECETTE[X3] donne : catgorie Fruits Lgumes Fruits saveur Sucr Sucr Sucr Sucr Acide
Fruits
La jointure RECETTE[X1] * RECETTE[X2] * RECETTE[X3] redonne l'association RECETTE. Cette dpendance indique qu'il ne suffit pas qu'une famille de recettes ait une saveur dominante et que cette saveur corresponde une catgorie d'ingrdients, pour qu'une recette base de cet ingrdient et de saveur spcifie, soit fabrique. Un dessert possde une saveur sucre, une saveur sucre peut correspondre un lgume mais un dessert sucr base de lgumes n'est pas fabriqu car il n'y a pas de lgumes dans un dessert.
6. FORMES NORMALES
6.1. PREMIRE FORME NORMALE (1FN)
Un objet ou une association est en 1FN s'il possde un identifiant et si aucune proprit n'est multiples valeurs.
philippe.guezelou.free.fr/mcd/mcd.htm
12/25
06/01/14
L'association DEVOIR est en 1FN mais pas en 2FN car : #(nom, matire, numro) note, #(nom, matire, numro) moyenne, (nom, matire) moyenne. La deuxime DF n'est pas lmentaire. Avec ce modle, l'occurrence de la proprit moyenne sera rpte pour chacun des mois. Pour que l'association DEVOIR soit en 2FN, il faut retirer la proprit moyenne de cette association et la placer dans une nouvelle association MOYENNE :
06/01/14
L'objet COMMUNE est en 2FN mais pas en 3FN car : #code postal nom commune, #code postal numro dpartement, #code postal nom dpartement, #numro dpartement nom dpartement. La troisime DF n'est pas directe. Avec ce modle, la mme occurrence de la proprit nom dpartement sera rpte pour chaque commune appartenant au mme dpartement. Pour que l'objet COMMUNE soit en 3FN, il faut crer un nouvel objet DEPARTEMENT pour reflter cette DF :
Ce modle permet de plus de grer l'ensemble des dpartements, y compris ceux qui ne sont pas rattachs une commune.
philippe.guezelou.free.fr/mcd/mcd.htm
14/25
06/01/14
L'association EMPLOI est en 3FN mais pas en BCFN car : (matire, classe) professeur professeur matire Il existe donc des DF dont la source ne contient pas l'identifiant de l'association. Ce modle n'interdit pas l'existence des occurrences du type < Mathmatiques , 6A , Martin > et < Mathmatiques , 6A , Piquard >, et ceci est en contradiction avec la premire contrainte. Pour que l'association EMPLOI soit en BCFN, il faut la dcomposer :
06/01/14
voiture, est capable d'effectuer chacun de ces types d'interventions sur chacun de ces modles de voitures.
L'association EFFECTUE est en BCFN mais pas en 4FN car il existe une DM (voir au paragraphe 5.3) et, puisque cette association n'est pas porteuse d'une proprit, il n'existe pas de DF. Ce modle prsente des difficults de mise jour. Si l'occurrence < Tussier , Pare-brise , Seat > est ajoute, il faut ajouter aussi les occurrences < Tussier , Dpannage , Seat > et < Tussier , Pare-brise , Peugeot >. Pour que l'association EFFECTUE soit en 4FN, il faut la dcomposer :
Si l'association EFFECTUE avait t porteuse d'une proprit temps de rparation , elle aurait t en 4FN puisque la DF #(garagiste, intervention, modle) temps aurait exist.
06/01/14
Exemple :
L'association RECETTE est en 4FN mais pas en 5FN car il existe une DJ (voir au paragraphe 5.4) et, puisque cette association n'est pas porteuse d'une proprit, il n'existe pas de DF. Ce modle prsente des difficults de mise jour. Si l'occurrence < Viandes , Acide , Vins > est ajoute, il faut galement ajouter l'occurrence < Viandes , Acide , Fruits >. Pour que l'association RECETTE soit en 5FN, il faut la dcomposer :
06/01/14
manipulations dans l'ordre spcifi conduit la ralisation de la recette. Les termes techniques de base permettent de dfinir la manipulation effectuer pour chacune des phases de la progression : dcanter, mincer, plucher, flamber, hacher, peler, trier, rtir, Les termes techniques employs dans une progression supposent l'utilisation du matriel adquate. Le matriel est regroup par catgorie : couteaux, plaques, ustensiles de cuisson, robots, Un mme matriel peut participer plusieurs phases de la progression. Plusieurs matriels peuvent intervenir dans une mme phase de la progression. Une quantit est indique pour chaque matriel utilis dans une manipulation. Une recette est constitue partir d'une liste d'ingrdients auxquels sont associs une quantit utiliser. Les ingrdients sont rpartis par type : lgumes, fruits, poissons, boucherie, charcuterie, picerie, boulangerie, cave, Un ingrdient n'est rpertori que dans un seul de ces types. Chaque ingrdient possde une saveur. Les recettes sont regroupes par famille : hors d'uvre, potages, poissons, entres, rtis, entremets, oeufs, viandes, Une recette n'est repertorie que dans une seule de ces familles. Il s'agit d'laborer le MCD correspondant cet nonc. La lecture de ce texte permet de dgager les proprits suivantes : type d'ingrdient, ingrdient, saveur, famille de recette, recette, catgorie de matriel, matriel, terme technique, quantit d'ingrdient, temps d'excution ou de cuisson, numro d'ordre de la manipulation dans la progression, quantit de matriel. D'autres proprits peuvent tre limines car elles sont synonymes de celles prcdemment cites : progression, stade, phase, manipulation, enchanement de manipulations. Une progression n'est autre qu'une recette. Un stade ou une phase dans une progression correspond un terme technique auquel a t rajout un numro d'ordre. Une manipulation est un terme technique. Un enchanement de manipulations est une progression. La notion de quantit employe dans cet nonc est ambigu (polysmie) puisqu'elle fait rfrence la quantit d'ingrdients et la quantit de matriels. Cette dernire proprit est renomme : nombre de spcimens. partir de ces proprits une liste de DF peut tre faite : ingrdient type, recette famille, matriel catgorie, ingrdient saveur,
philippe.guezelou.free.fr/mcd/mcd.htm 18/25
06/01/14
(recette, terme technique) numro d'ordre, (recette, terme technique) temps d'excution, (recette, ingrdient) quantit d'ingrdient. Il manque toutefois des informations smantiques cet nonc, en particulier pour le nombre de spcimens de matriel utiliser dans une manipulation. Ce nombre est-il dpendant de la recette ou bien est-il toujours le mme partir du moment o la manipulation apparait dans une recette ? Si l'on suppose que ce nombre est indpendant de la recette, la DF suivante est reconnue : (matriel, terme technique) nombre de spcimens. Les proprits et les DF associes permettent de concevoir les objets suivants : type d'ingrdient, ingrdient, famille de recette, recette, catgorie de matriel, matriel, manipulation, saveur. Le modle suivant peut ensuite tre labor partir de ces lments :
Ce modle est en 5FN. Il prsente tout de mme une anomalie sur le numro d'ordre dans l'association PHASE.
philippe.guezelou.free.fr/mcd/mcd.htm 19/25
06/01/14
8. CONTRAINTES SMANTIQUES
8.1. CONTRAINTES ENTRE ASSOCIATIONS
8.1.1. Contrainte d'existence Ce type de contrainte fait dpendre l'existence d'une occurrence d'une association entre des occurrences d'objets, de l'existence d'une occurrence d'une autre association reliant ces objets ou une partie de ces objets. Exemple : Un mcanicien n'effectue des rparations sur des voitures qu' l'atelier qui correspond au type d'intervention raliser. Le modle correspondant est :
Il faut pouvoir indiquer dans ce modle que l'occurrence < Martin , A01 , Carrosserie > n'est possible pour l'association REPARATION que si l'occurrence < A01 , Carrosserie > existe pour l'association ATTRIBUTION. 8.1.2. Contrainte de non-existence C'est l'inverse du type de contrainte prcdent. L'existence d'une occurrence d'une association entre des occurrences d'objets doit dpendre de la non-existence d'une occurrence d'une association qui pourrait relier ces objets ou une partie de ces objets. Exemple :
philippe.guezelou.free.fr/mcd/mcd.htm
20/25
06/01/14
Un livre peut tre un roman ou une tude mais pas les deux. 8.2. CONTRAINTES ENTRE PROPRITS Ces contraintes correspondent des rgles de gestion imposes par le systme d'information. Elles ne sont en gnral pas indiques sur la reprsentation graphique du modle mais font plutt partie des annexes. Leur description n'est pas formalise. Il ne s'agit pour ces contraintes que de faire apparaitre sous une forme syntaxique quelconque, une rgle de calcul importante. Exemple :
La moyenne d'un lve dans une matire est obtenue en divisant par le nombre de notes obtenues par cet lve dans cette matire, la somme des notes obtenues par cet lve dans cette matire. Cette contrainte s 'exprime par :
philippe.guezelou.free.fr/mcd/mcd.htm
21/25
06/01/14
8.3. ASSOCIATION D'ASSOCIATIONS Le concept d'association tel qu'il a t dfini au paragraphe 2, est modifi pour prendre en compte le cas o des contraintes apparaissent entre des associations d'objets. Cette extension au concept initial permet d'exprimer diffremment les contraintes entre associations vues au paragraphe 8.1. Ce principe est limit au cas o l'identifiant de l'une des associations est contenu dans l'identifiant de l'autre association. Exemple :
La contrainte d'existence entre les deux associations REPARATION et ATTRIBUTION peut tre remplac par une association d'associations :
philippe.guezelou.free.fr/mcd/mcd.htm
22/25
06/01/14
L'orientation du lien entre REPARATION et ATTRIBUTION prcise quelle est l'association dont l'identifiant est contenu dans l'identifiant de l'autre association : l'association REPARATION est identifie par #(mcanicien, ATTRIBUTION) c'est--dire #(mcanicien, intervention, atelier). La cardinalit 0,n sur le lien REPARATION-ATTRIBUTION permet de spcifier que certaines occurrences de l'association ATTRIBUTION ne sont pas lies une occurrence de l'association REPARATION. En d'autre terme, un atelier peut tre spcialis dans une intervention sans qu'il y ait un garagiste qui y travaille.
06/01/14
catgorie(#code_catgorie, intitul) permis(#nom, #code_catgorie, date_obtention) type_vehicule(#type, code) vhicule(#numro_srie, marque, type) carte_grise(#nom, #numro_srie, immatriculation, date)
06/01/14
Agrgation Cette relation traduit une dpendance de type compose/composantes. Elle indique qu'une classe est responsable des objets d'une autre classe. Au sens usuel, elle peut se traduire par &"171; contient ou est compose de . Association Cette relation traduit un lien bidirectionnel reprsentant une dpendance smantiques entre objets. Hritage Cette relation traduit un partage de comportement et de proprits entre classes. Elle exprime une gnralisation / spcialisation entre classes c'est dire le fait qu'une classe spcialise une autre plus gnrale. Elle peut se traduire usuellement par est un . Instanciation Cette relation traduit une gnration d'objets d'une classe par une autre classe.
Il est possible de crer un objet gnrique PERSONNE partir des objets PROFESSEUR et ELEVE :
philippe.guezelou.free.fr/mcd/mcd.htm
25/25