conception des bases de données relationnelles

of 29/29
Conception des bases de données relationnelles Fabien De Marchi Faculté des Sciences et Technologies - Laboratoire LIRIS Université Lyon 1 24 novembre 2009

Post on 05-Jan-2017

226 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Conception des bases de donnes relationnelles

    Fabien De MarchiFacult des Sciences et Technologies - Laboratoire LIRIS

    Universit Lyon 1

    24 novembre 2009

  • 2

    Pr-requis : Structure du modle relationnel : attributs, relations, bases de donnes. Langages du relationnel : Algbre ou calcul relationnel, SQL Connaissance lmentaire du modle E/A.Objectifs : Approfondir les connaissances du modle relationnel, et les fondements de la conception

    des bases de donnes : Principales contraintes et dpendances - Notions de systmes dinfrence et de bases de rgles. Processus de normalisation dune base de donnes partir des contraintes Conception laide dun modle conceptuel de donnes.Remarque : ces lments de cours sont ici pour faciliter le travail personnel des tudiants. Ils ne

    remplacent pas les cours et exercices effectus en classe, dont le contenu peut varier.Rfrences Livres : M. Levene et G. Loizou A guided tour of relational databases and beyond. Springer, 1999. Les

    notations de ce cours sont principalement issues de cette rfrence. S. Abiteboul, R. Hull et V. Vianu Fondements des bases de donnes. Addison-Wesley, 1995. R. Ramakrishnan et J. Gehrke Database Management Systems. 2003 (troisime dition)

    Sur le Web : Matriel allant avec le livre de Ramakrishnan et Gehrke

    http://pages.cs.wisc.edu/~dbbook/

  • Table des matires

    1 Introduction 5

    2 Prsentation du modle relationnel 72.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.2.1 Attributs, valeurs et domaines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 Schmas de relations, schmas de bases de donnes et premire forme normale . . 82.2.3 Tuples, relations et bases de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.3 Langages de requtes et de mises jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    3 Contraintes dintgrit dans le modle relationnel 113.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Les principales dpendances de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    3.2.1 Dpendances fonctionnelles et cls . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2.2 Dpendances dinclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.3 Infrence, fermetures et couvertures de contraintes . . . . . . . . . . . . . . . . . . . . . . 143.3.1 Infrence de dpendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . 153.3.2 Infrence de dpendances dinclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.3 Couvertures des DF et des DI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4 Conception de bases de donnes 194.1 Anomalies de mise jour et redondance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.2 Les pertes dinformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.2.1 Perte de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2.2 Perte de DF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.3 Les principales formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.1 Au del des dpendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . 23

    4.4 Comment normaliser une relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.4.1 Algorithmes de synthse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.5 Convertir un schma Entit/Association en schma relationnel . . . . . . . . . . . . . . . 264.5.1 Rappel : Le modle Entit-Association . . . . . . . . . . . . . . . . . . . . . . . . . 264.5.2 Traduction E/A vers relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    3

  • 4 TABLE DES MATIRES

  • Chapitre 1

    Introduction

    Quest-ce quune base de donnes ? Une base de donnes est une collection organise de donneslectroniques, logiquement connectes entre elles. Des donnes appartiennent une mme base si ellespossdent un lien smantique, qui dpend dune application. Par exemple, des restaurants et des cinmaspeuvent apparatre dans une mme base qui rpertorie des sorties dans une ville. Un lien smantique unialors ces deux concepts : ils sont tous les deux des sorties particulires dans cette ville.

    En gnral, les objectifs fondamentaux inhrents la gestion dune base de donnes sont : la prnit des donnes : jamais de donnes ne doivent tre perdues, ce qui ncessite de rflchir la sauvegarde, larchivage, la reprise aprs panne.

    la cohrence des donnes par rapport la ralit. Cest encore plus dlicat lors daccs concurrentiels,ou de rplications de la base.

    laccs juste et efficace aux donnes.Ces diffrentes capacits sont prises en charge par des logiciels appels systme de gestion de base

    de donnes (SGBD). Les principaux produits commerciaux sont Oracle, DB2 (IBM) et SQL Server(Microsoft). Plusieurs SGBD gratuits comme MySQL ou PostgreSQL sont de plus en plus utiliss pour lagestion de bases petites et moyennes, et particulirement adapts pour sinterfacer avec des pages Web.Ces outils sont bass sur le modle relationnel, qui est un modle de donnes parmi dautres.

    Quest-ce quun modle de donnes ? Tout SGBD est conu autour dun modle de donnes biendfini. Il sagit de la combinaison de trois lments :

    Une structure, qui correspond lorganisation logique des donnes, la forme sous laquelle les utili-sateurs vont les percevoir ou les reprsenter.

    Des contraintes dintgrit, que lon peut dfinir sur les donnes, afin den assurer lintgrit et lacohrence avec le monde rel et les besoins des applications.

    Des langage de manipulation des donnes, pour les mises jour et les interrogations.Voici quelques exemples de modles de donnes : le modle rseau Structure : graphe orient, les noeuds sont des enregistrements Contraintes dintgrit : un identifiant pour chaque noeud, un mcanisme de rfrence entre desnoeuds

    Manipulation : parcours de rseaux. le modle hirarchique Structure : arborescente (forts)

    5

  • 6 CHAPITRE 1. INTRODUCTION

    Contraintes dintgrit : un identifiant pour chaque noeud, un mcanisme de rfrence entre desnoeuds

    Manipulation : navigation hirarchique le modle relationnel Structure : ensembles de relations, qui sont des ensembles de tuples. Graphiquement, une relation

    est un tableau. Contraintes dintgrit : principalement les cls primaires (identifiants de tuples) et les cls tran-

    gres (liens entre les relations) Manipulation : algbre relationnel, calcul relationnel, SQL.

    le modle dductif Structure : quasiment la mme que le modle relationnel Contraintes dintgrit : les mmes que le modle relationnel Manipulation : langages logiques, le principal est Datalog. Contrairement aux langages du modle

    relationnel, il admet la rcursivit. le modle Objet Structure : logique objet, soit des classes, des objets, des attributs et des mthodes. Peut tre vu

    comme un graphe orient. Contraintes dintgrit : identifiant pour les objets, rfrence entre objets. Manipulation : extensions de SQL comme OSQL ou OQL.

    le modle Entit/Association Structure : Entits (avec des attributs) et associations entre des entits. Contraintes dintgrit : identifiants, cardinalits sur les associations Manipulation : aucun.

    Ajoutons les modles semi-structurs, qui sadaptent la nature htrogne des donnes, principale-ment trouves sur le Web. Le principal exemple est XML. En pratique, le relationnel est, de loin, le plusutilis de tous les modles de donnes. Quelques SGBD objet existent, mais rencontrent des problmesde performances pour les gros volumes de donnes, dus lexcution en cascade de mthodes lors desparcours de donnes. Des SGBD XML ont aussi plus rcemment vu le jour, et sont utiliss, mais ngalentpas les performances du modle relationnel.

    Les principaux SGBD relationnels intgrent de plus en plus des extentions permettant de percevoirles donnes sous la logique objet ou XML, mais utilisant derrire des bases de donnes relationnelles pourstocker les donnes.

  • Chapitre 2

    Prsentation du modle relationnel

    Sommaire2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.2.1 Attributs, valeurs et domaines . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 Schmas de relations, schmas de bases de donnes et premire forme normale 82.2.3 Tuples, relations et bases de donnes . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.3 Langages de requtes et de mises jour . . . . . . . . . . . . . . . . . . . . . 10

    Ce chapitre rappel brivement la structure et les langages du modle relationnel, sans entrer dansles dtails - lobjectif tant principalement de prsenter le contexte et les notations. La partie sur lescontraintes fera lobjet du chapitre suivant.

    2.1 Introduction

    Le modle relationnel a t dfini en 1970 par Codd. Cette proposition a succd aux modles hi-rarchiques et rseaux, avec pour but de dfinir un modle simple comprendre, fond sur des basesmathmatiques solides (logique et thorie des ensembles), et pouvant conduire une amlioration desperformances des outils. Lide de base est simple : mettre les donnes plat dans des tableaux, de faon ce que chaque valeur apparaissant dans les cases du tableau soient atomiques. Cette simplification estla principale explication de la performance du modle relationnel, car elle vite les traitements rcursifs(parcours de graphes et darbres complexes).

    Aprs une dizaine danne de dveloppement de la thorie inhrente aux propositions de Codd, lespremiers SGBD commerciaux font leur apparition dans les annes 80, avec des outils comme ORACLEprincipalement. Les contributions techniques se combinent alors aux fondements thoriques et le modlerelationnel simpose comme un standard. Ds le dbut des annes 90, les progrs technologiques fulgurantssur le matriel (processeurs et mmoire disque) conduisent des bases de plus en plus grosses, pouratteindre des proportions gigantesques de nos jours. La recherche dans le domaine des bases de donnesrelationnelles est toujours active, place sans cesse face des nouveaux dfis de taille, dexigence derapidit, dhtrognit des donnes. Mme si de nouveaux paradigmes pourraient tre en passe de voirle jour dans le traitement des bases de donnes de production, les fondements thoriques prsents dansce cours constituent toujours la base des techniques utilises.

    7

  • 8 CHAPITRE 2. PRSENTATION DU MODLE RELATIONNEL

    2.2 StructureLa structure dune BD relationnelle est fonde sur la thorie des ensembles. Rappelons quun ensemble

    est une collection non ordonne dlments distincts, diffrencier de la squence (lorsque les lmentssont ordonns) et du multi-ensemble (lorsquon accepte les doublons).

    Notations les notations suivantes sont communment admises lorsque le contexte le permet. Unensemble {A1;A2; ...;An} sera not par la concatnation de ses lments : A1A2...An. Si X et Y sontdeux ensemble, leur union X Y sera note XY . Une squence dlments, est note < A1, ..., An >.Lorsque le contexte est clair, les squences et les ensembles seront nots de la mme faon.

    Exemple 1 Lensemble {A;B;C} sera not ABC dans ce cours. Les notations ABC et BCA sontquivalentes puisque lordre na pas dimportance : par convention, on notera les ensembles thoriques enrespectant lordre alphabtique. Lensemble AABC nexiste pas, puisque llment A apparat deux fois.Soit les ensemble X = ABC et Y = BD, alors leur union X Y sera not XY = ABCD.

    2.2.1 Attributs, valeurs et domainesSoit U un ensemble infini dnombrable de noms dattributs ou simplement attributs, et D un ensemble

    infini dnombrable de valeurs. Soit A U un attribut, le domaine de A est un sous-ensemble de D, notDOM(A).

    Hypothse dunicit des noms : Soient deux valeurs v1 et v2 des lments de D. On dit que v1et v2 sont gales si et seulement si elles sont syntaxiquement identiques, cest dire quelles ont le mmenom. En dautres termes, lorsque deux attributs ont la mme valeur, ils dsignent la mme chose.

    2.2.2 Schmas de relations, schmas de bases de donnes et premire formenormale

    Dfinition 1 (schmas de relations et de bases de donnes) Un schma de relation R est unensemble fini dattributs (donc R U). Un schma de base de donnes R est un ensemble fini de schmasde relation.

    Exemple 2Lexemple suivant sera utilis tout au long de ce cours. On suppose une application grant les coursdispenss au sein de lUFR, regroupant des informations sur les tudiants, les formations, les enseignants,les modules, les UE, les salles de cours et les ressources matrielles (projecteurs, etc...).La modlisation des tudiants pourrait se faire laide du schma de relation

    ETUDIANTS = {NUM ;NOM ;PRENOM ;AGE;FORMATION}

    . Si on reprsente les autres informations dans dautres schmas de relations, alors lunion de tous les sch-mas de relation obtenus constituera le schma de notre base de donnes, quon pourra appeler FACULTE.

    Hypothse de schma de relation universel : Un schma de base de donnes R satisfait lhypo-thse de schma de relation universelle si, lorsque deux attributs portent le mme nom, ils dsignent lemme concept.

  • 2.2. STRUCTURE 9

    Dfinition 2 (Premire forme normale) Un schma de relation R est en premire forme normale(note 1FN) si, pour tout attribut A R, DOM(A) est compos de valeurs atomiques.

    La premire forme normale est une condition fondamentale du modle relationnel, garante de sasimplicit et efficacit, et lhypothse de schma de relation universelle est toujours vrifis, permettantde dsigner de faon unique un attribut, sans aucune ambigut.

    Remarque Ces restrictions sont ncessaires assurer les fondements thoriques justes du modle rela-tionnel. En pratique, on trouve plus de souplesse dans les outils : Les types complexes sont autoriss dans plusieurs SGBD pour peupler les relations : il sagit en faitdextensions de la thorie de base, en utilisant une logique objet. Le modle utilis est alors appelrelationnel-objet (Exemple : Oracle). Il permet une modlisation plus intuitive pour les concepteurs,mais le modle utilis en fond par le SGBD pour stocker ses donnes est toujours le relationnel.

    Dans tous les outils existants, on peut nommer deux fois le mme attribut pour reprsenter des conceptsdiffrents (au sein dune relation, un attribut napparat toutefois quune seule fois. Par exemple, dansnotre base de donnes on pourrait imaginer un attribut NOM qui dsigne le nom dune salle de cours, etle mme attribut qui dsigne le nom dune personne ; ce serait une faute de conception, mais impossible vrifier par les outils !

    Un schma de relation, ou de bases de donnes, est donc une bote vide, avec une structure bienparticulire, destine contenir des ensembles dlments possdant la mme structure et donc smanti-quement quivalents.

    2.2.3 Tuples, relations et bases de donnes

    Dfinition 3 (tuple, Relation et Base de Donnes) Soit R = A1...An un schma de relation. Untuple sur R est un membre du produit cartsien DOM(A1) . . .DOM(An). Une relation r sur R estun ensemble fini de tuples. Une base de donnes d sur un schma de base de donnes R = {R1, ..., Rn}est un ensemble de relations {r1, ..., rn} dfinies sur les schma de relation de R.

    De faon informelle, on peut donc voir un tuple comme une squence de valeurs, prises par les attributsdu schma de relation. Si t est un tuple dfini sur un schma de relation R, et X un sous-ensemble de R,on peut restreindre t X en utilisant lopration de projection, note t[X].

    Exemple 3 Le tableau suivante reprsente graphiquement une relation etudiants sur le schma ETUDIANT .On suppose que le numro de formation est une rfrence vers une autre table qui dcrit les formations.

    NUM NOM PRENOM AGE FORMATION28 Codd Edgar 20 332 Armstrong William 20 453 Fagin Ronald 19 3107 Bunneman Peter 18 3

    Si on nomme t1 le premier tuple, alors t1[NOM ] = Codd, t1[NUM,AGE] = (28, 20). Lensemble detoutes les relations peuples par des tuples constitue la base de donnes.

  • 10 CHAPITRE 2. PRSENTATION DU MODLE RELATIONNEL

    2.3 Langages de requtes et de mises jourPlusieurs langages ont t dfinis pour linterrogation et la manipulation des donnes dans le modle

    relationnel. Le rsultat dune requte est toujours une relation : les langages diffrent sur la faon dedfinir la relation en sortie. Ils sont de deux sortes :

    les langages procduraux : cela signifie que, pour obtenir les rponses sa requte, il faut dterminero et comment aller rechercher linformation parmi les relations de la base. On dfinit la procduredevant tre excute par le programme. Le langage procdural du modle relationnel est lalgbrerelationnel. Il sagit dun ensemble doprateurs algbriques unaires et binaires applicables desrelations et retournant des relations : ils peuvent donc tre composs pour exprimer le rsultatsouhait.

    dclaratif : pour obtenir les rponses sa requte, il faut caractriser prcisment le rsultat que lonveut, sans se soucier de la mthode utilise par le programme pour accder aux donnes. Cest grce des expressions logiques quon dtermine le rsultat souhait : cest le cas du calcul relationnelde tuple (qui manipule des tuples dans des expressions logiques) ou de domaine (qui manipule desvariables parcourant les domaines), ou encore du DATALOG (admettant la rcursivit).

    Le SQL correspond limplantation du calcul relationnel de tuple : cest donc un langage dclaratif,possdant de nombreuses extensions pour faciliter lusage et augmenter le pouvoir dexpression.

  • Chapitre 3

    Contraintes dintgrit dans le modlerelationnel

    Sommaire3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Les principales dpendances de donnes . . . . . . . . . . . . . . . . . . . . . 12

    3.2.1 Dpendances fonctionnelles et cls . . . . . . . . . . . . . . . . . . . . . . . . . 123.2.2 Dpendances dinclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    3.3 Infrence, fermetures et couvertures de contraintes . . . . . . . . . . . . . . 143.3.1 Infrence de dpendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . 153.3.2 Infrence de dpendances dinclusion . . . . . . . . . . . . . . . . . . . . . . . . 163.3.3 Couvertures des DF et des DI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.1 GnralitsLa structure du modle relationnel dfinie plus haut permet de modliser la ralit un certain

    niveau de granularit : les attributs vont dcrire les objets, et on peut sparer les donnes dans diffrentesrelations avec des noms explicites. Mais ceci est largement insuffisant pour reprsenter plus finement lesdiffrents aspects des donnes relles.

    Exemple 4 Supposons le schma de relation ETUDIANT dcrit plus haut. Rien nempche lutilisateur : dinsrer plusieurs tudiants avec le mme numro mais des donnes diffrentes ; dinsrer deux fois le mme tudiant mais avec deux ges diffrents ; de mettre un numro farfelu dans la colonne FORMATION , ne rfrant aucune formation existante. As-t-on le droit dinsrer un tudiant dans plusieurs formations ? Il faut un mcanisme pour pouvoir leprciser.

    Rappel : en revanche, il est impossible davoir deux fois exactement le mme tuple dans une relation,puisque une relation est un ensemble (donc sans doublons) de tuples.

    Ce pouvoir dexpression est confr par les contraintes dintgrit, qui sont des expression logiquerestreignant lensemble des relations autorises dans une base de donnes. Le but est de pouvoir interdire

    11

  • 12 CHAPITRE 3. CONTRAINTES DINTGRIT DANS LE MODLE RELATIONNEL

    tous les cas dincohrence pouvant tre gnrs lors des mises jour, pour avoir des donnes collanttoujours la logique de la ralit. En effet, les applications sont souvent dveloppes en utilisantcertains postulats sur les donnes (exemple : le numro dtudiant est unique) - mais si ces postulats nesont pas vrifis, les applications vont gnrer des erreurs parfois imprvisibles.

    On distingue plusieurs types de contraintes : Contraintes statiques ; sont vrifies dans un tat donn de la base les dpendances de donnes les dpendances de domaine les contraintes de cardinalit

    Contraintes dynamiques ; vrifies sur deux tats diffrents de la base

    Exemple 5 Chaque tudiant a un numro unique : cette contrainte est statique, puisse tout moment, il

    suffit dobserver la base pour savoir si elle est bien respecte. Un tudiant ne peux pas avoir un ge qui dcrot : contrainte dynamique, car ne peut tre vrifie

    que dans deux tats successifs de la base.

    Les contraintes les plus importantes en conception des bases de donnes sont les dpendances dedonnes.

    3.2 Les principales dpendances de donnes

    Les plus connues et tudies sont : Les dpendances fonctionnelles Les dpendances dinclusion Les dpendances de jointure Les dpendances multi-valuesLes deux premires permettent de reprsenter les situations les plus communes, et sont largement les

    plus connues, tudies et utilises en pratique. Nous allons nous restreindre elles dans un premier temps- les dpendances de jointure et les dpendances multi-values seront prsentes plus loin.

    3.2.1 Dpendances fonctionnelles et cls

    Dans toute prsentation dune classe de dpendance, on distingue : La syntaxe : cest le langage logique autoris pour dfinir une contrainte. Cest la forme de lacontrainte.

    La smantique : ensemble de conditions devant tre remplies pour que la contrainte soit satisfaite(cest dire juste) dans les donnes. Cest le sens de la contrainte.

    La syntaxe des dpendances fonctionnelles est dfinie ainsi :

    Dfinition 4 (Dpendance fonctionnelle (DF)) Une dpendance fonctionnelle (DF) sur un schmade relation R est une expression de la forme R : X Y (ou simplement X Y lorsque R est implicite),o X,Y R. Une DF X Y est dite triviale si Y X et standard si X 6= .

    Une DF est donc une contrainte dfinie sur un schma. Une DF est dite valide sur un schma R sielle est satisfaite dans toute relation r sur R, selon de la dfinition suivante pour la satisfaction :

  • 3.2. LES PRINCIPALES DPENDANCES DE DONNES 13

    Dfinition 5 (Satisfaction dune DF dans une relation) Soit r une relation sur R. Une DFR : X Y est satisfaite dans r si t1, t2 r on a t1[X] = t2[X] = t1[Y ] = t2[Y ].

    Si X Y est satisfaite dans une relation r, on dit aussi que X dtermine Y dans r. De faon intuitive,on dfinit une DF X Y pour exprimer le fait que lorsquon connat la valeur de X, alors on peutdterminer (en parcourant la relation) de faon certaine la valeur de Y .

    La notion de cl dune relation est trs connue par les utilisateurs du modle relationnel. Une clpeut-tre dfinie de deux manires :

    une cl est un ensemble dattributs qui ne prend jamais deux fois la mme valeur (pas de doublonsdans les relations) ;

    A laide des DF : une cl est un ensemble dattributs qui dtermine (au sens des DF) tous les autresattributs de la relation.

    Ces deux dfinitions sont rigoureusement quivalentes.PreuveSoit X un ensemble dattributs sur un schma R sur lequel on interdit les doublons. Ainsi, la DF X R X ne peut tre viole dans aucune relation possible sur R, puisquil est impossible davoir deuxtuples qui ont la mme valeur sur X. Cela implique donc que la contraite X RX est valide sur R.Inversement, supposons que la DF X R X est valide sur R. Supposons une relation r sur R danslaquelle deux tuples t1 et t2 soient tels que t1[X] = t2[X]. Dans ce cas, on a galement t1[RX] = t2[RX]par application de la DF, et par consquence t1 = t2 - ce qui est impossible puisque r est un ensemble detuples (donc sans doublon). Donc quelque soit la relation r sur R, il ny a pas de doublon sur X. 2

    Une cl primaire est simplement une cl parmi les autres, choisie par le concepteur pour sa simplicitou son aspect naturel.

    3.2.2 Dpendances dinclusionLes DI se diffrencient des DF sur plusieurs points. Dabord, elles peuvent tre dfinies entre attributs

    de relations diffrentes, et possdent ainsi un caractre plus "global" que les DF dont la dfinition estlocale une relation (bien que lon parle parfois de DF globale [?], que nous nabordons pas ici). Ensuite,les DI sont dfinies non pas entre deux ensembles quelconques dattributs, mais entre deux squencesdattributs de mme taille. Cette fois, lordre des attributs est donc important.

    La syntaxe (forme) des DI est la suivante.

    Dfinition 6 (Dpendance dinclusion) Soit R un schma de base de donnes. Une dpendancedinclusion sur R est une expression de la forme R[X] S[Y ], o R,S R, X et Y sont des squencesdattributs distincts respectivement de R et de S, et |X| = |Y |.

    Pour ce qui est de la smantique des DI, lintuition est la suivante : une DI est satisfaite dans unebase de donnes si toutes les valeurs prises par la partie gauche apparaissent dans la partie droite.

    Dfinition 7 (Satisfaction dune DI) Soit d = {r1, ..., rn} une base de donnes sur un schmaR = {R1, ..., Rn} . Une dpendance dinclusion Ri[X] Rj [Y ] sur R est satisfaite dans d, not d |=Ri[X] Rj [Y ], si ti ri,tj rj | ti[X] = tj [Y ] (de manire quivalente, X(ri) Y (rj)).

    Exemple 6

  • 14 CHAPITRE 3. CONTRAINTES DINTGRIT DANS LE MODLE RELATIONNEL

    Supposons des schmas de relation pour dcrire les modules :

    MODULE = {NUMMODULE; INTITULE;DESC}

    et un schma de relation pour dcrire les sances de cours :

    SEANCE = {DATE;NUMMODULE;NUMSALLE}

    Pour forcer que les numros de modules dans les sances soient bien des modules qui existent, on devraalors dfinir la contrainte :

    SEANCE[NUMMODULE] MODULE[NUMMODULE]

    Supposons maintenant un schma de relation EMPRUNTVIDEO modlisant les rservations de vidospour les sances, sous la forme :

    EMPRUNTV IDEO = {DATE,NUMMODULE;NUMPROF ;NUMV IDEO}

    Pour assurer la cohrence de la base, on doit prciser que les vidos doivent tre rservs pour des sancesexistantes dans la base ; on dfinira alors la DI :

    EMPRUNTV IDEO[DATE,NUMMODULE] SEANCE[DATE,NUMMODULE]

    On peut remarque limportance de lordre dans les attributs ( ce sont des squences et non des ensembles) :si on inverse les attributs gauche par exemple, la DI change compltement de signification !

    Une contrainte dintgrit rfrentielle est une DI dont la partie droite est une cl ; la partie gauchedune contrainte dintgrit rfrentielle est appele cl trangre.

    Exemple 7 Les deux DI donnes dans lexemple prcdent sont des contraintes dintgrit rfrentielle,puisquon peut supposer que les parties droites sont des cls de leur relation. Les parties gauches sontdonc des cls trangres des relations SEANCE et EMPRUNTV IDEO.En revanche, les DI ne dfinissent pas toujours des cls trangres. Pour sen convaincre, il suffit dimaginerquon souhaite imposer que tous les cours possdent au moins une sance dans lanne : on dfinira alorsune DI

    COURS[NUMCOURS] SEANCE[NUMCOURS]

    Ainsi, tous les cours apparatront au moins une fois dans la relation des sances ; toutefois, NUMCOURSnest pas une cl de SEANCE (on imagine difficilement que tous les cours naient quune seule sance !)et donc ce nest pas une contrainte dintgrit rfrentielle.

    3.3 Infrence, fermetures et couvertures de contraintes

    Une classe de contraintes dintgrit correspond un type particulier de contraintes dintgrit sur unschma de relation ou de base de donnes. Par exemple, lensemble de toutes les dpendances fonctionnellessur un schma de relation R est une classe de contrainte dintgrit.

  • 3.3. INFRENCE, FERMETURES ET COUVERTURES DE CONTRAINTES 15

    Linfrence de contraintes est un concept fondamental pour la thorie des bases de donnes ; celaconsiste considrer les contraintes tant impliques par dautres contraintes. Les contraintes impliquessont tout aussi valides que les contraintes de dpart, mais souvent de faon implicite : elles chappentalors la connaissance du concepteur. Le paragraphe suivant introduit ces notions importantes en prenantcomme exemple les DF.

    3.3.1 Infrence de dpendances fonctionnelles

    Dfinition 8 (Implication de DF) Soit F un ensemble de DF sur un schma de relation R, et fune DF sur R. On dit que F implique f , not F |= f si pour toute relation r sur R telle que r |= F , ona r |= f .

    Exemple 8 Soit le schma

    ETUDIANT (NUMETUD,NOMETUD,NOMV ILLE,REGION,CP )

    et lensemble de DF sur ce schma :

    {NUMETUD NOMETUD,NOMV ILLE,REGION,CP ;NOMV ILLE,REGION CP}

    On comprend intuitivement que les deux DF suivantes seront galement valides, par implication :

    {NUMETUD NOMV ILLE,REGION ;NUMETUD CP}

    Si ces implications sont intuitives, il est toutefois difficile et fastidieux de prouver que chaque intuitionest bien juste ! Et surtout il est impossible dtre certain quon a bien pens toutes les DF impliquespar notre ensemble de DF de dpart. Pour palier ces difficults, et permettre un traitement automatiquedes contraintes, on dfinit la notion de rgles dinfrences.

    Dfinition 9 (Rgle et systme dinfrence) Une rgle dinfrence est une expression de la formeF f . Un systme dinfrence est un ensemble de rgles dinfrence. Si S est un systme dinfrence, onnote F `S f le fait quon puisse driver f partir de F par des applications successives de rgles de S.

    Le systme dinfrence des DF est le systme dArmstrong.

    Dfinition 10 (Systme dinfrence dArmstrong) Soit F un ensemble de DF sur un schma derelation R. Les rgles dinfrence de DF suivantes sont appeles systme dinfrence dArmstrong : Rflexivit : si Y X R alors F ` X Y . Augmentation : si F ` X Y et F `W R alors F `WX WY . Transitivit : si F ` X Y et F ` Y Z alors F ` X Z

    Si ce systme dinfrence est important pour les DF, cest quil possde les proprits suivantes : Il est juste, soit F ` f F |= f ;

  • 16 CHAPITRE 3. CONTRAINTES DINTGRIT DANS LE MODLE RELATIONNEL

    Il est complet, soit F |= f F ` f ; Il est minimal en nombre de rgles dinfrence.Une consquence de ce rsultat est que F |= F ` ; nous utiliserons dans la suite la notation

    F |= .Ainsi, le systme dArmstrong permet de systmatiser la recherche de toutes les DF impliques par

    dautres DF. Rigoureusement, on appelle problme dinfrence des DF le problme suivant : Soit F unensemble de DF, et f une DF, a-t-on F |= f ? La rsolution de ce problme est facile pour les DF, etplus prcisment linaire dans le nombre de DF en entre.

    Soit F un ensemble de DF, on note F+ (fermeture de F ) lensemble de toutes les contraintes f tellesque F |= f .

    Enfin, si X est un ensemble dattribut et F un ensemble de DF, on appelle fermeture de X parrapport F lensemble de tous les attributs quon peut dduire deX par des dpendances fonctionnelles.Naturellement, il faut aussi tenir compte des DF qui ne sont pas dans F , mais qui sont drivables partirde F . Donc :

    X+ = {A | F |= X A}

    ou encoreX+ = {A | X A F+}

    Remarque : On peut donner une dfinition alternative de la notion de cl dune relation : X est cldun schma R si et seulement si X+ = R

    3.3.2 Infrence de dpendances dinclusion

    Le systme dinfrence pour les DI est le suivant :

    Dfinition 11 (Systme dinfrence de Casanova et al.) Soit I un ensemble de DI sur unschma de base de donnes R. Les rgles dinfrence de DI suivantes sont appeles systme dinfrencede Casanova et al. : Reflexivit : I ` R[X] R[X]. Projection et permutation :si I ` R[A1...An] S[B1...Bn] alors I ` R[A1...Am] S[B1...Bm] pour chaque squence 1...mdentier distincts dans {1...n}

    transitivit : si I ` R[X] S[Y ] et I ` S[Y ] T [Z] alors I ` R[X] T [Z]

    Ce systme dinfrence est lui aussi juste, complet et minimal pour les dpendances dinclusion.Contrairement aux DF, le problme dinfrence des DI est PSPACE-complet, donc infaisable dans lecas gnral.

    La notion I+ sapplique aussi pour noter la fermeture dun ensemble de DI. En revanche, la notionde fermeture dun ensemble dattributs par rapport un ensemble de DI ne sapplique pas, car les DImanipulent des squences et non des ensembles.

    3.3.3 Couvertures des DF et des DI

    La notion de couverture est une relation dquivalence entre des ensembles de contraintes.

  • 3.3. INFRENCE, FERMETURES ET COUVERTURES DE CONTRAINTES 17

    Dfinition 12 (Couverture dun ensemble de DF) Soit et deux ensembles de contraintes. est une couverture de si + = +.

    Une couverture dun ensemble de DF est donc une reprsentation alternative, avec dautres DF, maisvhiculant une smantique rigoureusement quivalente : au final, cest exactement le mme ensemble deDF qui est implicite. Cest exactement la mme chose pour les DI.

    Trois proprits sont importantes pour les couvertures des DF - peu dtudes existent pour les DI. un ensemble F de DF est dit non redondant sil nexiste pas de couverture G de F telle que G F . un ensemble F de DF est dit minimum sil nexiste pas de couverture G de F tel que |G| |F |. F est dit optimum sil nexiste pas de couverture G de F avec moins dattributs que dans F .Remarque : une couverture minimum est non redondante, une couverture optimum est minimum.Lalgorithme suivant calcule une couverture minimum pour un ensemble F de DF.

    Require: F un ens de DFEnsure: G une couverture minimum de FG := ;for all X Y F doG := G {X X+} ;

    end forfor all X X+ G doif G {X X+} ` X+ thenG := G {X X+} ;

    end ifend forReturn G.

    Cet algorithme est polynomial dans le nombre de DF dans F et le nombre dattributs dans F . La cou-verture minimum calcule par lalgorithme nest pas forcment unique : dautres couvertures peuvent avoirle mme nombre de DF, mais tre diffrentes. Parmi celles-ci, certaines sont optimum ; malheureusement,leur calcul est un problme "NP-Complet" dans le cas gnral.

  • 18 CHAPITRE 3. CONTRAINTES DINTGRIT DANS LE MODLE RELATIONNEL

  • Chapitre 4

    Conception de bases de donnes

    Sommaire4.1 Anomalies de mise jour et redondance . . . . . . . . . . . . . . . . . . . . 194.2 Les pertes dinformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.2.1 Perte de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2.2 Perte de DF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.3 Les principales formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.1 Au del des dpendances fonctionnelles . . . . . . . . . . . . . . . . . . . . . . 23

    4.4 Comment normaliser une relation . . . . . . . . . . . . . . . . . . . . . . . . 244.4.1 Algorithmes de synthse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    4.5 Convertir un schma Entit/Association en schma relationnel . . . . . . . 264.5.1 Rappel : Le modle Entit-Association . . . . . . . . . . . . . . . . . . . . . . . 264.5.2 Traduction E/A vers relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Nous entendons par conception, dans ce cours, le fait de choisir une modlisation des donnes relles partir du cahier des charges des applications. La modlisation est en relationnel : il sagit donc dedterminer lensemble des attributs, des relations et des contraintes qui constitueront le modle.

    Nous allons voir dans la suite quelles sont les proprit attendues dune bonne modlisation en rela-tionnel, et comment les obtenir.

    4.1 Anomalies de mise jour et redondanceUne anomalie de mise jour lieu lorsque, la suite dune modification de la base, des contraintes

    smantiques valides se trouvent violes. Bien sr, des mcanismes de contrle sont intgrs aux SGBDRpour viter ce genre de problmes. Mais cel suppose :

    une perte de temps dans la gestion de la base, certains contrles pouvant tre assez lourds ; une implmentation rigoureuse de toutes les contraintes par le concepteur de la base. Sous Oracle,cel passe bien souvent par la mise en place de "Trigger" en PL/SQL.

    Le compromis est alors atteint en faisant lhypothse suivante : le concepteur nimplmente que lescls et les cls trangres. Le contrle automatique de ces contraintes est peu coteux par le SGBD, etleur implmentation est toujours intgre dans les SGBDR. Ainsi, on considre que toute mise jourrespecte les cls.

    19

  • 20 CHAPITRE 4. CONCEPTION DE BASES DE DONNES

    R a une anomalie de mise jour par rapport F sil est possible dinsrer ou de modifier un tuple ttel que :

    r t |= CLE(F ), o CLE(F ) est lensemble des cls induites par F . r t 6|= F .

    Exemple 9 Supposons le schma de relation

    ETUDIANT (NUMETUD A,NOM B, V ILLE C,CP D,DPT E)

    muni de lensemble de DFA BCD,CD E

    La seule cl minimale de la relation est donc A (Toutes les autres cls sont des sur-ensembles de A).Supposons quun tuple soit insr pour un nouvel tudiant, avec une ville et un CP dj prsent mais undpartement diffrent. La cl ne sera pas viole (pas de doublon sur A) mais la DF CD E ne seraplus satisfaite. Puisquun tel cas de figure est possible, la relation ETUDIANT possde une anomalie demise jour.

    Une suppression ne peut entraner aucune anomalie proprement dite ; toutefois, elle peut engendrerune perte involontaire dinformation, li la redondance dans les donnes. Dans lexemple prcdent, sion supprime tous les tudiants de LYON, on aura galement perdu le code postal et le dpartement deLyon, mme si on souhaitais garder cette information.

    La notion de redondance est une autre faon de considrer les problmes de mises jour. Elle se dfinitsur les relations, alors les problmes de mise jour portent sur des schmas.

    Dfinition 13 (U) ne relation r sur R est redondante par rapport un ensemble F de DF sur R si :1. r |= F et2. il existe X A F et t1, t2 r tels que t1[XA] = t2[XA].

    Exemple 10 Reprenons lexemple prcdent, et considrons cette fois la relation suivante sur le schmaETUDIANT :

    NUMETUD NOM VILLE CP DPT1 Fagin Lyon 69003 Rhne2 Armstrong Lyon 69001 Rhne3 Bunneman Clermont 63000 Puys-de-Dme4 Codd Lyon 69001 Rhne

    Cette relation est bien correcte car elle respecte les DF. Nanmoins, elle est redondante car il existe undoublon sur (V ille, CP ) : linformation du dpartement de LYON 1er apparat deux fois.

    On voit bien que les notions danomalie de mise jour et de redondance sont trs lies - elles sont enfait quivalentes, selon le rsultat suivant.

    Thorme 1 Il y a quivalence entre : R a une anomalie de mise jour par rapport F ,

  • 4.2. LES PERTES DINFORMATION 21

    Il existe une relation r sur R qui est redondante par rapport F .

    4.2 Les pertes dinformation

    Le principe de base est alors de dcomposer les relations de telle sorte dviter davoir ces anoma-lies, cest dire de transformer une relation en plusieurs relations. Avec des schmas de relation unseul attribut, il ny a plus aucun problme de redondance ! Le risque en dcomposant est de perdre delinformation.

    4.2.1 Perte de donnes

    Tout dabord, il faut que toutes les informations de la base de donne initiale puissent tre retrouvesen effectuant des jointures sur les relations issues de la dcomposition.

    Soit R un schma de relation (cest dire un ensemble dattributs), que lon dcompose en un schmade base de donnes (un ensemble de relations) R = {R1, . . . , Rn}. On dira alors que R est sans perte dejointures par rapport un ensemble F de dpendances fonctionnelles si, pour toute relation r sur R telleque r |= F on a :

    r = R1(r) . . . Rn(r)

    Exemple 11 Reprenons la relation de lexemple prcdent. Supposons que pour rgler le problme deredondance, on dcoupe le schma en deux de faon obtenir les relations suivantes :

    NUMETUD NOM1 Fagin2 Armstrong3 Bunneman4 Codd

    VILLE CP DPTLyon 69003 RhneLyon 69001 Rhne

    Clermont 63000 Puys-de-Dme

    4.2.2 Perte de DF

    Ensuite, il ne faut pas que la dcomposition ait "coup" des dpendances fonctionnelles, ce qui condui-rai une perte invitable de smantique. Pour cela, on dfinit la notion de projection dun ensemble dedpendances fonctionnelles :

    Dfinition 14 (projection dun ensemble de DF) Soit F un ensemble de DF sur R, et S unschma de relation tel que S R.

    F [S] = {X Y | X Y F et XY S}

  • 22 CHAPITRE 4. CONCEPTION DE BASES DE DONNES

    La projection sur un schma de bases de donnes est lunion des projection sur chaque relation duschma.

    Soit R un schma de relation et F un ensemble de DF sur R. Un schma de relation R est unedcomposition qui prserve les dpendances de R par rapport F si :

    F [R]+ = F+

    4.3 Les principales formes normales

    Les formes normales sont des proprits que doivent vrifier les schmas pour viter les anomalies demises jour. Plusieurs formes normales ont t dfinies. Une forme normale sapplique un schma derelation, en fonction dun certain ensemble de contraintes dune classe donne. Concernant les DF, lidegnrale est de navoir que les cls vrifier, et dliminer au maximum des DF qui ne dfinissent pas descls. Dans la suite, soit R un schma de relations et F un ensemble de DF dfinies sur R.

    Rappel : en relationnel, on est toujours en premire forme normale, soit toutes les valeurs des attributssont atomiques.

    Dfinition 15 (2FN) R est en deuxime forme normale par rapport F si, pour chaque DF X Ade F , lune des deux conditions suivantes est remplies : A appartient une cl de R, X nest pas un sous-ensemble propre dune cl de R

    Donc, aucun attribut (en dehors de ceux qui forment les cls), ne sont dtermins par des sous-ensembles des cls.

    Par contre, mme en dehors des cls, certains attributs peuvent tre dtermins par des ensemblesqui ne sont pas des sous-ensembles des cls. Ce qui est exclu dans la troisime forme normale.

    Dfinition 16 (3FN) R est en troisime forme normale par rapport F si, pour chaque DF X Ade F , lune des deux conditions suivantes est remplies : A appartient une cl de R, X est une cl (ou une supercl)

    Ainsi, les seules DF "parasites" autorises dans la troisime forme normale sont celles dont la partiedroite est un attribut membre dune cl.

    Enfin, la forme normale de Boyce-Codd impose que toutes les parties gauches des DF sont des cls.

    Dfinition 17 (FNBC) R est en forme normale de Boyce-Codd par rapport F si, pour chaque DFX A de F , X est une supercl de R.

    Remarques : Si toutes les cls dune relation sont composes dun seul attribut, alors la troisime forme normaleest quivalente la forme normale de Boyce-Codd.

    Si une relation nest compose que dun ou deux attributs, elle est en FNBC.

  • 4.3. LES PRINCIPALES FORMES NORMALES 23

    La FNBC est, en ce qui concerne les DF, la forme idale dun schma de bases de donnes. En effet,les trois proprits suivantes sont quivalentes :

    R est en FNBC par rapport F ; R na pas de problme de redondances par rapport F ; R na pas de problme de mise jour par rapport F ;Ajoutons que la troisime forme normale est toujours possible, quelque soit les DF considres - la

    deuxime forme normale na donc quun intrt historique. En revanche, il existe des situations o laFNBC nest pas possible.

    Exemple 12 Un exemple type : une rencontre sportive entre quipes, dans laquelle chaque quipeprsente un seul athlte dans chaque preuve ; le mme athlte peut faire plusieurs preuves. On a donc(Equipe,Epreuve,Athlte) avec les DF :

    (Equipe,Epreuve Athlte;Athlte Equipe)

    Quelle que soit la dcomposition sans perte ralise, elle nest pas en FNBC (essayer toutes les dcom-positions imaginables partir de ces trois attributs)

    Dans un tel cas, il faut soit : Accepter de ne pas tre en BCNF, et donc accepter davoir une anomalie de mise jour. En dautretermes, on ne pourra pas se contenter de dclarer les cls, mais il faudra implmenter les DF (Triggersous un SGBD, ou au niveau de lapplication) qui ne sont pas des cls.

    Accepter de relcher des contraintes, cest dire enlever quelques DF et rendre lapplication "plussouple".

    On peut aussi rajouter des attributs et des DF. Dans lexemple, on peut rajouter un attribut qui"regroupe" les couples Equipe/Epreuve. On obtiendrait :

    (Equipe,Epreuve,N Equipe/Epreuve,Athlte)

    ainsi que les DF(Equipe,Epreuve N Equipe/Epreuve)

    (N Equipe/Epreuve Equipe,Epreuve,Athlte)

    etAthlte Equipe

    La dcomposition en FNBC est alors possible, et aucune smantique nest perdue.

    4.3.1 Au del des dpendances fonctionnelles

    Les dpendances fonctionnelles nous ont permis jusque-l de mettre en vidence une forme de redon-dance, que les formes normales cherchent faire disparatre. Mais des cas de redondance ne sont pascapturs par les DF.

    Exemple 13Supposons lnonc suivant : les tudiants suivent des parcours, et sont inscrits dans des transversalesindpendantes du parcours. Chaque tudiant peut tre inscrit plusieurs parcours. Soit la modlisationsuivante :

  • 24 CHAPITRE 4. CONCEPTION DE BASES DE DONNES

    R(etudiants, parcours, transversale)

    On ne peut dgager aucune DF dans ce schma, donc la seule cl est la combinaison des trois attributs.

    La relation de lexemple prcdent est donc en FNBC, puisquaucune DF nest valide. On se rendbien compte pourtant de la redondance prsente dans ce schma, car il faudra, pour chaque tudiant,rpter tous les parcours chaque transversale suivie. En effet, si on ne le fait, on risque dinduire unedpendance entre les parcours et les transversales qui nest pas vraie.

    La notion qui permet de modliser cette redondance est celle de dpendance multivalue. De faonintuitive, une dpendance multivalue sert modliser que deux informations sont lies indpendammentdes autres informations.

    On notera :etudiants > > parcours|transversale

    pour signifier que "une tudiant est associ plusieurs parcours et plusieurs transversales, indpen-damment". Une telle contrainte est satisfaite dans la relation r si xyz xyz r implique xyz et xyz r.

    Ainsi, on peut dcomposer la relation est deux relations

    R1(etudiants, parcours);R2(etudiantstransversale)

    Linformation pourra tre retrouve par jointure : en dautres termes, on peut dcomposer car lajointure reconstruira exactement la relation initiale (sans tuple supplmentaires).

    On dira alors que R est en Quatrime forme normale, ce qui correspond R est en troisime forme normale les seules dpendances multivalues sont du type X > > RX. Ou encore, R ne doit pas tre

    dcomposable en deux relations sans perte de jointure.Remarque : 4FN 3FN 2FN.

    4.4 Comment normaliser une relationUn algorithme de normalisation prend en entre une relation et des contraintes, et construit un schma

    de BD normalis, en 3FN ou en BCNF. Il existe deux grandes catgories dalgorithmes de normalisation :les algorithmes de dcomposition et les algorithmes de synthse. Nous ne verrons ici que les algorithmesde synthse.

    4.4.1 Algorithmes de synthseEntre : une relation universelle (lensemble de tous les attributs du problme) et un ensemble de

    contraintes : DF, DI, DMV.On commence par rpertorier tous les attributs et construire ainsi la relation universelle de notre

    application. Puis on dresse linventaire des contraintes DF, DI, DMV.Principe gnral Construire une couverture minimum de F , et rduire les parties gauches et droites au maximum Gnrer une relations XY pour chaque DF X Y ; Gnrer une relations XY pour chaque DMV X > > Y avec F |= Y Y ; On supprime les schmas de relation qui ne sont pas maximaux par inclusion. Sil y a perte de jointure, alors on rajoute une relation compose dune cl de F .

  • 4.4. COMMENT NORMALISER UNE RELATION 25

    A partir de cette base, de nombreuses variantes incluent des heuristiques pour diminuer la redondanceen sortie.

    Proprits : lalgorithme finit toujours, en donnant la meilleure forme normale (FNBC si elle existe,4FN sinon)

    Lalgorithme suivant est utilis pour rduire les parties gauches et droites des DF dune couvertureminimum. Attention, cet algorithme ne calcule pas une couverture optimum, qui contiendrait le nombreminimal dattributs (qui est un problme NP-Complet). Ici, le nombre dattribut est simplement minimalpour lensemble de DF pris en entre.

    Algorithm 1 Rduction du nombre dattribut pour un ensemble de DFRequire: Un ensemble minimum de DF F sur R.Ensure: F avec un nombre minimal dattributs1: Min := F2: //Rduction des parties gauches3: for all X Y Min do4: W := X ;5: for all A X do6: if Min |= (W A) X then7: W := W {A} ;8: end if9: end for

    10: Min := (Min {X Y }) {W Y } ;11: end for12: //Rduction des parties droites13: for all X Y Min do14: W := Y ;15: for all A Y do16: G := (Min {X Y }) {X (W A)} ;17: if G |= X Y then18: W := W {A} ;19: end if20: end for21: Min := (Min {X Y }) {X W} ;22: end for23: Retourner Min ;

    Exemple 14On gre une liste de projets. Chaque projet a un responsable, un ensemble demploys, et utilise certainsproduits en une quantit donne. Pour un produit et un projet, plusieurs fournisseurs des cout diffrentssont concerns. Un fournisseur a plusieurs adresses. Finalement, un employ a une date dembauche etun salaire.Soit (Projets, produits, fournisseur, adresse, cout, responsable, employs, salaire, dateEmbauche).Les DF sont :

    Projet, produit quantite;Projet, fournisseur, produit cot

  • 26 CHAPITRE 4. CONCEPTION DE BASES DE DONNES

    projet responsable; employe salaire, dateEmbauche

    et on a deux MVD :

    Fournisseur > > Location; projet > > employe, salaire, dateEmbauche

    Aprs application de lalgorithme, on obtient les relations suivantes : (Projet, Produit,Qute), (Projet, Fournisseur, produit, cout), (Projet, responsable), (employe, salaire, dateEmbauche), (fournisseur, location), (projet, employe).

    4.5 Convertir un schma Entit/Association en schma relation-nel

    4.5.1 Rappel : Le modle Entit-Association

    Le modle Entit-Association est un modle de donnes incomplet, dans le sens o il ne fournitaucun moyen de manipuler ou dinterroger les donnes. Sa popularit provient du fait quil permet dereprsenter la smantique des donnes dune application dune manire relativement simple, intuitive pourun non spcialiste. Il facilite alors la tche du concepteur dune base de donnes, et possde lavantagede parfaitement distinguer la spcification de la smantique des donnes de limplantation physique de labase, et plus gnralement du modle de donnes qui sera choisi par la suite pour la gestion effective dela base.

    La part la plus importante et la plus populaire fournie par le modle EA est le diagramme entit-association, qui permet une reprsentation visuelle (relativement... ) intuitive des donnes. On distinguedeux types dobjets diffrents : les entits et les associations entre entits. Plusieurs propositions ont tfaites concernant les reprsentations graphiques des entits et associations ; celles utilises ici sont unepossibilit parmi dautres, lessentiel tant de comprendre les concepts abords.

    Les entits

    Une entit est une "chose" qui peuple les donnes reprsenter. Dans lexemple, une entit peut treun employ donn, ou un service, ou encore un auteur. Une entit appartient un ou plusieurs typesdentit. Par exemple, une personne de lentreprise peut tre la fois un employ et un auteur.

    Un type dentit est donc une collection dentits ; il est dcrit par un nom unique, et par une sriedattributs. Parmi les attributs, on distingue :

    Les attributs mono-valus : chaque entit du type entit concern prend au plus une valeur pourcet attribut. Par exemple, un document possde un seul titre, un seul numro didentification, uneseule date de parution.

    Les attributs multi-valus : pour une entit donn, un tel attribut peut prendre plusieurs valeurs.Par exemple, un document peut avoir plusieurs mots-cls, ou un employ peut avoir un ou plusieursprnoms.

  • 4.5. CONVERTIR UN SCHMA ENTIT/ASSOCIATION EN SCHMA RELATIONNEL 27

    Auteur

    Personne

    NSSNomPrnomAdresse

    Service

    NomServiceDescription

    Employ

    NBureauTelPro

    Document

    NDocTitreNbPage

    isa isa

    Effectue

    1

    nGre

    n

    1

    Ecrit

    rang

    n

    n

    Emprunt

    DateDateRetour

    id

    Exemple de diagramme Entit/Association

  • 28 CHAPITRE 4. CONCEPTION DE BASES DE DONNES

    Certains attributs peuvent tre des cls de leur entit, cest dire quils identifient de faon uniquechaque entit dun type dentit donn. Par exemple, le nom dun service, ou le numro NSS dun employsont des cls. Chaque type dentit doit avoir au moins une cl primaire, qui une cl choisie parmi lesautres. Graphiquement, la cl primaire sera souligne pour la distinguer des autres attributs.

    Les associations

    Un type dassociation est une association entre plusieurs types dentits. nous nous limiterons iciaux types dassociations binaires, cest dire des types dassociations entre deux types dentits. Parexemple, ECRIT est un type dassociation entre les types dentit DOCUMENT et AUTEUR. Un typedassociation correspond donc un ensemble dassociations qui peuplent les donnes. Une association detype ECRIT est donc une paire particulire compose dune entit de type document et dune entit detype auteur.

    Un type dassociation peut tre dcrite par des attributs. Sur le type dassociation ECRIT, lattributrang dnote, pour une association compose dun auteur et dun document, quelle est la place de lauteurparmi lensemble des auteurs de ce document (premier auteur, deuxime auteur, etc...). Une associationest identifie partir des valeurs de cls primaires des entits participantes.

    Les types dassociations peuvent tre classs en trois catgories, suivant le nombre de fois quune entitdonne peut participer une association.

    Les types dassociations nn(ou plusieurs plusieurs). Une entit peut alors participer plusieursassociations de ce type. Exemple : lassociation ECRIT entre AUTEUR et DOCUMENT est uneassociation n-n ; un auteur particulier peut crire plusieurs documents, et un document peut-trecrit par plusieurs auteurs.

    Les types dassociation 1 n (ou un plusieurs). Les deux types dentits impliqus ne jouent pasalors des rles symtriques. Une entit particulire du premier type pourra participer plusieursassociations. Une entit particulire du deuxime type ne pourra participer qu au plus une seuleassociation.

    Exemple 15 Sur lexemple, le type dassociation MEMBRE, qui associe des entits de type SER-VICE avec des entits de type EMPLOYEE, est une association 1 n. Un employ ne peut treassoci qu un seul service, alors quun service peut tre associ plusieurs employs.

    Les types dassociation 1 1. Toute entit ne peut participer quune seule fois une association dece type.

    Remarque - les cardinalits 1 et n se lisent "au plus 1" ou "au plus n". Il sagit de cardinalitsmaximales ; une entit peut ne participer aucune association. Par exemple, on peut avoir des documentsqui nont pas dauteurs, des employs qui nont pas de service. Notons quil est toutefois possible decontraindre des entits participer certaines associations, ce que nous ne dtaillerons pas ici.

    Les associations existentielles, ou entits faibles

    Un type dentit faible est un type dentit particulier : lexistence dune entit de type faible dpendde lexistence dune autre entit. Le lien entre une entit faible et lentit forte correspondante est appelassociation existentielle. Nous en distinguerons deux sortes :

    Associations ISA Elles permettent de coder la notion dhritage entre types dentits. Chaque entitdu type faible est compltement identifi par une entit du type fort correspondant. Par exemple, un

  • 4.5. CONVERTIR UN SCHMA ENTIT/ASSOCIATION EN SCHMA RELATIONNEL 29

    employ est une personne particulire. Il en possde toutes les caractristiques, ainsi que des propritssupplmentaires comme le numro de bureau ou la date dembauche. Notons que lentit faible et lentitforte apportent des informations diffrentes sur un seul et mme objet conceptuel.

    Graphiquement, ce lien est reprsent par une flche tiquete "ISA".

    Associations ID Dans ce cas, lentit faible et lentit forte ne correspondent pas au mme objet, maisil existe un lien de "subordination" entre les deux. Lentit faible a tout simplement besoin de lexistencede lentit forte. Sur lexemple, le type dentit EMPRUNT est faible. Lexistence dun emprunt particulierdans la base de donnes est dpendante de lexistence du document correspondant. Ce lien de dpendancese traduit par le fait que la valeur de la cl de lentit "dominante" se retrouve parmi la cl de lentitfaible. Dans lexemple, la cl dun emprunt est donne par la cl du document correspondant, laquelleon ajoute la date de lemprunt. Muni de ces deux caractristiques, un emprunt est parfaitement identifi.

    Graphiquement, le lien entre un type dentit faible et le type dentit auquel il est rattach est not"ID".

    4.5.2 Traduction E/A vers relationnel

    IntroductionPrsentation du modle relationnelIntroductionStructureAttributs, valeurs et domainesSchmas de relations, schmas de bases de donnes et premire forme normaleTuples, relations et bases de donnes

    Langages de requtes et de mises jour

    Contraintes d'intgrit dans le modle relationnelGnralitsLes principales dpendances de donnesDpendances fonctionnelles et clsDpendances d'inclusion

    Infrence, fermetures et couvertures de contraintesInfrence de dpendances fonctionnellesInfrence de dpendances d'inclusionCouvertures des DF et des DI

    Conception de bases de donnesAnomalies de mise jour et redondanceLes pertes d'informationPerte de donnesPerte de DF

    Les principales formes normalesAu del des dpendances fonctionnelles

    Comment normaliser une relationAlgorithmes de synthse

    Convertir un schma Entit/Association en schma relationnelRappel : Le modle Entit-AssociationTraduction E/A vers relationnel