C Introduction aux Bases de Donn©es Relationnelles E amelie/   CPGE I E C E Introduction aux Bases

  • View
    213

  • Download
    0

Embed Size (px)

Text of C Introduction aux Bases de Donn©es Relationnelles E amelie/   CPGE I E C E Introduction...

  • CPGEINF

    OR

    MA

    TIQ

    UE

    CO

    MM

    UN

    E

    Introduction auxBases de DonnesRelationnelles

    Serge AbiteboulInria, ENS Cachan, Conseil national du numrique

    serge.abiteboul@inria.fr

    Benjamin NguyenUniversit de Versailles St-Quentin-en-Yvelines, Inria

    benjamin.nguyen@uvsq.fr

    Yannick Le BrasMathmatiques MPSI, Lyce Montesquieu, Le Mans

    yannick.le-bras@prepas.org

  • 2

  • Logic is the beginning of wisdom, not the end.Mr. Spock, Star Trek

    3

  • 4

  • Table des matires

    1 Introduction 71.1 Les principes et larchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Le calcul et lalgbre relationnels . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3 Loptimisation de requte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.4 Les transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5 Conception dune Base de Donnes . . . . . . . . . . . . . . . . . . . . . . . . . 141.6 Notions du programme officiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2 Le Calcul Relationnel 172.1 Objectif du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Concepts des Bases de Donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.2.1 Dfinitions et Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3 Calcul conjonctif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.3.1 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.3.2 Formules bien-formes du calcul conjonctif . . . . . . . . . . . . . . . . . . 202.3.3 Exercices corrig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.4 Calcul relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4.1 Formules bien-formes du calcul relationnel . . . . . . . . . . . . . . . . . 232.4.2 Exercices corrigs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.4.3 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3 LAlgbre Relationnelle 273.1 Objectif du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2 Algbre conjonctive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3 Algbre relationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.4 Thorme dEquivalence de Codd . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    4 SQL et Requtes Agrgat 334.0.1 Objectif du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    4.1 Le langage de dfinition de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . 334.2 Le langage de manipulation de donnes . . . . . . . . . . . . . . . . . . . . . . . 354.3 Linterrogation des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    4.3.1 La syntaxe SQL du SELECT, FROM, WHERE . . . . . . . . . . . . . . . 364.3.2 Traduction en calcul relationnel . . . . . . . . . . . . . . . . . . . . . . . . 374.3.3 Traduction en algbre relationnelle . . . . . . . . . . . . . . . . . . . . . . 374.3.4 Exemple de requtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    4.4 Requtes agrgats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.5 Requtes ensemblistes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.6 Tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    5

  • TABLE DES MATIRES

    5 Exercices 415.1 Objectif du chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.2 Activits du Programme Officiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    5.2.1 Installation du SGBD MySQL, du serveur web Apache, de lapplicationPHPMyAdmin et de la BD banque-simple . . . . . . . . . . . . . . . . . . 42

    5.2.2 De la prsentation des exercices . . . . . . . . . . . . . . . . . . . . . . . . 475.2.3 Mthodologie pour rpondre une question . . . . . . . . . . . . . . . . . 485.2.4 Requtes sur une base de donnes existante . . . . . . . . . . . . . . . . . 49

    5.3 Corrigs des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.4 Exercices hors programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    6

  • 1 IntroductionNous allons parler de systmes informatiques qui nous aident grer des donnes. Nous avons

    donc, dun ct, un serveur de donnes quelque part sur la Toile, avec des disques magntiques 1 etleurs pistes qui gardent prcieusement des squences de bits, des structures daccs compliquescomme des index ou des arbres-B, des hirarchies de mmoires avec leurs caches et, de lautre,un utilisateur. Supposons que le serveur soit celui dIMDb qui gre une base de donnes sur lecinma. Supposons que lutilisateur, disons Alice, veuille savoir quels films ont t raliss parAlfred Hitchcock. Pour ce faire, elle spcifie des mots-cls ou remplit les champs dun formulairepropos par IMDb. Sa question voyage depuis son navigateur jusquau serveur de donnes. L,cette question est transforme en un programme peut-tre complexe qui sexcute pour obtenirla rponse. Ce qui est important : ce programme, Alice na pas envie de lcrire ; elle na pas lcrire.

    Le systme lmentaire qui permet de grer des donnes est un systme de fichiers. Un fichierest une squence de bits qui peut reprsenter une chanson, une photo, une vido, un courriel, unelettre, un roman, etc. Votre ordinateur personnel et votre tlphone stockent leurs donnes dansdes systmes de fichiers. Et parfois quand vous ne savez plus o vous avez mis quelque chose, vousfaites des recherches dans ces systme de fichiers. Cest rudimentaire. Un moteur de recherchede la Toile ne fait pas autre chose, seulement il le fait sur un systme de fichiers lchelle de laplante. Dans ce chapitre, nous parlerons de systmes qui grent aussi des donnes mais qui sontbien plus sophistiqus que les systmes de fichiers : les systmes de gestion de bases de donnes.Ce sont des logiciels complexes, rsultats de dizaines dannes de recherche et de dveloppement.Ils permettent des individus ou des programmes dexprimer des requtes pour interroger desbases de donnes ou pour les modifier. Nous nous focaliserons ici sur les plus rpandus dentreces systmes, les systmes relationnels, parmi lesquels nous trouvons des logiciels commerciauxtrs rpandus comme celui dOracle et des logiciels libres trs utiliss comme MySQL.

    Dans ce livre, nous couvrons le programme des classes prparatoires scientifiques, toutefoisil nous est paru indispensable daller au del dune interprtation stricte du programme, pourpermettre au lecteur de comprendre les fondements de la thorie des bases de donnes, sanslaquelle il ne serait quun simple utilisateur de SGBD. Nous indiquons les lments qui sont la limite du programme par la notation , et ceux qui sont au del par la notation .

    1.1 Les principes et larchitecture

    Au fil des ans, trois grands principes ont merg qui ont faonn le domaine de la gestion dedonnes :

    Abstraction : Un systme de gestion de bases de donnes sert de mdiateur entre des

    1. lheure actuelle, un nombre croissant de serveurs utilisent dsormais des disques bass sur de la mmoireFlash, appels Solid State Drive (SSD). Les travaux historiques sur les systmes de gestion des bases de donns fontlhypothse de lutilisation de disques magntiques. Loptimisation des SGBD aux disques SSD est du domainede la recherche actuel (voir [?]).

    7

  • 1

    CHAPITRE 1. INTRODUCTION

    (a) ClientServeur (b) Trois Tiers (c) Base de donnes dans les nuages

    Figure 1.1 Architectures principales

    individus et des machines. Pour mieux sadapter aux individus, il doit organiser et prsenterles donnes de faon intuitive et permettre de les manipuler en restant un niveau abstraitsans avoir considrer des dtails dimplmentation.

    Indpendance : nous distinguons trois niveaux, physique, logique et externe, que lon es-saie de rendre le plus indpendants possible. Au niveau externe, nous trouvons les vuesdutilisateurs particuliers qui partagent la base de donnes. Chaque vue est adapte auxbesoins de lutilisateur. Au niveau logique, nous trouvons une organisation unique des don-nes typiquement dans le modle relationnel que nous dtaillons plus loin. Et au niveauphysique, les dtails de lorganisation sur disque et de structures comme des index dontle rle est dacclrer les calculs. Le but est de pouvoir modifier un niveau (par exemple,ajouter un nouvel utilisateur avec de nouveaux besoins) sans modifier les autres niveaux.

    Universalit : Ces systmes visent capturer toutes les donnes dune entreprise, dungroupe, dune organisation quelconque, pour tout type dapplications. Il leur faut doncoffrir des langages de dveloppement dapplications puissants et une gamme de fonction-nalits trs riche. Des limites de cette universalit existent aujourdhui pour les systmesrelationnels : normment de donnes moins structures sont par exemple gres dans dessystmes de fichiers.

    Mentionnons brivement les architectures les plus rpandues de systmes de gestion de don-nes. Voir Figure ??. Une premire architecture est celle des systmes client/serveur. La base dedonnes est gre sur un serveur. Lapplication tourne sur une autre machine, le client. De plusen plus, cette architecture se complique avec lintroduction dun troisime tiers (ce qui signifieen ralit niveau en anglais), une machine qui gre linterface, typiquement un navigateur Websur une tablette ou un laptop.

    Nous pouvons noter diffrentes volutions gnres par des amliorations dans les matrielsdisponibles