Creation de Bases de Donnees

download Creation de Bases de Donnees

of 205

Transcript of Creation de Bases de Donnees

Informatique

Synthse de cours

& exercicescorrigs

Cration de bases de donnesToutes les tapes de la cration dune base de donnes, de lanalyse la ralisation laide du langage SQL Les mcanismes de prservation et de scurisation des donnes Des ressources sur www.pearson.fr : chiers des donnes et textes des requtes

collection

Synthex

Nicolas Larrousse

Informatique

Synthse de cours

&

exercices corrigs

Cration de bases de donnesNicolas Larrousse CNRSAvec la contribution de ric Innocenti Universit de Corse Pasquale Paoli

Synthex

collection

ISBN : 978-2-7440-7386-1 ISSN : 1768-7616

2009 Pearson Education France Tous droits rservs

Composition sous FrameMaker : IDT

Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues l'article L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans l'autorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues l'article L. 122-10 dudit code.

SommaireLauteur Le relecteur Avant-propos Chapitre 1 Introduction aux bases de donnes 1 Quest-ce quune base de donnes ? 2 volution des bases de donnes et de leur utilisation 3 Systmes de gestion de bases de donnes 4 tapes de la conception des bases de donnes 5 Mtiers des bases de donnes 6 Plan de louvrage 7 Prsentation de la BD exemple Exercices Chapitre 2 Analyse du monde rel 1 Dmarche danalyse 2 Modlisation par le modle entit-association 3 Remise en cause et volution du modle 4 Reprsentation avec UML Exercices Chapitre 3 Approche relationnelle 1 Concepts 2 Oprations du modle relationnel 3 Passage du modle conceptuel au relationnel 4 Normalisation5 Logique du premier ordre et base de donnes

V VII IX 1 2 4 13 17 19 20 20 22 27 28 30 35 40 44 55 56 60 68 7076

Exercices Chapitre 4 SQL 1 Concepts du langage SQL 2 Oprations relationnelles avec SQL 3 Gestion de tables et de vues 4 Gestion des donnes Exercices

82 95 96 97 110 116 120Sommaire III

Chapitre 5 Du langage parl SQL 1 Prsentation de lactivit modliser 2 laboration du modle entit-association 3 Passage au modle relationnel 4 Interrogation de la base de donnes Exercices Chapitre 6 Prservation des donnes 1 Contrle daccs et sauvegarde 2 Limitations daccs au SGBD 3 Transactions 4 Triggers Exercices Annexe Bibliographie Index

127 128 129 134 141 148 157 158 161 166 173 176 183 189 191

IV

Cration de bases de donnes

LauteurNicolas Larrousse est ingnieur au CNRS. Spcialis en informatique, il enseigne les bases de donnes au niveau Master luniversit de Versailles Saint-Quentin-en-Yvelines et au service de formation permanente de luniversit Pierre et Marie-Curie Jussieu. Il est responsable dun atelier sur les outils informatiques pour le master de sciences cognitives de lcole normale suprieure (Ulm). Il a mis en place une formation de type IUP (bac + 4) en informatique luniversit dAntananarivo (Madagascar). Il a particip la conception et la mise en uvre de nombreuses bases de donnes, essentiellement dans le domaine documentaire lINIST (CNRS). Il est impliqu dans le programme des formations TRANSFER de lAUF (Agence universitaire de la francophonie), o il soccupe plus particulirement des formations rseaux et des certifications Linux.

Avant-propos V

Le relecteurric Innocenti est matre de confrences en informatique luniversit de Corse Pasquale Paoli. Il est responsable pdagogique des filires SRC (Services et Rseaux de Communication) et LPM (Licence Professionnelle Multimdia). Il enseigne lalgorithmique, la programmation ainsi que les systmes dinformation lInstitut universitaire de technologie. Son parcours professionnel la conduit de la gestion informatique pour le compte de socits prives la recherche universitaire o il travaille sur la modlisation et la simulation informatique des systmes complexes. Il est galement auteur de progiciels de gestion et continue dexercer la fonction danalyste consultant auprs dentreprises et dadministrations.

Le relecteur VII

Avant-proposObjectifs de louvrageLe but de cet ouvrage est de proposer une mthode ceux qui veulent concevoir un systme dinformation robuste et volutif en vitant les cueils classiques aboutissant des donnes inutilisables. En effet, une mauvaise conception de dpart conduit stocker des donnes inutiles (redondance) et ainsi gnrer des incohrences. Par ailleurs, une structure de donnes inadapte peut provoquer des erreurs fondamentales dexpression dans linterrogation de la base de donnes. Il nest pas ais de prsenter dans un seul ouvrage toutes les facettes du monde des bases de donnes de lenqute pralable la ralisation pratique en SQL et il a donc fallu oprer certains choix pour ne conserver que lessentiel. La bibliographie propose permet dapprofondir les diffrents sujets prsents dans louvrage. La langue utilise est volontairement peu technique pour rendre accessibles les concepts au public dbutant vis. Louvrage sadresse des tudiants, de toutes les filires, qui dbutent dans ce domaine, mais aussi aux professionnels qui veulent mettre en place une base de donnes, mme de taille modeste. En effet, les problmes pratiques que pose la ralisation dune base de donnes se retrouvent toutes les chelles, et ces aspects sont traits dans cet ouvrage au mme niveau que les notions thoriques.

Organisation de louvrageLe chapitre 1 est une introduction la notion de base de donnes et aux mtiers associs. Il propose une mise en perspective de lvolution des bases de donnes, mais aussi de leur utilisation (fouille de donnes, entrepts de donnes, etc.). Les chapitres 2, 3 et 4 dcrivent les diffrentes tapes de la conception dune base de donnes : la construction du modle conceptuel (entit-association dans cet ouvrage), le passage au modle relationnel puis la ralisation avec le langage SQL.

Avant-propos IX

Le chapitre 5 reprend les notions prsentes dans les chapitres prcdents en les appliquant un exemple concret, ainsi trait de manire complte. Un regard critique sur la modlisation effectue conduit la remise en cause et lvolution du modle.

Le chapitre 6 est consacr la prservation des donnes. En effet, une fois le processus de cration ralis, on doit mettre en uvre des outils pour garantir la prennit des donnes. Aprs avoir nonc quelques conseils gnraux, on prsente ici les deux outils fondamentaux que sont les transactions et les dclencheurs (triggers).

NotationLes mots importants dune section sont mis en exergue par lutilisation de gras. Lorsque lon fait rfrence des objets dfinis dans louvrage, par exemple une table, ils sont entre guillemets simples (). Afin que la lecture soit facilite et les confusions vites, un mot unique par chapitre a t choisi pour dsigner les synonymes que constituent les termes attribut , champ et colonne . Le terme attribut est utilis dans le chapitre 2 pour le modle entit-association, le terme champ est utilis dans le chapitre 3 pour le modle relationnel et le terme colonne est utilis dans le chapitre 4 consacr SQL. Les noms des entits, des associations et de leurs attributs sont accentus dans le chapitre 2 alors que les noms des tables, des relations et de leurs champs ne sont pas accentus dans les chapitres 3 et 4 car ils sont utiliss directement dans le code SQL ainsi que dans les SGBD, qui ne les acceptent pas systmatiquement. Les mots cls du langage SQL sont en majuscules pour les diffrencier facilement des parties variables que sont les noms des colonnes et des tables qui sont en minuscules. Dans la mesure du possible, les exemples en SQL sont indpendants du SGBD employ.

