Conception des bases de données relationnelles

Embed Size (px)

Text of Conception des bases de données relationnelles

  • 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 dvel