Ressources complmentairesLes scripts prsents dans louvrage sont accessibles sur le site de Pearson Education France (http://www.pearsoneducation.fr), diteur de louvrage. Vous y trouverez galement des jeux de donnes pour les bases de donnes que lon utilise ici ainsi que les scripts de cration des diffrentes tables.

RemerciementsJe tiens remercier ric Innocenti pour son implication dans le projet. Je remercie particulirement Christophe Lenne, chez Pearson Education France, notamment pour sa patience.

X

Cration de bases de donnes

Chapitre

Introduction aux bases de donnes1. Quest-ce quune base de donnes ? .............................2 2. volution des bases de donnes et de leur utilisation ....................4 3. Systmes de gestion de bases de donnes ..............................13 4. tapes de la conception des bases de donnes ..............................17 5. Mtiers des bases de donnes 19 6. Plan de louvrage .....................20 7. Prsentation de la BD exemple ...20 Exercices 1. Notion de base de donnes........22 2. Recherche dichotomique ............22 3. Langages dun SGBD.................23 4. Modles de reprsentation .........23 5. Mtiers des bases de donnes ....23 6. Utilisateurs dune base de donnes ..............................24 7. Vues externes ...........................24 8. Base de donnes rparties .........25 9. XML .........................................25 10. Fouille de donnes et entrepts de donnes ..............................26

Au cours des dernires annes, les bases de donnes ont connu un dveloppement considrable, au point quelles jouent dsormais un rle dans chacune de nos oprations quotidiennes du simple achat effectu avec sa carte bancaire jusqu nos dclarations de revenus. Lobjectif de ce chapitre est de dfinir la notion de base de donnes ainsi que les principaux concepts qui sy rattachent. La mthodologie qui permet de les concevoir, les applications informatiques associes leur mise en uvre (SGBD) et les diffrents mtiers des bases de donnes y sont prsents.

1

1

Quest-ce quune base de donnes ?Le nombre dinformations disponibles et les moyens de les diffuser sont en constante progression. La croissance du World Wide Web a encore accru ce dveloppement, en fournissant laccs des bases de donnes trs diverses avec une interface commune. Celles-ci se situent au cur de lactivit des entreprises, des administrations, de la recherche et de bon nombre dactivits humaines dsormais lies linformatique. Dans le domaine purement informatique, elles interviennent dornavant tous les niveaux. Les dveloppeurs dapplications sappuient sur des bases de donnes externes pour grer leurs donnes alors quauparavant elles taient intgres dans le programme. Citons un autre exemple : la gestion des fichiers dans les nouveaux systmes dexploitation (par exemple, Panther de chez Apple ou le futur Vista de Microsoft) volue vers de vritables bases de donnes mises jour en permanence. Elles permettent de retrouver les fichiers instantanment, par leur nom mais aussi par leur contenu, la manire dun moteur de recherche. Les bases de donnes reposent sur des thories solides et sont lorigine dune des plus importantes disciplines de linformatique : lingnierie des systmes dinformation. Cette section prsente une ide intuitive de ce quest une base de donnes, de son utilisation puis des lments de qualit qui lui sont associs.

1.1 NOTION DE BASE DE DONNESTout le monde a une ide naturelle de ce que peut tre une base de donnes : elle peut revtir la forme dune liste de CD contenant le nom des artistes et les titres des morceaux ou encore celle de fiches de recettes de cuisine. On remarque quune caractristique des donnes contenues dans une base de donnes est quelles doivent possder un lien entre elles. En effet, des donnes choisies au hasard ne constituent certainement pas une base de donnes. Celle-ci est donc une reprsentation partielle et (trs) simplifie du monde rel, que lon a obtenu par un processus de modlisation. En rsum, on dfinit une base de donnes comme lensemble des donnes stockes. Pour les manipuler, on utilise gnralement un logiciel spcialis appel SGBD (Systme de Gestion de Bases de Donnes). Il y a parfois confusion, par abus de langage, entre base de donnes et SGBD. On appelle aussi systme dinformation lensemble compos par les bases de donnes, le SGBD utilis et les programmes associs. Plus formellement, on appelle Base de Donnes (BD) un ensemble de fichiers informatiques ou non structurs et organiss afin de stocker et de grer de linformation.

1.2 UTILISATION DUNE BASE DE DONNESLa cration dune base de donnes recle un but prcis : elle doit permettre de retrouver de linformation par son contenu en se fondant sur des critres de recherche. On dsire, par exemple, retrouver toutes les recettes qui ncessitent des ufs ou tous les CD qui contiennent un morceau donn. La grande diffrence avec un programme crit dans un langage de programmation est quune base de donnes doit pouvoir rpondre des questions pour lesquelles elle na pas forcment t prvue la conception. Une autre diffrence est que les donnes sont susceptibles dtre utilises par des applications diffrentes. Dans un programme classique, la structuration des donnes est dcrite

2

Cration de bases de donnes

Chapitre directement dans le code, ce qui rend leur utilisation difficile par dautres programmes, en particulier lorsque lon modifie cette structure. Ce que lon recherche en utilisant une base de donnes est dassurer lindpendance entre le traitement et les donnes. Cest pourquoi, il est ncessaire que lapplication obtienne des informations sur la structure des donnes (nom, type, taille, etc.). Pour ce faire, on associe la base de donnes une description que lon appelle mtadonne ou catalogue . Cette dernire dcrit la structure interne de la base de donnes qui est spcifique au SGBD employ (voir figure 1.1). En plus de la structure et du type des donnes, on stocke galement cet endroit les informations concernant les rgles de cohrence des donnes abordes la section suivante. Figure 1.1Base de donnes de CD et mtadonne.Nombre entier suprieur 1 Chane de caractres de taille 30 Nombre entier suprieur 1900 et infrieur lanne en cours

1

NumCD 1 2 3

Titre Streetwise Underground Two a day

Musicien Olivier Temime Thelonious Monk Chet Baker

Label Nocturne Columbia Dreyfus

Anne 1978 2005 1968

Chane de caractres de taille 50

Chane de caractres de taille 20

Lide gnrale est que lutilisateur ou lapplication utilisatrice des donnes ne doit pas tre dpendante de leur reprsentation interne, ce qui constitue une abstraction des donnes. Cest la raison pour laquelle on utilise une description des donnes sous la forme dun modle pour permettre la restitution la plus efficace possible de linformation.

1.3 QUALIT DUNE BASE DE DONNESComme on la voqu prcdemment, lun des objectifs de cration dune base de donnes est de pouvoir retrouver les donnes par leur contenu. Dans cette optique, il faut sassurer que les donnes contenues dans la base sont de bonne qualit . Comment dfinir la qualit des donnes ? De nombreux critres peuvent tre pris en compte ; on peut citer parmi les principaux : la cohrence des donnes contenues dans la base ; labsence de redondance. La cohrence des donnes est fondamentale ; elle ncessite une rflexion pralable sur la normalisation du contenu des champs. On suppose quun champ contient la qualit dune personne (par exemple, Monsieur, Madame, Mademoiselle). Si lon trouve dans ce champ Mr la place de Monsieur, il est clair que les recherches sur ce champ par le contenu Monsieur risquent dtre errones. Dans ce cas, les informations seraient moins nombreuses que celles obtenues avec le contenu correct. On qualifie cet tat de fait de silence , qui signifie que certains rsultats pertinents sont ignors lors dune interrogation. Dans un autre cas, si lon saisit Mme pour Madame et Melle pour Mademoiselle, et quil y ait eu par erreur plusieurs saisies de Mme alors quil sagissait dune demoiselle, la recherche par le contenu Mme donne cette fois plus de rsultats quil ny a rellement de dames. On qualifie cet tat de fait de bruit , qui signifie que certains rsultats non

Introduction aux bases de donnes 3

pertinents sont retourns lors dune interrogation. La redondance est parfois plus dlicate identifier. Si lon considre le cas trs simple dun carnet dadresses qui contiendrait en mme temps le code postal et le nom de la ville, elle est ici vidente. Tableau 1.1Exemple de redondance de linformation.

Nom Jaco Stanley Marcus Charles Steve

Tlphone 0668541087 0654789254 0658741263 0639517720 0659874120

Ville Bordeaux Nancy Bordo Nancy Boredeaux

Code postal 33000 54000 33000 54000 33000

On remarque que lon stocke plusieurs fois la mme association dinformation (par exemple, Nancy et 54000), ce qui consomme de la place inutilement et peut devenir significatif lorsque la base atteint quelques millions denregistrements. De plus il existe des incohrences dans la saisie du nom de la ville Bordeaux. La recherche par le nom Bordeaux ne donnera pas le mme rsultat que la recherche par le code 33000. On verra plus loin que lapproche relationnelle procure des outils capables de dtecter et damliorer considrablement ce genre de problmes de qualit des bases de donnes.

2

volution des bases de donnes et de leur utilisationLe dveloppement des bases de donnes stend sur une priode dune quarantaine dannes. Cette section prsente tout dabord le contexte dans lequel elles se sont dveloppes. On aborde ensuite les modles utiliss successivement pour les reprsenter. Enfin, la dernire partie prsente une vue prospective des changements dans lutilisation des bases de donnes.

2.1 CONTEXTE partir des annes 1960, les ordinateurs voluent rapidement. Ils sont de plus en plus performants mais aussi de plus en plus rpandus du fait de leur cot plus raisonnable. Leur utilisation change galement ; on passe de la notion de calculateurs purs des machines capables aussi de traiter de linformation. On parvient un niveau dabstraction supplmentaire par rapport aux machines et on obtient en consquence une indpendance par rapport larchitecture et surtout par rapport aux constructeurs. La dcennie des annes 1970 est une priode faste pour la recherche et linnovation en informatique dont les rsultats sont encore utiliss aujourdhui. On peut utiliser des langages de programmation de haut niveau, afin de guider, voire de faonner, la dmarche du programmeur (Pascal), et lon envisage des systmes dexploitation indpendants de la machine employe (Unix). Cest galement cette poque que lon pose les fondements des techniques qui sont utilises dans les rseaux (TCP/IP), en particulier pour Internet. Cest dans ce contexte favorable que E. F. Codd dfinit et dveloppe lapproche relationnelle en base de donnes.

4

Cration de bases de donnes

Chapitre Lobjectif principal est dloigner lutilisateur des dtails dimplmentation et de faciliter ainsi lusage de linformatique. Un autre but est de rendre gnriques et rutilisables les dveloppements informatiques, parfois devenus caducs en raison dun changement de machine. Dans le domaine des bases de donnes, le dveloppement de larchitecture trois niveaux constitue une premire tape importante. Les fonctionnalits des systmes de bases de donnes sont spares en trois niveaux : niveau physique, niveau logique et niveau externe.

1

2.2 MODLESLes modles de donnes correspondent la manire de structurer linformation dans une base de donnes. Ils reposent sur les principes et les thories issus du domaine de la recherche en informatique et permettent de traduire la ralit de linformation vers une reprsentation utilisable en informatique.

Modle hirarchique et modle rseauLe traitement de linformation cette poque est encore trs li lorganisation des fichiers sur une machine. Les modles conceptuels de donnes sont eux aussi trs proches du systme de fichiers puisque lon manipule des graphes ou des arbres. Les nuds de ces structures constituent les informations et les liens entre ces donnes les artes. ce moment, on nest pas encore capable de sparer compltement le niveau logique du niveau physique dun systme de bases de donnes (voir figure 1.2). Le modle hirarchique propose une classification arborescente des donnes la manire dune classification scientifique. Dans ce type de modle, chaque enregistrement na quun seul possesseur ; par exemple, une commande na quun seul client. Cependant, notamment cause de ce type de limitations, ce modle ne peut pas traduire toutes les ralits de linformation dans les organisations. Le modle rseau est une extension du modle prcdent : il permet des liaisons transversales, utilise une structure de graphe et lve de nombreuses limitations du modle hirarchique. Dans les deux cas, les enregistrements sont relis par des pointeurs : on stocke ladresse de lenregistrement auquel il est li. Des SGBD de type hirarchique ou rseau sont encore employs pour des raisons defficacit lorsque la structure des donnes sy prte. On utilise cet effet des SGBD de conception ancienne, comme IMS (Bull) pour le modle rseau ou IDMS (Computer Associate). Figure 1.2Modle hirarchique.PersonneNom Prnom NumINSEE

Voiture LogementMarque Type Couleur Numro Rue Ville Type

Introduction aux bases de donnes 5

Modle relationnelEn 1970, E. F. Codd propose un nouveau modle relationnel dans un article rest clbre : A Relational Model of Data for Large Shared Data Banks , CACM 13, no 6, June 1970. Il cherche crer un langage dinterrogation des bases de donnes plus proche du langage naturel. Dans cette optique, il fonde sa recherche sur des concepts mathmatiques rigoureux, tels que la thorie des ensembles et la logique du premier ordre. Le modle relationnel permet de modliser les informations contenues dans les bases de donnes en utilisant des relations, cest--dire des ensembles dattributs (voir figure 1.3). De lide de dpart la ralisation dun produit utilisable, le laps de temps est souvent de lordre dune dcennie. La mise en uvre des ides de Codd se fait chez IBM dans le cadre du projet de recherche System-R. Le premier produit commercial sera non pas le fait dIBM, mais celui dHoneywell en 1976. Il sera suivi dun produit rellement abouti de chez Relationnel Software en 1980 : Oracle, qui a connu le succs que lon sait. De son ct IBM en tirera un produit qui deviendra DB2. Toujours dans le cadre du projet de recherche System-R, E. F. Codd met au point, en mme temps que le modle relationnel, un langage dinterrogation des donnes, SEQUEL, qui deviendra ensuite SQL (Structured Query Language). La normalisation du langage SQL ds 1986 par lANSI (institut de normalisation amricaine), puis par lISO (organisation internationale de normalisation), a assur pour une grande partie le succs du modle relationnel auprs des entreprises. Fait rare dans le monde informatique, ce langage a t adopt par la quasi-totalit des diteurs commerciaux qui participent activement son volution. SQL est devenu le standard de fait, mme si aucun diteur ne respecte la lettre la norme. Dailleurs, partir de SQL 2, il existe une dfinition de quatre niveaux de compatibilit avec la norme officielle. La normalisation de ce langage garantit sa prennit, mme si son volution sen trouve ralentie. Les requtes crites pour un SGBD fonctionnent en gnral sans trop de modifications avec un autre SGBD, ce qui permet denvisager des migrations moins douloureuses et de conserver une partie de linvestissement initial. Figure 1.3Modle relationnel.Ouvrage (Cote, Titre, Auteur,Editeur)Cote 1 2 3 4 5 6 Titre La programmation sous Unix Les bases de donnes Internet pour les nuls Le langage C Petit Larousse illustr Godel, Escher & Bach Auteur J. M. Rifflet G. Gardarin C. Baroudi C. Delannoy P. Larousse D. Hofstadter Editeur MC Graw Hill Eyrolles First Interactive Eyrolles Larousse Basic Book Inc.

Modle objetDans le sillage du dveloppement des langages orients objet (C++, Java) dans les annes 1980, le concept objet a t adapt aux bases de donnes. Plusieurs raisons, en dehors des qualits reconnues de lapproche objet, ont conduit dfinir une extension objet pour les bases de donnes (voir figure 1.4). La premire est que le modle relationnel, dans sa simplicit, ne permet pas de modliser facilement toutes les ralits. La deuxime est quun objet permet de reprsenter directement un lment du monde rel. Les structures dlments complexes se retrouvent souvent disperses entre plusieurs tables dans lapproche relationnelle classique. De plus, le concept objet est mieux adapt pour modliser des volumes de texte importants ou dautres types de donnes multimdias (sons, images, vidos). Enfin, il est beaucoup

6

Cration de bases de donnes

Chapitre plus commode de manipuler directement des objets lorsque lon dveloppe avec un langage objet (comme C++ ou Java). Les bases de donnes, on le rappelle, sont dornavant des briques constitutives des applications. Les bases de donnes orientes objet apportent ainsi aux applications dveloppes en langage objet la persistance des objets manipuls : ces derniers peuvent ainsi directement tre rutiliss par lapplication dorigine ou par dautres sans redfinition. Ces concepts ont t intgrs partir de la version 2 de la norme SQL. Les produits commerciaux adapts ces concepts nont pas connu une diffusion suffisamment importante. Le monde des bases de donnes volue assez lentement : la migration dun systme dinformation vers lobjet reprsente pour une organisation un investissement considrable qui nest pas toujours justifi. La robustesse et la popularit de lapproche relationnelle, qui a mis presque vingt ans simposer, a galement frein le dveloppement de lapproche objet pure dans les bases de donnes. Les donnes modlises sous forme dobjets sont aussi plus complexes reprsenter du point de vue du SGBD et lon rencontre encore trs souvent des problmes de performance. Figure 1.4Modle objet.

1

ObjetMthodes

Encapsulation

Donnes

Hritage

Dplacer()X1,Y1 X2,Y2

Fermer Agrandir()

Retourner

Modle relationnel-objetUne demande dvolution du strict modle relationnel existe toutefois. En effet, la gestion des donnes autres que du texte et des nombres comme des images, du son et des vidos implique lvolution du modle relationnel. De mme, les champs dits multivalus , disposant de plusieurs valeurs telles quune liste de prnoms ou des coordonnes gographiques, ne peuvent pas tre modliss efficacement en utilisant ce type dapproche. Lide est alors dintgrer de lobjet au modle relationnel existant plutt que dutiliser lapproche objet pure. Il convient de remarquer que ce type dvolution a dj t dvelopp dans le cadre des langages de programmation. Le langage C++ est lvolution intgrant lapproche objet du langage C et non pas un langage objet pur comme peut ltre Smalltalk. Cette extension, adopte par la plupart des SGBD, se nomme relationnel-objet et permet aux concepteurs des bases de donnes de disposer de types volus abstraits plus simples concevoir et surtout plus commodes faire voluer. Elle offre en outre la possi-

Introduction aux bases de donnes 7

bilit de modliser plus facilement la complexit des organisations (voir figure 1.5). Dans cette optique, la norme SQL a logiquement t adapte. Dans sa version 3, elle prend en compte lextension objet. Les types de donnes sont tendus et les oprations dencapsulation et dhritage, typiques de lapproche objet, sont supportes. Cette solution a lavantage doffrir un bon niveau de compatibilit avec lapproche prcdente trs rpandue et deffectuer ainsi une migration plus aise. Figure 1.5Modle relationnel-objet.1

Cote

Titre

Auteur

Editeur

Le vide

Nom Durand Atamp

Prnom Dal Charles

Les ditions du temps qui ne passe pas

2

La vie sans mode demploi

RomazavaNom Brass Duporche Chteau Paclaire Prnom Alexis Jean-Marie Romain Anne-Isabelle

2.3 VOLUTION DE LUTILISATION DES BASES DE DONNESCette section prsente une description de nouvelles manires de stocker ou dutiliser les bases de donnes. La diffrence par rapport la section prcdente est que lon ne remet pas en cause le modle utilis pour dcrire les donnes sauf, dans une certaine mesure, pour le cas de XML.

Base de donnes rpartiesLe dploiement des rseaux ainsi que laugmentation de leur dbit ces dernires annes ont conduit rpartir les donnes sur plusieurs sites gographiques, ce qui facilite la politique de dcentralisation des organisations. Ce type darchitecture masque la rpartition de linformation tout en garantissant une gestion transparente aux utilisateurs, comme sils disposaient dune seule base de donnes (voir figure 1.6). Les bases de donnes rparties assurent ainsi une plus grande fiabilit, de meilleures performances et facilitent lvolution du systme dinformation. La fiabilit et la scurit. On effectue une copie de scurit des donnes sur un site distant intervalles rguliers pour viter le dsastre de la perte de donnes due un incendie par exemple. La disponibilit. On procde des rplications quasi permanentes des donnes dans le but de rapprocher les utilisateurs des donnes dun point de vue de la topologie du rseau. On amliore galement le temps de rponse en rpartissant la charge entre les serveurs. Cette distribution est gre de manire intelligente par les systmes informatiques, ce qui permet de rpartir linformation efficacement sur les diffrents sites, en fonction des accs utilisateurs. Ces principes sont notamment utiliss par les moteurs de recherche. Les donnes sont rparties sur des sites spars. Le dispositif permet de masquer cet aspect aux utilisateurs et de fonctionner comme si un seul serveur tait prsent sur un seul site. Lvolution du systme est rendue totalement transparente pour les utilisateurs : en cas notamment de changement de machine la suite dune panne, de

8

Cration de bases de donnes

Chapitre modification de localisation, daugmentation de la taille de la base, dajouts dordinateurs sur le rseau afin daugmenter la capacit de stockage de la base de donnes. Figure 1.6Base de donnes rparties.Filiale Est

1

Copie sauvegardeSige social

Copie sauvegarde

Copie sauvegarde

Filiale Ocan indien

Filiale Asie

Interrogation (rpartition)

Ces technologies possdent nanmoins des inconvnients. La scurit sur les rseaux informatiques ncessite beaucoup plus de travail que dans le cas dun systme non rparti. Les techniques de scurit mettre en uvre sont plus complexes et plus coteuses.

Extraction dinformations non explicitement stockes dans une base de donnesIl existe deux manires de crer de la nouvelle information partir de linformation stocke explicitement dans une base de donnes. Soit on est capable dnoncer des rgles prcises de constitution de linformation partir du sens mme des donnes, soit on utilise des mthodes danalyse afin de trouver des corrlations sur un volume de donnes important, ce qui permet ensuite den dduire des rgles. La premire possibilit a t formalise et mise en uvre sous le nom de base de donnes dductives, dans le but dutiliser des mthodes semblables celles pratiques pour la dduction en intelligence artificielle. On dfinit un ensemble de rgles et on les applique aux donnes de la base, laide dun programme que lon appelle un moteur dinfrence . Les SGBD qualifis de dductifs utilisent cet effet un driv du langage Prolog : Datalog. Les relations de parent entre individus sont une bonne illustration de lutilisation des bases de donnes dductives. Intuitivement, on peut apprhender le fonctionnement gnral de ces SGBD dductifs en considrant lexemple suivant. On suppose que lon a une base de donnes qui reprsente les relations pre-fils (voir figure 1.7). Une rgle trs simple permet de dfinir un lien de parent anctre : Si pre-fils(X,Y) et pre-fils(Y,Z), alors anctre(X,Z). La seconde possibilit dobtenir linformation nouvelle partir de linformation existante relve des mthodes dites de fouilles de donnes (ou data mining). Ce type dexploitation des bases de donnes a connu un grand succs ces dernires annes, par lanalyse de grands volumes de donnes afin didentifier des corrlations entre des valeurs de champs. Par exemple, les personnes moustachues de plus de quarante ans habitant une maison individuelle lisent plutt des revues de psychologie . Les techniques danalyses employes sont une alchimie concocte partir de statistiques, de rseaux de neurones, de classifications et autres techniques employes en intelligence artificielle. Une fois ces rgles tablies, on peut les utiliser au sein des bases de donnes dductives dcrites prcdemment.

Introduction aux bases de donnes 9

Figure 1.7Base de donnes dductives prefils.Pre Hugo Tapeneau Tian Merlin Alize Fils Tian Merlin Lastoul Alize Teanne

Linformation dcisionnelle ainsi extraite a de nombreux dbouchs : du ciblage marketing la mdecine en passant par la prvision financire. Les mthodes saffinent et deviennent rellement efficaces, ce qui a cependant donn lieu quelques escroqueries, les entreprises spcialises dans le domaine refusant bien sr de donner les spcifications de leurs mthodes danalyses, qui relevaient parfois de la divination, au motif de ne pas perdre leur avantage concurrentiel.

Entrepts de donnes (datawarehouse)Les entrepts de donnes sont des bases de donnes rcapitulatives , constitues partir de diffrentes sources de lentreprise (comptabilit, ventes, achats, service du personnel) pour disposer dun accs homogne lensemble des donnes. Les donnes disperses ne peuvent pas tre exploites directement en tant quinformation dcisionnelle. En effet, il nest pas possible danalyser efficacement dans le temps des indicateurs de gestion par mtiers ou par individus. Les donnes sont alors rapatries et stockes dans un entrept de donnes ou datawarehouse (voir figure 1.8). Si linformation est disponible, on stocke les diffrentes valeurs dune donne, ce qui permet de conserver un historique dans le temps de certaines donnes : elles sont dites historises. Ce dernier aspect est dsign parfois aussi comme une base de donnes temporelle, dans la mesure o le SGBD procure des outils danalyse adapts. Il est alors possible deffectuer des analyses dcisionnelles qui combinent tous les paramtres de lentreprise : cest lanalyse dcisionnelle multidimensionnelle. Les techniques prcdentes de fouille de donnes et de dduction peuvent tre utilises. Elles sont combines avec dautres outils danalyse de lvolution dune donne partir de son historique pour en extrapoler des tendances et ainsi faire des prvisions. Lide des entrepts de donnes est plus quintressante, mais il est vident que sa mise en uvre est dlicate tant dun point de vue du stockage de linformation (volume de donnes, htrognit des donnes traiter) que de lanalyse des donnes (comment analyser, quelle information stocker). En outre, il sagit le plus souvent du poste budgtaire le plus onreux dans un projet dinformatique dcisionnelle.

10

Cration de bases de donnes

Chapitre Figure 1.8Entrepts de donnes.Service achatsAnalyse

1

Production

Entrept de donnes Service marketing (datawarehouse)

Consultation

Service du personnel

XMLLe World Wide Web est la mise en uvre du concept dhypertexte par lutilisation de la structure de communication fournie par Internet. Les fichiers disperss sur diffrentes machines du rseau Internet peuvent ainsi tre associs. Son succs a provoqu un glissement de lide originale, qui consistait relier simplement des textes entre eux, vers la notion dinterface universelle. On ne transmet plus seulement le contenu dun fichier statique, mais galement le rsultat de lexcution dun programme : le contenu devient donc dynamique. Par extension, on imagine aisment que le mcanisme du Web peut galement transmettre le rsultat de linterrogation dune base de donnes. Le concepteur du Web, T. B. Lee, sest appuy pour sa mise en uvre, outre la structure technique existante dInternet, sur un langage de description de documents utilisant des balises : le SGML (Standard Generalized Markup Language). Le dcoupage du document par les balises est dcrit dans un document associ que chacun peut crer en fonction des ses besoins : la DTD (Data Type Definition). Cette dernire, formule dans un langage normalis, permettra des programmes spcialiss, les parsers , de vrifier si le document est conforme la structure attendue et den extraire facilement le contenu. Le langage SGML est assez complexe manipuler, car il est trs gnral. Pour des besoins spcifiques, on utilise des versions simplifies, telles que HTML ou XML. T. B. Lee a donc dvelopp un langage de prsentation, HTML (Hyper Text Markup Language), bas sur les notions dveloppes par SGML. Ce langage permet essentiellement de spcifier des critres de prsentation (gras, soulign, couleur) et, bien sr, de dcrire les liens entre les fichiers. Il ne comprend aucun lment de structuration des donnes du texte contenu dans la page HTML. Les moteurs de recherche parcourent le Web et indexent le contenu des pages par rapport des listes de mots cls combins dautres mthodes (beaucoup) plus sophistiques. Cependant, ils ne peuvent diffrencier dans le texte le titre dun rsum ou dune lgende associe une image. Lefficacit et la pertinence de lindexation en sont diminues dautant. Pour remdier cela, le W3C (World Wide Web Consortium) a dfini un langage, qui est galement une simplification de SGML, permettant de dcrire la structure interne dun document : XML (eXtended Markup Language). La structure dun document XML est reprsente sous la forme dun arbre tout comme celle dun document HTML. La description de

Introduction aux bases de donnes 11

cette structure arborescente se trouve dans une DTD ou plus rcemment dans un schma XML. Le schma est plus souple et permet demployer les mmes outils de traitement que pour les fichiers XML. Le langage HTML possde videmment lui aussi une DTD, mais, la diffrence de XML, elle est normalise par le W3C et ne peut tre modifie et adapte pour ses besoins propres (voir figure 1.9). Lobjectif terme est que les fichiers du World Wide Web soient dsormais dcrits en utilisant XML la place de HTML. La prsentation des donnes repose alors sur les feuilles de styles (telles que eXtended Stylesheet Language) pour gnrer les formats de prsentation classiques (HTML, PDF, PostScript) partir du format XML. De cette manire, les moteurs de recherche pourront extraire directement par exemple le rsum ou le titre dun paragraphe dun fichier XML. Lindexation peut ainsi tre plus prcise ; un mot figurant dans un titre tant plus important que le mme mot dans une note de bas de page. Figure 1.9Structure arborescente XML. banane 2 catalogue

1000

article article

pige 300

35

quantit prix nom 1000 prix 2 banane 300 nom quantit

pige

Quel est le rapport avec les bases de donnes ? Comme on la vu prcdemment, une page Web peut tre le rsultat dune requte provenant dun SGBD ; cest mme devenu le moyen le plus courant dinterroger un SGBD. Dans cette optique, si le SGBD est capable de gnrer directement du XML, cela facilite le processus. Cest dautant plus vrai que le passage du modle relationnel un modle arborescent de type XML est parfois complexe et quil est bien agrable que le SGBD sache le faire. Le langage de description XML, par sa versatilit, simpose comme un format dchange universel. Cest vident pour des fichiers gnrs par un traitement de texte : on spare ainsi laspect structurel de laspect prsentation. On se donne galement la possibilit douvrir le document indpendamment du logiciel utilis, ce qui garantit sa prennit. De la mme manire, XML est utilis comme format dchange entre SGBD et dun SGBD vers dautres logiciels (tableurs, traitements de texte). Le langage XML est adopt petit petit par la plupart des diteurs et il est amen jouer un rle croissant dans les changes de donnes. De plus en plus de SGBD sont capables de produire des rsultats de requte en XML, dimporter du XML et acceptent mme de grer les donnes directement dans ce format. Cette dernire possibilit implique que les SGBD supportent des donnes moins bien structures : cette capacit constitue lune des volutions futures des SGBD.

12

Cration de bases de donnes

Chapitre

Contenu multimdiaLe multimdia sest fortement dvelopp depuis la fin des annes 1990. La demande tant trs forte dans ce domaine, les diteurs de SGBD se doivent dintgrer de linformation multimdia (image, son, vido) dans les bases de donnes. Les bases de donnes multimdias posent de nouveaux problmes, en particulier pour effectuer des recherches sur les contenus multimdias, ce qui est par nature difficile. Une solution est deffectuer une indexation prliminaire manuelle laide de mots cls qui permettent doprer par la suite des interrogations, mais cela semble illusoire de raliser ce traitement pour des volumes importants de documents multimdias. Dans le cas contraire, il existe des mthodes de recherche sur des fichiers de type image par rapport des schmas prdfinis. Cette possibilit reste pour linstant plutt du domaine de la recherche, mme si lon est dj (malheureusement) capable didentifier des visages par rapport un modle dans certaines conditions.Dans le mme ordre dide, il est dj possible dutiliser des techniques pour valuer le style de musique (classique, jazz, pop) dun fichier en analysant son contenu. On est cependant assez loin de pouvoir identifier un genre de film en se basant sur lanalyse des images. Les bases de donnes multimdias constituent un sujet de recherche trs prometteur et trs actif. Ces problmatiques relvent pour linstant plutt des proccupations des socits dveloppant les moteurs de recherche que des bases de donnes au sens strict. Cependant, le groupe de normalisation ISO/IEC prpare lvolution pour le multimdia de la norme SQL-MM, qui est une volution pour le multimdia de la norme SQL.

1

3

Systmes de gestion de bases de donnesOn a beaucoup parl dans les sections prcdentes des SGBD. Un SGBD est un logiciel complexe qui permet de grer et dutiliser les donnes que lon stocke en utilisant les modles cits prcdemment. La premire partie de la section permet de comprendre le mcanisme dabstraction partir duquel se fait le passage du simple fichier informatique la gestion de linformation qui se fonde sur lutilisation dun SGBD. Une seconde partie dtaille le modle en couches des SGBD ainsi que leurs fonctionnalits de base.

3.1 FICHIERS INFORMATIQUESUn fichier peut tre vu (historiquement) comme un morceau de bande magntique. Les mcanismes de gestion de fichiers des langages de programmation, comme le langage C, fonctionnent encore avec cette mtaphore. Lorsquon utilise un fichier pour stocker de linformation, il est ncessaire de prvoir un dcoupage de celui-ci par enregistrements, souvent de taille fixe. Pour passer dun enregistrement lautre, il suffit alors davancer la tte de lecture de la taille dun enregistrement (voir figure 1.10). Les donnes sont stockes dans lenregistrement par un dcoupage interne suivant la taille de chaque donne. On utilise gnralement des structures de donnes (par exemple, en langage C) pour rcuprer directement chaque valeur de champ dans une variable. Dans une base de donnes, on recherche les donnes par leur contenu. Pour retrouver lune dentre elles, il faut donc parcourir tous les enregistrements un un (recherche squentielle), et en examiner le contenu.

Introduction aux bases de donnes 13

Figure 1.10Fichier informatique.

Fichier

Accs squentiel

Dans le cas dun accs squentiel, la recherche dun enregistrement en position n ncessite daccder aux n1 enregistrements qui le prcdent. Si lon recherche larticle de rfrence DR-NetCard10.102, contenu dans le fichier Article, il sera ncessaire de parcourir tous les enregistrements, depuis le dbut du fichier jusqu larticle recherch. Pour retrouver une information, il faut donc parcourir tous les enregistrements un un et en examiner le contenu. Une alternative au parcours squentiel est de construire des tables descriptives afin dacclrer laccs aux donnes. Une premire table permet laccs direct un enregistrement par une cl associe ladresse (pointeur) de lenregistrement. On rappelle que cest ce mcanisme de pointeurs sur des enregistrements qui est modlis dans les modles hirarchiques ou rseaux pour faire le lien entre des enregistrements. On constitue ainsi le graphe qui permet de naviguer dans lensemble des enregistrements. Une seconde table contient lordre relatif des enregistrements ordonns suivant les valeurs dun champ : on appelle cette table un index (voir figure 1.11). Cette seconde table permet demployer des mthodes de recherche par le contenu du champ index beaucoup plus efficaces quune recherche squentielle. La recherche dichotomique bien connue est lune dentre elles. Une fois lenregistrement identifi, on y accde directement grce la premire table. Les techniques de constitution des index constituent un sujet part entire ainsi que les algorithmes de recherche qui leur sont associs. Figure 1.11Fichier et index.Fichier

Index

On constate que la simple recherche dinformations recourt dj des algorithmes assez sophistiqus et ncessite la construction et le maintien de structures annexes pour tre efficace. De mme, la destruction denregistrements et lvolution de la structure de la base sont galement des oprations lourdes mettre en uvre ; elles requirent souvent la recopie complte des informations dans un nouveau fichier. Cette section nous permet de comprendre pourquoi on utilise prfrentiellement des SGBD pour grer les donnes. Toutes ces fonctionnalits et bien dautres que nous allons dtailler sont intgres dans le logiciel.

14

Cration de bases de donnes

Chapitre

3.2 FONCTIONNALITS DUN SGBDDe mme que lISO a dtermin un modle thorique en sept couches pour distinguer les applications rseaux et leurs interactions, il existe dsormais un modle thorique en trois couches (trois niveaux dabstraction) afin de concevoir et dorganiser les fonctionnalits des SGBD. Ce modle est labor par la commission SPARC de lANSI : cest larchitecture ANSI/SPARC (voir figure 1.12). Cette dernire, qui date de 1975, sinscrit dans les concepts et thories de la premire gnration des bases de donnes, dont lobjectif est davoir une indpendance entre les donnes et les traitements : Niveau interne ou physique. Cest le niveau le plus bas . On dcrit les structures de stockage de linformation, ce qui le rend trs dpendant du SGBD employ. Il se fonde sur un modle de donnes physique. Niveau conceptuel. Il correspond limplmentation du schma conceptuel de la base de donnes, que lon ralise lors de la phase danalyse (voir Modle Conceptuel des Donnes, Modle Logique des Donnes). Il est utilis pour dcrire les lments constitutifs de la base de donnes et les contraintes qui leur sont associes. Il sagit dune certaine faon de la documentation de la base de donnes. Niveau externe. Le niveau externe sert dcrire les vues des utilisateurs, cest--dire le schma de visualisation des donnes qui est diffrent pour chaque catgorie dutilisateurs. Un schma externe permet de masquer la complexit de la base de donnes complte en fonction des droits ou des besoins des utilisateurs. Cela facilite la lecture et la scurit de linformation.Utilisateurs

1

Figure 1.12Niveaux ANSI/ SPARC.Niveau externeVues

Schma conceptuel

Modle conceptuel

Niveau interne

Modle physique SGBD

Il sagit comme pour le modle rseau de lISO dun cadre de rflexion ; les SGBD ne respectent pas la lettre le dcoupage propos. Ils se doivent cependant de possder les principales caractristiques qui dcoulent de ce modle en couches : Indpendance physique des donnes. Masquer la reprsentation interne des donnes ainsi que les mthodes systme daccs aux utilisateurs. Indpendance logique des donnes. Permettre la modification du schma conceptuel des donnes sans remettre en cause les mcanismes de stockage et de manipulation internes des donnes. Intgrit des donnes. Faire en sorte que linformation rsultant des liens entre les donnes soit cohrente. Il peut apporter galement des fonctionnalits supplmentaires utilises dans le cadre de bases de donnes rparties dcrites prcdemment : Rplication des donnes. Copie automatise de sauvegarde.

Introduction aux bases de donnes 15

Virtualisation des donnes. Masquage de la distribution gographique des donnes. Haute disponibilit des donnes. Duplication de la base de donnes sur diffrents sites pour diminuer la distance client/serveur et la charge des serveurs. Le but principal de lutilisation dun SGBD est de masquer la reprsentation physique des donnes et les mthodes daccs que lon vient de voir prcdemment. Cependant les mcanismes de cration, dindexation et de recherche sous-jacents sont globalement les mmes. videmment, pour des questions defficacit, les SGBD utilisent leur propre gestion de fichiers et parfois mme contournent le systme de fichiers fourni avec le systme dexploitation de la machine. Un SGBD doit permettre galement la manipulation de la structure de la base de donnes, comme lajout et la modification de champs, de manire transparente. Il conserve cet effet une description de la structure de la base de donnes que lon appelle le dictionnaire de donnes . Pour raliser ces oprations avec lindpendance souhaite par rapport la reprsentation, le SGBD offre deux langages de haut niveau : un Langage de Description de Donnes (LDD) qui permet dagir sur la structure de la base de donnes (ajout, suppression et modification des tables) ; un Langage de Manipulation de Donnes (LMD) qui permet dinterroger et de mettre jour le contenu de la base de donnes. Ces langages sont de type non procdural , cest--dire que lon sintresse leffet de lopration (le quoi) et non pas la manire dont elle est ralise (le comment). On a pu se rendre compte dans la section prcdente du niveau de complexit de certaines oprations qui, grce ces langages, sont nonces simplement. Par exemple, la modification de la taille dun champ peut tre nonce en une seule instruction avec le LDD. Il est courant que les SGBD modernes implmentent ces langages de manipulation laide dobjets graphiques. Le SGBD doit galement assurer la protection des donnes en cas de problmes. Ceux-ci peuvent tre la consquence dune manipulation malheureuse, mais galement dune panne du systme qui survient par exemple la suite dune coupure de courant. Dans tous les cas, le SGBD doit permettre de restaurer les donnes. Ces oprations sont gnralement ralises en utilisant des journaux qui enregistrent au fur et mesure les oprations faites sur la base : cest le mcanisme de la journalisation. Ce journal est utilis pour refaire, ou dfaire le cas chant, ces oprations. En ce qui concerne les oprations de modification effectues sur la base de donnes, que lon appelle des transactions, des proprits de mesure de la qualit de ces transactions sont proposes sous le terme ACID : Atomicit. Une transaction est atomique ; elle est excute entirement ou abandonne. Cohrence. La transaction doit se faire dun tat cohrent de la base vers un autre tat cohrent. Isolement. Des transactions simultanes ne doivent pas interfrer entre elles. Durabilit. La transaction a des effets permanents mme en cas de panne. noter que tous les SGBD ne ralisent pas cette proprit ACID pour les transactions. Les machines sont connectes au rseau ou sont simplement multi-utilisateurs : le SGBD doit permettre de donner laccs aux bases de donnes plusieurs utilisateurs concurremment. Laccs concurrentiel implique des oprations algorithmiques complexes raliser, puisquil faut par exemple empcher la modification dune valeur par un utilisateur alors quelle est en lecture par un autre. Cela ncessite la gestion dune structure de description

16

Cration de bases de donnes

Chapitre des utilisateurs comprenant les droits qui leur sont associs pour chaque lment (lecture, modification) : les droits daccs aux donnes. Les mcanismes sont les mmes que ceux qui sont mis en uvre dans les systmes dexploitation multi-utilisateurs.

1

4

tapes de la conception des bases de donnesOn peut dcomposer le processus de conception dune base de donnes en plusieurs tapes : lanalyse du systme du monde rel modliser ; la mise en forme du modle pour lintgrer dans un SGBD ; la cration effective dans le SGBD des structures et leur remplissage (voir figure 1.13).

4.1 ANALYSE DU MONDE RELLa premire tape de la dmarche de modlisation des donnes consiste effectuer lanalyse de la situation du monde rel considrer. Cette action sapparente au travail effectu par une entreprise de consulting. Cest une approche humaine qui se fonde en partie sur des entretiens avec les personnels concerns et ressemble plutt une analyse du discours et de lorganisation de lentreprise. Cest lors de cette phase danalyse que lon dtermine les objectifs du systme dinformation concevoir et que lon identifie tous les lments prendre en compte dans le systme ; ce sont les champs qui contiendront les donnes. Un ensemble de champs peut constituer un objet du monde rel. Par exemple les champs nom , prnom et adresse que lon regroupe constituent une personne . Enfin, il faut identifier les liens modliser entre ces objets ainsi que les lments caractristiques de ces liens. Par exemple une personne achte une voiture 10 000 euros. Ici les deux objets lis sont personne et voiture , et le prix est le composant du lien. Cette tape est dlicate et fondamentale, car elle conditionne laspect reprsentatif et la qualit du modle du monde rel considr. Lors de cette phase, il convient galement dexprimer les rgles qui dfinissent le domaine de validit du contenu des champs. Par exemple, le prix dune voiture ne peut pas tre infrieur 500 euros ou suprieur 150 000 euros. Cette modlisation du rel permet de proposer un schma conceptuel qui servira la description gnrale du systme dinformation. La notion de sens des donnes et surtout des liens entre les entits ne sera rellement exprime que dans ce schma qui est plus proche du monde rel. Ce schma est souvent ralis laide de la symbolique du modle entitassociation ou, plus couramment aujourdhui, exprim avec le langage UML (Unified Modeling Language). Il existe diffrentes mthodes intgrant les concepts prsents ci-dessus. Lobjectif est de guider le travail danalyse et daider la ralisation dun modle de donnes le plus juste possible. Parmi celles-ci, la mthode Merise a connu un certain succs dans le domaine en France.

4.2 PASSAGE AU SGBDLa reprsentation prcdente doit tre transforme pour la rendre acceptable par le SGBD, quil soit relationnel, objet ou relationnel-objet. Souvent, cette tape modifie considrablement les objets du monde rel ainsi que les liens dfinis dans le schma prcdent. Cest lors de cette phase que lon vrifie la qualit de la base de donnes en utilisant les critres

Introduction aux bases de donnes 17

vus prcdemment, comme llimination de la redondance. Le modle relationnel procure cette fin des outils capables de tester la cohrence du systme et de le modifier le cas chant : ce sont les formes normales , qui seront vues au chapitre 3. Il est possible de constater des incohrences ce niveau de lanalyse, ce qui implique de modifier le modle conceptuel de donnes dvelopp ltape prcdente. On obtient un schma des donnes qui fournira aux utilisateurs les informations ncessaires pour effectuer leurs requtes, par exemple la description des noms de tables, de champs et leurs types. Par contre, on perd ce niveau linformation du sens des donnes et du lien entre elles. Ce schma nest gure utilisable en pratique sans le prcdent. En effet, comment savoir que les personnes achtent des voitures et non pas le vendeur si lon ne dispose pas de linformation de liaison entre les objets du monde rel ? Cest galement lors de cette phase que lon dfinit les vues du systme dinformation qui sont adaptes chaque catgorie dutilisateurs.

4.3 CRATION ET UTILISATION DE LA BASE DE DONNESUne fois le schma prcdent dfini, on utilise le SGBD pour passer la cration des tables qui constituent la base de donnes. Puis, on insre videmment les valeurs dans les tables. Le cas chant, on cre les vues dfinies ltape prcdente et par l mme les utilisateurs concerns. Le systme est alors oprationnel. Toute cette tape se fait forcment en utilisant le SGBD, alors que les prcdentes taient plus thoriques. La cration des tables et lutilisation de la base de donnes ncessiteront le langage SQL. Cependant, il existe de nos jours de nombreux outils graphiques dans les SGBD qui masquent lutilisation du SQL. Figure 1.13tapes de la conception dune base de donnes.Monde rel

AnalyseModle entit-association

Vue 1Transformation

SchmaVue 2

LMD LDD

SGDB

relationnel

Vue 3

Base de donnes physique

18

Cration de bases de donnes

Chapitre

5

Mtiers des bases de donnesComme on peut le constater lorsque lon considre les diffrentes tapes de la conception dune base de donnes, des acteurs aux comptences trs diverses interviennent dans ce processus.

1

5.1 CONSULTANTS/ANALYSTESIls prennent en charge la premire tape qui consiste en lanalyse des activits et des flux dinformation mis en jeu dans le monde rel modliser. Le profil de ces acteurs nest pas toujours purement technique, puisque cette phase ncessite parfois beaucoup de dialogues et de psychologie pour parvenir faire exprimer leurs besoins rels par les futurs utilisateurs. La gageure est de parvenir faire exprimer correctement les besoins dinformatisation par les utilisateurs du systme dinformation, afin de proposer un modle conceptuel de donnes le plus juste possible.

5.2 CONCEPTEURS DE LA BASECe sont les personnes qui soccupent de traduire le modle prcdent en un modle logique exploitable par le SGBD. Le concepteur est un spcialiste des bases de donnes qui prpare les tables, les vues, les schmas daccs. Cest lui qui renseigne les utilisateurs et programmeurs pour la dfinition des requtes. Il na pas, en principe, tre spcialis sur un SGBD particulier, mais en pratique les lments quil manipule sont lis au SGBD qui sera employ. Cest ordinairement lui qui cre les lments ncessaires la base de donnes (tables, vues) en collaboration avec ladministrateur de la base. Cest parfois la mme personne qui est en charge de la partie analyse et de la conception, ce qui peut induire une vision un peu trop oriente techniquement comme celle dun programmeur qui crirait le cahier des charges dune application. Par contre, le concepteur peut aussi tre administrateur du SGBD, ce qui ne pose pas de problmes particuliers dapproche.

5.3 ADMINISTRATEURS DE BASE DE DONNES (DBA, DATABASE ADMINISTRATOR)Ladministrateur a la responsabilit du fonctionnement gnral du SGBD. Il cre les ressources (bases, comptes) la demande. Il donne les droits daccs et gre les personnes qui accdent au systme. Il vrifie que les ressources sont suffisantes (taille du disque, puissance de la machine), effectue les sauvegardes, vrifie les failles de scurit. Pour ces oprations, il est en relation avec ladministrateur systme et rseau de la structure. Ce mtier est extrmement li au SGBD employ. Il ny a pas vraiment de normalisation pour les oprations dadministration des SGBD qui sont spcifiques au SGBD et la version utiliss.

5.4 UTILISATEURS STANDARD ET PROGRAMMEURS DAPPLICATIONSCe sont eux qui utilisent le systme dinformation. Ils y ont accs grce aux vues dfinies par le concepteur de la base. Ils utilisent les schmas dtermins aux deux premires tapes de la conception. Ils nont pas besoin thoriquement dtre spcialiss sur le SGBD employ. En pratique il est prfrable, surtout pour les dveloppeurs dapplications, davoir de bonnes connaissances du fonctionnement du SGBD. Par exemple, pour optimiser les performances, la manire dcrire les requtes peut tre assez diffrente suivant le SGBD employ.

Introduction aux bases de donnes 19

6

Plan de louvrageLe plan de louvrage est dtermin par les diffrentes tapes de la conception dune BD. Le deuxime chapitre traite de ltape danalyse du monde rel pour en concevoir un modle descriptif. La modlisation est effectue classiquement par le modle entitassociation . On aborde galement la reprsentation du modle avec UML. Le troisime chapitre est essentiellement consacr au modle relationnel et aux oprations qui lui sont associes. On sintresse ensuite aux mthodes grce auxquelles il est possible de passer du modle prcdent un ensemble de tables du modle relationnel. Puis, on continue par ltape de normalisation qui permet de mettre en vidence les incohrences du systme dinformation ainsi cr et de les rectifier. On prsente dans ce chapitre les trois premires formes normales et celle de Boyce-Codd. Une autre approche de la cration dune base de donnes partir de la relation universelle est aborde la fin du chapitre. Le quatrime chapitre prsente le langage SQL. Aprs avoir expos la syntaxe gnrale du langage, il sattache la ralisation en SQL des oprations relationnelles vues prcdemment. On aborde ensuite la correspondance entre les questions classiques des bases de donnes en langage parl et leur reprsentation avec SQL. La dernire partie du chapitre traite de la partie description de donnes de SQL, qui permet de crer et grer les tables dans un SGBD. Le cinquime chapitre constitue un exemple complet de ralisation dune base de donnes par la pratique. Cet exemple part de lnonc du monde rel en langage parl jusqu la ralisation du systme dinformation, puis bien sr son utilisation. Ce chapitre reprend les notions vues aux chapitres prcdents de manire pratique. Le sixime chapitre aborde les mcanismes gnraux de prservation des donnes associs aux SGBD. On aborde la scurit des accs et les sauvegardes, mais aussi les outils qui participent la scurisation des donnes comme les transactions ou les triggers .

7

Prsentation de la BD exempleUne base de donnes extrmement simplifie est utilise rgulirement tout au long de louvrage afin dillustrer les concepts dvelopps au fil de louvrage. Dautres bases de donnes plus complexes sont prsentes au fur et mesure des explications (voir figure 1.14). Ce systme dinformation qui constitue ltude de cas basique modlise lactivit de vente de voitures doccasion. Dans ce systme, deux entits du monde rel sont identifies : les personnes et les voitures. Une voiture est caractrise par sa marque, son type, sa couleur. Une personne est caractrise par son nom, son ge, sa ville, son sexe. Laction modlise est la vente qui est caractrise par le prix de la vente et sa date. Une personne peut acheter une plusieurs voitures. Une voiture peut tre vendue une seule fois ou jamais.

20

Cration de bases de donnes

Chapitre Figure 1.14Base de donnes exemple.Marque Nom

1

Vente Type Couleur Ville

ge

Sexe

Le modle entit-association et la reprsentation UML correspondant cette description seront crs au chapitre 2, Analyse du monde rel . Le modle relationnel sera cr au chapitre 3, Approche relationnelle . La base de donnes rsultante sera utilise pour les exemples du chapitre 4, SQL .

RsumUne base de donnes dsigne lensemble des donnes stockes. Pour manipuler ces donnes, on utilise un SGBD (Systme de Gestion de Bases de Donnes) qui est un logiciel complexe. Lensemble compos par les donnes et le SGBD constitue un systme dinformation. La conception dune base de donnes de la modlisation du monde rel son implmentation dans le SGBD fait appel des techniques et des mthodes trs diffrentes pour chaque tape. Des mtiers spcifiques se sont donc dvelopps autour de ces concepts et les mettent en uvre. Par exemple, lapproche du monde rel sapparente lanalyse faite par un cabinet de consulting alors que limplmentation dans le SGBD et son administration sont proches des mtiers informatiques. Les SGBD ont volu paralllement aux concepts de modlisation des bases de donnes. On est pass dune organisation comparable celle des fichiers informatiques (modles hirarchiques ou rseaux) un modle plus abstrait : le modle relationnel. Ce modle est toujours le plus utilis actuellement. Il est associ troitement SQL, un langage normalis de description, de manipulation et dinterrogation de donnes. La modlisation objet, adapte aux bases de donnes, na pas connu un dveloppement considrable, et ce, malgr les avantages quelle procure par rapport au modle relationnel en particulier pour le typage des donnes. Comme cest le cas dans le domaine de la programmation, une approche mixte semble prendre de lampleur : le modle relationnel-objet. Il sagit dapporter au modle relationnel les possibilits tendues de modlisation procures par les objets sans remettre profondment en question lexistant. Le dveloppement des rseaux apporte dautres manires dutiliser les bases de donnes, comme la rpartition des donnes pour amliorer leur disponibilit et leur scurit. Linterfaage avec le World Wide Web a introduit la prise en compte du langage XML comme format dchange et de stockage par les SGBD. De nouvelles formes dinterrogation, telles que la fouille de donnes (ou data mining) et les bases de donnes dductives, permettent dextrapoler de linformation non explicitement stocke dans les bases de donnes. Ces approches ainsi que la prise en compte des donnes multimdias vont faire voluer les modles de bases de donnes et les SGBD que lon utilise actuellement. Cela se fera probablement sans remettre totalement en cause le modle relationnel, mais plutt en le faisant voluer progressivement.

Introduction aux bases de donnes 21

ExercicesEXERCICE 1NOTION DE BASE DE DONNESQuelles sont les diffrences majeures entre un fichier informatique et une base de donnes gre par un SGBD ? On peut lister ces points essentiels qui les diffrencient : Il nest pas ncessaire de connatre la mthode de stockage des informations sur le disque pour manipuler les donnes avec une base de donnes. Un fichier informatique simple nest pas conu pour effectuer une recherche dinformation par le contenu : pour retrouver le(s) enregistrement(s), on est oblig de parcourir tout le fichier. Les modifications de structure (ajout/suppression dun champ ou modification de sa taille) ncessitent de recrer un autre fichier et dy recopier les donnes. Une base de donnes contient en gnral plusieurs fichiers dont les enregistrements sont relis entre eux.

EXERCICE 2

RECHERCHE DICHOTOMIQUEDonnez un algorithme intuitif simple de recherche dichotomique en utilisant une table dindex et une table accs direct. Soit V la valeur recherche, Ti le tableau dindex de taille n. On suppose que la table dindex contient les valeurs du champ indexes dans sa colonne 1 et les numros denregistrement correspondants dans sa colonne 2. Si le tableau est rduit un lment dont la valeur dans la premire colonne Ti[1,1] est diffrente de la valeur recherche alors la recherche est un chec sinon comparer llment du milieu z du tableau Ti avec la valeur V Si llment Ti[z,1] est gal la valeur, accder lenregistrement directement par son numro Ti[z,2] Si llment Ti[z,1] est infrieur la valeur recommencer avec la partie basse du tableau (de 1 z-1) Si llment Ti[z,1] est suprieur la valeur recommencer avec la partie basse du tableau (de z+1 n)

22

Cration de bases de donnes

Chapitre

EXERCICE 3

LANGAGES DUN

SGBD

1

On veut supprimer tous les enregistrements qui contiennent la valeur 666 dans le champ catgorie. Utilise-t-on le langage de description de donnes ou le langage de manipulation de donnes ? Que se passerait-il si lon voulait augmenter la taille du champ catgorie. Le langage de description de donnes sintresse la modification de structure dune table dj cre ou la gestion des tables (cration/modification). Dans notre cas, on ne touche pas la structure, on supprime des enregistrements, donc des donnes de la table. On ne touche pas au dictionnaire de donnes. On utilisera par consquent le langage de manipulation de donnes du SGBD. Pour augmenter la taille du champ, on modifie cette fois la structure mme de la table, on utilise alors le langage de description de donnes.

EXERCICE 4

MODLES DE REPRSENTATIONVous devez reprsenter lorganisation de donnes correspondant une classification scientifique despces doiseaux. Quel modle de donnes (hirarchique, rseau, relationnel, objet) choisiriez-vous ? Par nature, ce type de donnes est structur strictement de manire arborescente et cette structure reste assez stable dans le temps. Il est donc tout fait possible dutiliser un simple modle hirarchique. Un modle rseau ne sera pas utile en principe du fait de la structure arborescente des donnes. On peut galement utiliser les modles relationnel ou objet, mais il napporteront pas davantage dcisif dans ce cas (trs) particulier.

EXERCICE 5

MTIERS DES BASES DE DONNESEst-il possible de faire raliser toutes les tapes de la conception dune base de donnes par une mme personne ? Si oui, quelles sont alors ses comptences minimales ? Dans une petite structure, cest souvent la mme personne qui ralise lensemble du processus de construction dune base de donnes. Ce nest videmment pas la bonne mthode, car la vision dun systme dinformation labor par un administrateur de base de donnes est trs oriente par le SGBD quil emploiera. On peut facilement faire le parallle avec le dveloppement de logiciels o un programmeur va avoir une approche dforme par les proccupations lies au langage plutt que dadopter un point de vue sur la structure gnrale de lapplication. Au minimum, la personne devra disposer des comptences en conception de base de donnes et en administration du SGBD qui sera utilis.

Introduction aux bases de donnes 23

Exercices

EXERCICE 6

UTILISATEURS DUNE BASE DE DONNESOn utilise pour cet exercice la base de donnes exemple de vente de voitures. On considre les oprations suivantes : 1. 2. 3. 4. Ajouter une personne dans le fichier client. Modifier les possibilits dajout dans le champ couleur . Augmenter la taille du champ couleur. Sortir le chiffre daffaires par marques pour le mois en cours afin de limporter dans un tableur. 5. Enregistrer une vente. Quels types dutilisateurs sont concerns par ces oprations ? 1. Un utilisateur final (par exemple un vendeur) muni des droits appropris peut intervenir sur le contenu des donnes. 2. Pour cette opration, cela dpend sil sagit dune convention ou si cela est entr au niveau des contraintes du SGBD. Dans le premier cas, un utilisateur final peut sen charger ; dans le second, il faut recourir au concepteur ou ladministrateur de base de donnes. 3. Pas dambigut ici, car on touche la structure mme des donnes ; cela est du ressort du concepteur ou de ladministrateur de base de donnes. 4. Il sagit du domaine du programmeur dapplication qui rcupre les donnes en utilisant le SGBD et qui les traite dans un programme pour leur donner leur forme finale. 5. Un utilisateur final (par exemple un vendeur ou la comptabilit) muni des droits appropris peut intervenir sur le contenu des donnes.

EXERCICE 7

VUES EXTERNESOn utilise galement pour cet exercice la base de donnes exemple de vente de voitures. On considre trois types dutilisateurs de la base : 1. les clients ; 2. les vendeurs ; 3. le service comptabilit. Quelles sont les vues prvoir pour ces catgories dutilisateurs ? 1. Les clients ne doivent avoir accs en lecture quaux informations concernant les voitures en stock (non encore vendues). 2. Les vendeurs, sils grent galement le parc de voitures comme cest souvent le cas, peuvent avoir accs en lecture et en criture toutes les donnes (ventes, voitures, personnes). 3. Le service comptabilit peut avoir accs en lecture toutes les informations, mais ne peut modifier les informations concernant les voitures ou les personnes du fichier client.

24

Cration de bases de donnes

Chapitre

EXERCICE 8

BASE DE DONNES RPARTIESOn dcide de recopier rgulirement une base de donnes complte sur chacun des six sites de lentreprise. Quel est lintrt de cette solution ? Cest une solution coteuse en ressources, en particulier pour la synchronisation de toutes les mises jour, mais qui peut remplir deux fonctions : 1. De toute vidence, lide est que les diffrents sites de lentreprise accdent leur copie locale des donnes. Cela permet dacclrer les accs et de rpartir la charge sur les serveurs locaux de chaque site. Accessoirement, la circulation des requtes dinterrogation et de mise jour peut tre limite au rseau local, ce qui renforce la scurit. 2. Il existe six copies des donnes sur des sites gographiquement spars. En cas de sinistre, on peut repartir sans problmes avec une des copies de la base. Avant de mettre en place un tel dispositif, on doit se poser la question de la mise jour des donnes. Est-ce que les modifications se font uniquement sur la base matre , ce qui semble plus raisonnable, ou peut-on les effectuer sur toutes les bases et consolider ensuite ?

1

EXERCICE 9

XMLPourquoi prfre-t-on utiliser XML plutt que HTML pour reprsenter les donnes provenant dune base de donnes ? Les donnes XML sont dites autodescriptives . Questce que cela signifie et par quel(s) dispositif(s) est-ce ralis ? Par nature, les donnes contenues dans une base de donnes sont structures. Le langage HTML a t conu pour dcrire la mise en forme dun texte sans considration de sa structure interne. Donc, il nest pas adapt si lon dsire conserver la structuration des donnes. Le langage XML a t prcisment cr pour dcrire la structure des donnes. Il est toujours possible de passer ensuite du langage XML au langage HTML par une feuille de style ; linverse nest pas possible. XML permet de reprsenter des structures de donnes diffrentes sous forme arborescente ; il est donc ncessaire de possder une description de la grammaire de la structure. Ce document accompagnateur dun fichier XML est une DTD, comme pour les fichiers XML classiques, ou plus commodment un schma XML. Un des avantages du schma est que lon peut utiliser les mmes algorithmes de parcours que pour le fichier XML.

Introduction aux bases de donnes 25

Exercices

EXERCICE 10

FOUILLE DE DONNES ET ENTREPTS DE DONNESPar des mthodes danalyse dassociations, on dcouvre quen utilisant votre systme dinformation les clients dont le nom commence par M achtent le samedi plus de produits que les autres. Ils gnrent donc un chiffre daffaires plus important, mais ces produits sont marge faible et le bnfice est moins important que pour ceux dont le nom commence par un Z. Quavez-vous intgr comme donnes dans votre entrept de donnes pour pouvoir effectuer cette opration en supposant que votre entreprise soit organise avec une structure de services classique ? Pour obtenir les lments ncessaires lanalyse, il nous faut intgrer les donnes de diffrents services de lentreprise. Les donnes du fichier clientle sont gres par le service commercial (peut-tre avec un tableur ou un traitement de texte pour faire des mailings) afin dobtenir le nom des clients. Les donnes du service comptabilit permettent dobtenir les journaux de ventes ; la gestion est faite par exemple par une application de gestion spcifique connecte aux caisses. Les donnes du service achat sur les ngociations avec les fournisseurs peuvent tre gres par exemple par une application dveloppe en interne. La marge provenant de la ngociation avec les fournisseurs est fluctuante pour le mme article au cours du temps en fonction du march, des personnes qui ngocient, etc. Il serait donc intressant pour ces donnes de disposer des valeurs historises par priodes pour affiner lanalyse par des tendances. Pour intgrer ces donnes provenant de sources diffrentes dans votre entrept de donnes, vous utiliserez une (ou plusieurs) application(s) de type ETL (Extract, Transform and Load) que lon appelle aussi datapumping .

26

Cration de bases de donnes

Chapitre

Analyse du monde rel1. Dmarche danalyse .................28 2. Modlisation par le modle entit-association ......................30 3. Remise en cause et volution du modle ...............................35 4. Reprsentation avec UML ..........40 Exercices 1. Identifiant dune entit ...............44 2. Identification des entits et des associations ....................44 3. Questions associes aux cardinalits ........................45 4. Description du monde rel partir des cardinalits .............47 5. Association inutile .....................48 6. Association rflexive...................49 7. Association ternaire ..................49 8. De lnonc au modle entit-association ......................51 9. Reprsentation avec UML ..........52 10. Autre exemple le camping lUliastru ..................................53

Ce chapitre prsente la premire tape du processus de modlisation du monde rel, qui consiste recueillir les informations puis les transcrire sous une forme conduisant un passage ais au modle relationnel. On utilise cette fin le modle entit-association, dont les concepts et la mise en uvre sont prsents dans ce chapitre. Cette dmarche de modlisation est utilise depuis plus de vingt ans et prsente lintrt de proposer une mthode danalyse simple et efficace dans la majorit des cas. Au cours des dernires annes, la reprsentation utilisant le formalisme du modle entit-association est progressivement remplace par le langage de modlisation UML. Ce dernier apporte, en plus des avantages de la normalisation, de la disponibilit doutils graphiques logiciels ainsi que des possibilits tendues de description. Les bases de la notation UML sont abordes la fin de ce chapitre.

27

1

Dmarche danalyse

1.1 APPROCHE DU MONDE RELComment apprhender et simplifier le monde rel, par nature complexe, pour raliser une modlisation ? Cette tche relve de comptences multiples du domaine dun cabinet de consulting. Il est ncessaire didentifier les besoins des utilisateurs ainsi que les objectifs et les processus dalimentation en donnes des systmes dinformation concevoir. Les bases de donnes sont dornavant au cur de la plupart des applications, et leur structure doit correspondre au mieux aux attentes de lorganisation. Son laboration ncessite diffrentes tapes et se droule souvent en mme temps que le processus danalyse du problme. Des allers-retours entre ces diffrentes tapes de la conception sont souvent ncessaires la constitution du modle conceptuel de la base. On qualifie alors ce processus ditratif. Il sagit de construire la structure de la base de donnes par raffinements successifs. La premire phase de lanalyse du monde rel du problme est ralise par des entretiens, gnralement codifis, avec les utilisateurs. On effectue une analyse du discours pour en extraire linformation utile que lon resitue dans le contexte de lorganisation en gnral. Lobjectif principal est de guider lanalyste, on utilise des mthodes danalyse et de conception issues de ltude des flux dinformation de lentreprise. Parmi celles-ci, on peut citer la mthode Merise dorigine franaise trs rpandue en France dans les annes 1980 ainsi que dautres issues de la recherche et du gnie logiciel, ou spcifiques des grandes entreprises de consulting. La prsentation de ces mthodes fort complexes dpasse largement le cadre de cet ouvrage. Lobjectif de cette section est de donner quelques pistes pour approcher la ralit modliser. Lexpression des besoins repose sur la formulation du problme laide de phrases simples qui dcrivent la ralit modliser. Ces phrases se prsentent sous la forme sujet-verbe-complment , avec une tournure active quand cela est possible. Le but est dobtenir deux types de phrases : Celles qui dcrivent les liens entre les objets du monde rel gnralement une action ou une proprit. Exemple : Un lecteur emprunte un livre. Un livre a un auteur. Celles qui caractrisent la manire dont sont relis ces objets. Exemple : Un lecteur est considr comme lecteur sil a au moins dj emprunt un livre. Un livre peut tre emprunt par plusieurs lecteurs. Il ny a pas de livres anonymes, un livre est crit par au moins un auteur. On doit ensuite prciser les donnes qui constituent les objets ainsi que celles qui caractrisent les liens entre les objets.

RemarqueLe terme dobjet du monde rel employ ici nest pas pris au sens de la programmation objet. Il sagit plutt de caractriser un regroupement logique de donnes. Un titre, un auteur, un diteur constituent un livre. Un nom, un prnom, un numro de Scurit sociale constituent une personne.

28

Cration de bases de donnes

Chapitre

1.2 MISE EN UVREComment procder intuitivement pour obtenir ces phrases ? Un bon point de dpart consiste faire linventaire des objets tangibles ou perus du monde rel. Une fois ces objets identifis, on cherche exprimer le (ou les) lien(s) qui permet(tent) de les associer. Par exemple, si lon doit modliser une activit de location de DVD, les objets que lon peut apprhender immdiatement sont les DVD et les clients. En ce qui concerne les liens entre ces objets, on note quun client rserve un DVD ou quun client loue un DVD, etc. Ensuite, il faut identifier les objets moins faciles percevoir directement : les fournisseurs, les acteurs, les ralisateurs Enfin, une fois les objets identifis, on cherche qualifier les liens trouvs. Il faut tenir compte du fait que le lien est toujours double sens. Par exemple, un client emprunte plusieurs DVD. Un DVD est emprunt plusieurs fois ou nest jamais emprunt par un client. Pour obtenir ce rsultat, quelles questions faut-il se poser et quelles questions doit-on poser aux acteurs de lorganisation ? Dcrivez lactivit globalement, en termes simples, sans entrer dans les dtails, pour identifier les objets et leurs liens ventuels. Indiquez quelles sont les procdures utilises dans lactivit pour caractriser les liens entre les objets. Les procdures permettent dnoncer les contraintes qui seront intgres ensuite dans la base de donnes. On note que lon modlise souvent des actions qui reprsentent une activit, plus rarement des lments statiques. Les actions reprsentent frquemment le lien entre les objets : une personne emprunte un DVD, une voiture est achete par un client, etc.

2

1.3 NOTION DE TEMPSLe temps est une notion importante, une base de donnes modlise des actions qui ont lieu durant une priode de temps. Il faut toujours avoir lesprit cet aspect pour viter des erreurs de conception. Une erreur classique est de confondre laspect simultan dune action avec la possibilit de la ritrer durant la priode concerne. Lorsque lon spcifie qu un livre peut tre emprunt plusieurs fois , il est vident quun livre ne peut tre emprunt par deux personnes simultanment, mais plutt quil pourra tre emprunt plusieurs reprises durant la priode modlise du fonctionnement de la bibliothque.

1.4 CAS PRATIQUEAfin dillustrer les recommandations prcdentes, on considre la modlisation trs schmatique du fonctionnement dun htel. Quelle(s) phrase(s) simple(s) dcri(ven)t lactivit de lhtel ? On peut proposer en premire approche cette phrase : Un htel loue des chambres des clients qui effectuent des rservations. Aprs avoir procd lanalyse de la phrase pour en extraire les parties importantes, on peut la rcrire de la manire suivante : Un client loue une chambre ; un client rserve une chambre.

Analyse du monde rel 29

Les deux objets du monde rel la chambre et le client apparaissent clairement. On a identifi ici un double lien entre ces deux objets, cas assez frquent. Ensuite, on sintresse la caractrisation des liens : Une chambre peut navoir jamais t loue ni rserve. Un client est insr dans le systme dinformations partir du moment o il a effectu soit une rservation soit une location. Un client peut rserver ou louer plusieurs chambres. Une chambre peut tre rserve ou loue plusieurs fois, mais pas pendant la mme priode de temps. On rappelle que lon considre toujours une modlisation associe une priode de temps donne. Au dbut du processus, une chambre peut ne pas encore avoir t loue. Enfin, on dcrit les donnes des objets et des liens. Un client est caractris par son nom, son adresse et son numro de tlphone. Une chambre est caractrise par son numro, un nombre de places, son tarif journalier et la prsence ou non dun cabinet de toilettes. Une location est caractrise par une date de dbut, un nombre de jours et les consommations annexes (petits djeuners, tlphone). Une rservation est caractrise par une date de dbut, un nombre de jours et le versement dune avance ventuelle.

2

Modlisation par le modle entit-associationAprs ltape de recueil dinformations, on dispose dun ensemble de phrases simples qui expriment les besoins dcrivant la ralit modliser : on doit alors en effectuer une reprsentation. Cette dernire est trs importante, car elle est la seule qui donnera une vue densemble des donnes et des liens qui les caractrisent. Le modle obtenu cette tape est en gnral nomm Modle Conceptuel des Donnes (MCD). En effet, on verra lors de ltape du passage au modle relationnel, appel galement modle logique, que cette information napparat plus. Les donnes stockes dans le SGBD seront presque inutiles si lon ne dispose pas du modle conceptuel qui est lquivalent du schma technique dun appareil ou du plan dun btiment. Le formalisme le plus rpandu pour constituer ce schma est le modle entit-association (ou entity-relationship en anglais). Il a t prsent lorigine par P. Chen en 1976 aux tats-Unis quasi simultanment avec le modle de H. Tardieu en France, ce qui explique les notations lgrement diffrentes en Europe et aux tats-Unis, en particulier au niveau de la reprsentation des cardinalits. Le modle entit-association a t normalis lISO. On verra dans la section suivante que lon peut utiliser galement le formalisme UML pour la reprsentation. Le formalisme entit-association , tout comme UML, utilise une reprsentation graphique sous forme de diagrammes. Les entits sont les objets concrets ou abstraits du monde rel voqus plus haut. Les associations reprsentent le lien entre ces entits. Comme on la vu prcdemment, on peut identifier les entits et les associations en effectuant une analyse du discours, cest--dire des phrases de type sujet-verbe-complment . Les sujets et les complments sont les entits, et le verbe modlise lassociation.

30

Cration de bases de donnes

Chapitre

2.1 ENTITSLes entits sont composes de champs de donnes que lon nomme attributs. Un attribut, ou un ensemble dattributs, doit tre choisi comme identifiant de lentit, avec pour objectif didentifier une occurrence (ou reprsentant) de cette entit. La notion didentifiant a les mmes proprits que la cl dans une relation qui sera introduite au chapitre 3. On reprsente une entit par un rectangle qui contient le nom de lentit et ses attributs. Lidentifiant est soulign ou prcd dun caractre # (voir figure 2.1). Figure 2.1Entits chambre, attributs et occurrences.Entit chambre Chambre# IDChambre NombrePlaces Tarif 4 75

2

Occurrences chambre Chambre13

Chambre176 1

Chambre123 2 55

40

Le choix de lidentifiant nest pas toujours trivial. Il est parfois ncessaire dintroduire artificiellement un attribut supplmentaire afin de pouvoir disposer dun identifiant. Dans le cas de lhtel, il faudrait intgrer un attribut pour identifier un client (voir figure 2.2), dans la mesure o aucun des attributs issus de lanalyse ne permet didentifier de manire unique un client. Classiquement, une identification sans ambigut reposera sur un numro unique ; dans notre exemple, cest lattribut IDClient. Les identifiants peuvent tre composs par la juxtaposition de diffrents attributs. Par exemple, on peut identifier un client en juxtaposant les attributs nom+prnom+date_naissance+ville_naissance. En effet, il est peu probable que deux homonymes soient ns le mme jour dans la mme ville. Cependant, dans la pratique, il est recommand, autant que faire se peut, de choisir un seul attribut comme identifiant. En effet, il sera plus difficile de vrifier quun identifiant composite reste valide lorsque les donnes voluent. Cest pourquoi, quand cela est possible, il est indispensable de choisir un identifiant dont les contenus ne sont pas susceptibles dvoluer au fil du temps. On prfre identifier une personne par un numro de scurit sociale que par un numro de passeport qui a une dure de validit limite. Figure 2.2Entit client.Client# IDClient Nom Adresse NumTlphone

Analyse du monde rel 31

2.2 ASSOCIATIONSLes associations reprsentent les liens qui existent entre les entits. Elles sont composes le cas chant dattributs, bien que cela ne soit pas indispensable. Par consquent, il nest pas ncessaire de disposer dun identifiant pour une association. Lorsque les entits sont associes par deux, elles sont qualifies de binaires. Cependant, il est possible den associer plus de deux ; les associations sont alors non plus binaires, mais n-aires. Le nombre dentits associes sappelle le degr de lassociation. On reprsente une association par un ovale qui contient le nom de lassociation et ses attributs. Figure 2.3Entits client et chambre relies par lassociation location.Chambre# IDChambre NombrePlaces Tarif

Client LocationDateDbut NombreJours # IDClient Nom Adresse NumTlphone

Il peut galement y avoir plus dune association entre deux entits ; cest le cas de lexemple de lhtel (voir figure 2.4). Les entits client et chambre sont relies par deux associations ayant des attributs diffrents : location et rservation. Figure 2.4Entits client et chambre relies par les associations location et rservation.Chambre# IDChambre NombrePlaces Tarif

Client LocationDateDbut NombreJours # IDClient Nom Adresse NumTlphone

RservationDateDbut NombreJours

Enfin, il est possible de relier par une as