Sie sind auf Seite 1von 33

Patrice BOURSIER Professeur, Univ. de La Rochelle patrice.boursier@univ-lr.

fr

Bases de Donnes

Notes de cours

SOMMAIRE
Chapitre 1 : Introduction Chapitre 2 : Modle conceptuel Chapitre 3 : Modle relationnel Chapitre 4 : Langages de requtes / SQL Chapitre 5 : SQL - Droits daccs et vues Chapitre 6 : Algbre relationnelle Chapitre 7 : Calcul relationnel Chapitre 8 : Normalisation Chapitre 9 : Stockage et indexation

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 2

1. INTRODUCTION
1.1. Objectifs Dfinition : base de donnes (BD) = ensemble de donnes accessibles et exploitables au moyen dun ensemble de programmes. Dfinition : systme de gestion de bases de donnes (SGBD) = outil (logiciel) permettant daccder des BD. Exemples de SGBD : professionnels relationnels : Oracle, Sybase, Informix, ..., professionnels orients-objets : Versant, Objectstore, O2, ... personnels : Access, Paradox, 4D, ..., consultation (en local ou distance 1) des donnes relatives aux produits dune entreprise, consultation distance des cours de la bourse, facturation partir des donnes relatives aux commandes-clients et aux caractristiques de produits, ...

Exemples dutilisations :

Notions de donnes vs. informations : donne = information code sur un support (dfinition personnelle non officielle) Notion de systme dinformation : plus gnrale que celle de BD. Inclut la description des flux de donnes, les aspects organisationnels, ... Objectifs des SGBD : exploitation de gros volumes de donnes => structures de donnes et mthodes daccs efficaces, exploitation par diffrents types dutilisateurs => diffrents outils daccs ou interfaces-utilisateurs, gestion de donnes sensibles => scurit et fiabilit des outils, aspect multi-utilisateurs => mcanismes de protection2,

1
2

intro. Internet, Intranet cf. cours Systme

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 3

1.2. Justification historique Avant les SGBD : criture de programmes par des programmeurs dapplication utilisant le systme de gestion de fichiers3 pour grer et exploiter les donnes risques lis au manque de scurit + multiplication des efforts (programmes similaires crits dans diffrents services pour des besoins proches). Consquences : redondances : fichiers contenant les mmes donnes, mais utilises par des personnes diffrentes, risque dincohrences : du fait des redondances et des MAJ non centralises (ex: adresse dun fournisseur), intgrit des donnes : respect de contraintes qui peuvent tre programmes (ex: contrles sur date de naissance, sur code pstal, numro de tl., ...), pbs lis la scurit : utilisateurs de diffrents niveaux dexprience et avec diffrents droits daccs => mots de passe, pbs lis au partage des donnes : accs en lecture / criture.

1.3. Indpendance donnes / programmes L'objectif premier des SGBD est d'assurer cette indpendance, en librant les programmeurs et les utilisateurs en gnral de la connaissance prcise de la faon dont les donnes sont structures. 1.4. Niveaux dabstraction On a coutume de distinguer plusieurs niveaux de reprsentation ou dabstraction pour les bases de donnes et les systmes dinformation de manire plus gnrale : le niveau externe (utilisateur) -> vues le niveau conceptuel (concepteur, administrateur) -> modles de donnes le niveau interne (stockage) -> structures de donnes (fichiers, index)

1.5. Modles de donnes On distingue gnralement deux catgories de modles de donnes : les modles orients information -> dfinition du schma conceptuel modle entit-association et ses drivs (MERISE, ...) les modles orients donnes -> mise-en- uvre du SGBD

sous-ensemble du systme dexploitation

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 4

modle relationnel, modle hirarchique, modle rseau/CODASYL 1.6. Langages 2 types de langages : langages procduraux dcrivent la fois ce que lutilisateur souhaite et lalgorithme de rsolution du problme : quoi et comment langages dclaratifs (ou assertionnels) se limitent dcrire la demande de lutilisateur : quoi 2 types de fonctionnalits dans les BD langage de dfinition (LDD) dfinition du dictionnaire des donnes (mta-donnes) langage de manipulation (LMD) consultation + mise jour (insertion, suppression, modification) 1.7. Fonctions lies lexploitation des SGBD Administrateur de bases de donnes analyse fonctionnelle dfinition du schma conceptuel choix des mthodes de stockage et daccs modification de lorganisation conceptuelle / physique gestion des droits daccs spcification des contraintes dintgrit Classes dutilisateurs utilisateurs occasionnels (programmes dapplication) utilisateurs experts (SQL) programmeurs dapplications (SQL + langage de programmation hte)

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 5

1.8. Fonctionnalits et organisation gnrale

Utilisateurs occasionnels

Programmeurs dapplications

Utilisateurs avancs

Administrateur base de donnes

Interfaces type web

Programmes dapplication

Requtes (SQL)

Schma de base de donnes

Prcompilateur SQL Code prog. dapplications

Compilateur SQL

Interprteur SQL

Noyau du SGBD (val. / trait. des requtes)

Interfaces type web

Gestionnaire de tampons

Gestionnaire de fichiers

Index

Statistiques Dictionnaire des donnes

Donnes

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 6

2. MODELISATION CONCEPTUELLE
2.1. Introduction Objectif = reprsentation symbolique et rduite de la ralit reprsentation logique (vs. physique) Les modles conceptuels de type entit-association (E/A) tels que MERISE sont progressivement remplacs par des modles sinspirant des mthodes de conception de type orient-objet. On qualifie aussi ces modles de langages de modlisation (cf. UML : Unified Modeling Language). 2.2. Entit Dfinition : entit = reprsentation logique dun individu (au sens large, cest--dire lment dun ensemble) ou objet. Une entit correspond galement une classe d' Une entit est caractrise par son unicit => identifiant unique (cl). Ex: no. SS, no. client, no. produit. Une entit peut tre reprsente par un ensemble dattributs 4 . Ex: nom dune personne, ge, adresse, nom dun produit, prix unitaire, quantit en stock, ... Chaque attribut peut prendre un certain nombre de valeurs -> domaine de lattribut5. Une entit du monde rel est ainsi reprsente par un ensemble dattributs instancis laide de valeurs. Une entit peut tre considre comme dpendante si son existence est conditionne par lexistence dune autre ou dautres entits. Ex: si un produit nest livr que par un seul fournisseur et que ce fournisseur disparait, le produit va lui aussi disparaitre. On parle aussi dentits dominantes / domines. 2.3. Association Une association relie des classes dentits entre elles. Ex: association reliant : (i) des commandes caractrises par une date de commande, le numro dentification du client, les numros de produits commands ainsi que les quantits, avec (ii) des produits vendus par lentreprise et

4 5

la cl en fait partie. rapprocher de la notionde type en programmation (types tendus)

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 7

caractrises par un numro de produit, un libell, un prix unitaire et une quantit en stock. Une association relie en gnral deux classes dentits (ass. binaire), mais elle peut aussi relier plusieurs classes dentits (ass. n-aires). Les entits jouent des rles diffrents dans une association. Ex: un client passe une commande, la commande est passe6 par un client (autre classe dentits), le produit est r f r enc dans la commande, la commande r f r ence certais produits, ... Au sein dune mme classe, une ou plusieurs entits peuvent tre mises en relation avec une ou plusieurs entits dune autre classe -> associations de type 1-1, 1-n ou n-m -> ca r dinali t dune association Exemple : une commande peut concerner plusieurs produits, mais un produit peut aussi faire partie de plusieurs commandes -> assoc. n-m. Attention aux in t e rpr t a t ions de la ralit pouvant conduire des reprsentations diffrentes et parfois errones -> importance de la phase denqute et danalyse auprs des utilisateurs. 2.4. Identificateurs et cls Rappel : chaque entit est caractrise par un identicateur (ou identifiant) unique, quon appelle aussi cl (ou cl primaire) daccs lentit. Lorsquune entit possde plusieurs identifiants uniques, la cl peut tre choisie parmi ces identifiants qui sont considrs comme un ensemble de cls candidates. Cet identifiant peut tre constitu par un seul attribut de lentit (ex. no. SS), mais il peut tre ncessaire de combiner plusieurs attributs afin de constituer la cl. On parlera alors de cl compose. Ex: pour des personnes dont on ne connait pas le no. SS, on peut combiner nom, prnom et code postal ou anne de naissance afin de rduire au maximum les risques de combinaisons quivalentes (ou doublons). On pourra aussi affecter une association un identifiant unique qui sera obtenu par combinaison des identifiants des entits qui y participent. Dans certains cas, il peut savrer impossible de constituer un identifiant unique. Dans ce cas, on qualifiera lentit d en t i t f aible (vs. entit forte). Cette notion est rapprocher de la notion prcdente dentit dpendante ou domine : une entit faible est une entit domine.

remarquer la dualit prsent / pass

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 8

2.5. Diagrammes entits-associations Classes dentits -> rectangles. Atributs -> ellipses Associations -> losanges. Exemples : Produits / Fournisseurs / Clients, Comptes bancaires / Clients / Agences, Etudiants / Cours / Profs. 2.6. Spcialisation / gnralisation Certaines classes dentits peuvent se spcialiser en sous-classes, par ex. les comptes bancaires se spcialisent en comptes-chques et en comptes dpargne. Inversement, les comptes-chques et comptes dpargne sont des sous-ensembles de la classe plus gnrale des comptes bancaires. -> assoc. Is-a Notion dhritage : une entit spcialise h ri t e des attributs de lentit gnralise.

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 9

3. MODELE RELATIONNEL
3.1. Introduction Introduit par E.F. Codd en 1970 Premiers systmes commercialiss la fin des annes 70, systmes efficaces au dbut des annes 80 Modle fond sur la thorie des ensembles et la notion de relation (bases mathmatiques) Dfinition dune relation : R (A1 : D1, A2 : D2, An : Dn), avec : R = nom de la relation Ai = noms des attributs Di = domaines de dfinition des attributs (valeurs possibles) n = cardinalit de la relation Exemple : PERSONNE (Nom : char(20), Prnom : char(20), Age : integer, Adresse : varchar(50), CP : integer, Ville : char(20)) Ce qui est crit ci-dessus constitue en fait le schma de la relation PERSONNE. La relation PERSONNE est reprsente sous la forme dune table :

Nom Dupont Martin

Prnom Pierre Alain

Age 50 33

Adresse 7, rue du Port 4, place de la Gare

CP 17000 87000

Ville La Rochelle Limoges

Une ligne de la table constitue un lment de la relation, ou n-uplet. Elle reprsente aussi une personne, instance de la relation PERSONNE. Dun point de vue logique (mathmatique), il sagit dun prdicat qui met en relation les attributs de la relation. Il ny a pas dordre sur les lignes (ni sur les colonnes) dans une table / relation. Il ny a pas non plus dinformation sur lorganisation physique (stockage des donnes) qui est de ce fait cache lutilisateur.

3.2. Du modle entit-association au modle relationnel 1 entit se traduit par 1 relation, qui contient tous les attributs de lentit

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 10

1 association se traduit par 1 relation, qui contient tous les attributs de lentit ainsi que les attributs de lassociation

Exemple : schma entit-association Cours / Etudiants / Profs Il se traduit par le schma relationnel de BD (ensemble de schmas de relation) suivant : ETUDIANT (Num_Etudiant integer, Nom char(20), Adresse varchar(50)) COURS (Num_Cours integer, Nom char(20)) PROFS (Num_Prof integer, Nom char(20), Adresse varchar(50)) COURS_SUIVIS (Num_Etudiant integer, Num_Cours integer) COURS_ENSEIGNES (Num_Prof integer, Num_Cours integer) 3.3. Langages de manipulation Deux classes de langages sappliquent au modle relationnel : lalgbre relationnelle, qui est un langage de type procdural, les langages de calcul relationnel , qui sont des langages de type dclaratif (ou assertionnel), avec dune part le calcul relationnel variables domaines et dautre part le calcul relationnel variables n-uplets.

Le langage SQL ("Structured Query Language") est le langage d'interrogation de rfrence pour les utilisateurs de SGBD relationnels (cf. chapitre suivant).

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 11

4. LANGAGES DE REQUETES / SQL


4.1. Introduction SQL = Structured Query Language Langage de requtes standard pour linterrogation de bases de donnes relationnelles (SQL-1 en 1989, puis SQL-2 en 1992, SQL-3 ?) Dvelopp lorigine pour le protype de SGBD recherche dIBM SYSTEM/R, qui a dbouch sur les produits commerciaux SQL/DS et DB-2 Mlange dalgbre relationnelle et de calcul relationnel variables n-uplets

4.2. Oprations sur tables Dfinition de schmas de relations (et cration des tables correspondantes) : create table nom_relation (nom_attribut_1 type_attribut_1, ) Suppression de tables : drop table nom_relation Modification de tables (ajout de colonne) : alter table nom_relation add nom_attribut 4.3. Oprations sur n-uplets Insertion de n-uplets dans une table : insert into nom_relation values (valeur_attribut_1, , valeur_attribut_n) Suppression de n-uplets dans une table : delete from nom_relation [where condition] Modification de n-uplets dans une table : update nom_relation set nom_attribut = valeur_attribut [where condition] 4.4. Opration de consultation select nom_attribut_1, , nom_attribut_n from nom_relation_1, , nom_relation_m where condition_1, , condition_p Quelques trucs savoir : pour voir tous les attributs dune relation : select * from nom_table
P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 12

limination des doubles : select distinct nom_attribut ordonnancement des rsultats : order by nom_attribut ( la fin de la requte) oprateurs arithmtiques : = != > >= < <= oprateurs logiques : and, or, not test entre valeurs : nom_attribut between val_attr_1 and val_attr_2 appartenance dune valeur dattribut un ensemble : [not] in, any, all fonctions agrgat : avg, sum, min, max, count utilisation des fonctions agrgat avec groupage : group by, having Attention : mme si le langage SQL est normalis, chaque SGBD a des particularits syntaxiques => voir la documentation du systme utilis !

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 13

5. SQL - DROITS DACCES ET VUES


5.1. Introduction Ncessit de mcanismes de protection et de scurit dans les SGBD diffrents niveaux : a) contrle des utilisateurs souhaitant accder une BD b) contrle de laccs aux donnes (lecture, criture) c) contrle de lintgrit des donnes, et de la validit des oprations de MAJ Deux classes de droits daccs aux donnes : a) consultation b) MAJ -> insertion, suppression, modification Exemples de droits daccs sur une BD : Relation PERSONNEL (Id, Nom, Adresse, Service, Salaire) a) Dupont possde tous les droits daccs (consultation, MAJ) sur la relation PERSONNEL b) Dupont ne possde aucun droit c) Dupont ne peut que lire que linformation le concernant, et il ne peut pas la modifier d) Dupont ne peut que lire que linformation le concernant, et il peut modifier son adresse e) Dupont ne peut que lire que linformation le concernant, et il peut modifier son salaire sil est > 75 000 F f) Dupont ne peut que lire que linformation le concernant, et il peut modifier son salaire sil est responsable du service (information prsente dans une autre table) Pb : le schma de la BD peut voluer au fil du temps (MAJ des schmas de relation) => le mcanisme de contrle des droits daccs doit en tenir compte 5.2. Mcanismes doctroi et dannulation des droits daccs Deux commandes pour ladministrateur de la base de donnes : grant (octroi) et revoke (annulation)

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 14

Les droits daccs sot stocks dans le dictionnaire des donnes (mta-base). Ils sont utiliss par le SGBD pour vrifier la validit des accs une BD Syntaxe en SQL-2 : usage -> accs au domaine de dfinition dun attribut (ou dun ensemble dattributs) select -> accs en lecture (consultation) insert (col) -> insertion de valeurs dans la colonne spcifie insert -> insertion de valeurs dans toutes les colonnes dune table update (col) -> modification de valeurs dans la colonne spcifie update -> modification de valeurs dans toutes les colonnes dune table delete -> suppresion de n-uplets references (col) et references -> possibilit de faire rfrence certaines colonnes ou toutes les colonnes dune table dans des contraintes dintgrit all -> tous les droits Forme gnrale de la commande grant : grant droit on objet to utilisateur [with grant option] objet = table(s), vue(s), colonne(s) utilisateur = 1 ou plusieurs utilisateurs, ou public pour dsigner tous les utilisateurs with grant option = transmission des droits dautres utilisateurs Exemple dutilisation sur la table PERSONNEL a) le directeur possde tous les droits, et il peut les transmettre grant all on table PERSONNEL to directeur with grant option b) la secrtaire peut seulement insrer des n-uplets grant insert on table PERSONNEL to secrtaire c) le DRH peut augmenter les salaires grant select, update (Salaire) on table PERSONNEL to DRH Forme gnrale de la commande revoke : revoke droit on objet from utilisateur exemple : revoke select on table PERSONNEL from Dupont

5.3. Dfinition des vues Rappel : Les tables


Cours Bases de Donnes UPF Fvrier 2002
Page 15

P. Boursier

6. ALGEBRE RELATIONNELLE
6.1. Introduction Les requtes SQL soumises par lutilisateur sont traduites par le SGBD en oprations de lalgbre relationnelle. Lalgbre relationnelle est le langage de manipulation quutilise le SGBD pour effectuer des oprations sur les relations (tables). Utilisateurs
Requtes SQL

SGBD

Algbre relationnelle

6.2. Oprateurs Deux types doprateurs, unaires (oprant sur une relation) et binaires (oprant sur deux relations). Cinq oprateurs de base : slection (), projection (), union (), diffrence (-) et produit cartsien (x). Autres oprateurs dduits (pour faciliter lexpression des requtes) : intersection (), jointure ( ) et division (). Oprateurs dduits partir des oprateurs de base : r s = r - (r - s) r s = (r x s) r s = R-S (r) R-S ( ( R-S (r) x s ) r )

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 16

6.3. Dfinition formelle des oprateurs Union (r s) : lunion de 2 relations r et s (de mme schma) est une relation t (de mme schma) contenant lensemble des n-uplets appartenant r ou s ou aux 2 relations Diffrence (r - s) : la diffrence de 2 relations r et s (de mme schma) est une relation t (de mme schma) contenant lensemble des n-uplets appartenant r et nappartenant pas s Intersection (r s) : lintersection de 2 relations r et s (de mme schma) est une relation t (de mme schma) contenant lensemble des n-uplets appartenant la fois r et s Projection (r s) : la projection dune relation r de schma R (A1, A2, , An) sur les attributs Ai1, Ai2, , Aip est une relation r de schma R (Ai1, Ai2, , Aip) dont les n-uplets sont obtenus par limination des valeurs des attributs de R nappartenant pas R et par suppression des n-uplets en double Slection (r s) : la slection sur la relation r par une qualification Q est une relation r de mme schma dont les n-uplets sont ceux de r satisfaisant Q Produit cartsien (r x s) : le produit cartsien de 2 relations r et s (de schma quelconque) est une relation t ayant pour attributs la concatnation de ceux de r et de s, et dont les n-uplets sont toutes les cocatnations dun n-uplet de r un n-uplet de s Jointure (r s) : la jointure de 2 relations r et s (de schma quelconque) suivant une qualification multi-attributs Q est une relation t contenant lensemble des n-uplets du produits cartsien r x s satisfaisant Q Division (r s) : le quotient de la relation r de schma R (A1, A2, , An) par la sous-relation s de schma S (Ap+1, , An) est la relation q de schma Q (A1, , Ap) forme de tous les n-uplets qui, concatns chacun des n-uplets de s, donnent toujours un n-uplet de r Exemples : Soit le schma de relation FOURNISSEUR (Nom_Fournisseur, Adresse, Produit, Prix).

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 17

7. CALCUL RELATIONNEL
7.1. Introduction

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 18

8. NORMALISATION
8.1. Introduction L'objectif de la normalisation est de construire un schma de base de donnes cohrent et possdant certaines proprits vrifies par la satisfaction de formes normales. Pour une application spcifique, il est en effet possible de proposer plusieurs schmas. Les questions qui se posent alors sont les suivantes : a) qu'est-ce qu'un bon schma ? b) quel schma choisir ? Un mauvais schma dfini lors de la phase de conception peut conduire un certain nombre d'anomalies pendant la phase d'exploitation de la base : des redondances d'information, des anomalies lors des oprations de mise jour (insertions, suppressions, modifications). Exemple : Soit le schma de relation FOURNISSEUR (Nom_Fournisseur, Adresse, Produit, Prix). Une relation (table) correspondant ce schma pourra ventuellement contenir plusieurs produits pour un mme fournisseur. Dans ce cas, l'adresse du fournisseur sera duplique dans chaque n-uplet (redondance). Si on souhaite modifier l'adresse d'un fournisseur, il faudra rechercher etmettre jour tous les n-uplets correspondant ce fournisseur. Si on insre un nouveau produit pour un fournisseur dj rfrenc, il faudra vrifier que l'adresse est identique. Si on veut supprimer un fournisseur, il faudra retrouver et supprimer tous les nuplets correspondant ce fournisseur (pour diffrents produits) dans la table. Ces anomalies n'apparaitront pas si on dcompose le schma initial de base de donnes. Par contre, la dcomposition d'un schma relationnel au cours de la normalisation risque d'entrainer une dgradation des performances, du fait des oprations de jointure ncessaires.

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 19

Les 3 premires formes normales ont t proposes par E.F. Codd ("inventeur" du modle relationnel) en 1972. La forme normale dite de Boyce-Codd a t propose en 1974. Les 4me (1977) et 5me (1979) formes normales ont t proposes ensuite par Fagin, mais elles ne concernent que des cas rares et trs spcifiques. Les formes normales s'appuient sur les dpendances fonctionnelles entre attributs d'un schma de base de donnes. 8.2. Dpendances fonctionnelles Dfinition : un attribut (ou un groupe d'attributs) B est dit "fonctionnellement dpendant" d'un attribut (ou d'un groupe d'attributs) A si : a1 = a2 => b1 = b2, a1, a2, b1, b2 tant des ralisations (valeurs) des attributs A et B dans des nuplets de la base de donnes. On dit alors que A "dtermine" B, et on note A -> B. Exemple : Soit le schma de relation PERSONNE (No_SS, Nom, Adresse, Age, Profession). Les dpendances fonctionnelles qui s'appliquent sur ce schma de relation sont les suivantes : No_SS -> Nom, No_SS -> Adresse, No_SS -> Age, No_SS -> Profession. On pourra aussi crire : No_SS -> Nom Adresse Age Profession. L'attribut No_SS dtermine tous les attributs du schma de relation. Il s'agit d'une proprit de la cl d'une schma de relation. Exercice : Soit la relation suivante r de schma R (A, B, C, D, E). A a1 a1 a2 a2 a3 B b1 b2 b1 b1 b2 C c1 c2 c3 c4 c5 D d1 d2 d3 d3 d1 E e1 e1 e1 e1 e1

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 20

Les dpendances fonctionnelles satisfaites par R sont les suivantes : A -> E ; B -> E ; C -> ABDE ; D -> E ; AB -> D ; AD -> B ; BD -> A. 8.3. Axiomes d'Armstrong et couverture minimale A partir d'un ensemble F de dpendances fonctionnelles entre les attributs d'un schma de relation R, on peut en dduire d'autres partir des trois proprits suivantes : a) transitivit : si X -> Y, et Y -> Z, alors X -> Z, b) augmentation : si X -> Y, alors XZ -> Y pour tout groupe Z d'attributs appartenant au schma de relation, c) rflexivit : si X contient Y, alors X -> Y. A partir de ces trois axiomes de base, on peut dduire d'autres rgles : d) union : si X -> Y et Y -> Z, alors X -> YZ, e) pseudo-transitivit : si X -> Y et WY -> Z, alors WX -> Z, f) dcomposition : si X -> Y et Z contenu dans Y, alors X -> Z. La fermeture d'un ensemble d'attributs X, note (X)+ reprsente l'ensemble des attributs de R qui peuvent tre dduits de X partir d'une famille de dpendances fonctionnelles en appliquant les axiomes d'Armstrong. Ainsi, Y sera inclus dans (X)+ ssi X -> Y. Calcul de la fermeture d'un ensemble d'attributs : a) initialiser (X)+ X, b) trouver une DF de F possdant en partie gauche des attributs inclus dans (X)+, c) ajouter dans (X)+ les attributs placs en partie droite de la DF, d) rpter les tapes b) et c) jusqu' ce que (X)+ n'volue plus. Exercice : Soit F = { A -> D ; AB -> E ; BI -> E ; CD -> I ; E -> C }. a) Calculer la fermeture, sous F, de AE. Solution : au dpart, (AE)+ = AE, A -> D permet d'ajouter D : (AE)+ = AED,
P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 21

E -> C permet d'ajouter C : (AE)+ = AEDC, CD -> I permet d'ajouter I : (AE)+ = AEDCI. b) Calculer la fermeture, sous F, de BE. Solution : au dpart, (BE)+ = BE, E -> C permet d'ajouter C : (BE)+ = BEC. Exercice : Soit F = { AB -> C ; B -> D ; CD -> E ; CE -> GH ; G -> A }. En utilisant la notion de fermeture d'un ensemble d'attributs, montrer que : a) AB -> E, Solution : B -> D |= AB -> D par augmentation AB -> C et AB -> D |= AB -> CD par union AB -> CD et CD -> E |= AB -> E par transitivit b) BG -> C, Solution : G -> A |= BG -> A par augmentation BG -> BG |= BG -> B par projection BG -> A et BG -> B |= BG -> AB par union BG -> AB et AB -> C |= BG -> C par transitivit c) AB -> G. Solution : AB -> E et AB -> C |= AB -> CE par additivit AB -> CE et CE -> GH |= AB -> GH par transitivit AB -> GH |= AB -> G par projection Inversement, on peut simplifier F en supprimant les dpendances fonctionnelles redondantes, c'est dire celles qui peuvent tre dduites partir d'un ensemble minimal F' appel couverture minimale de F. Cet ensemble F' est tel que l'ensemble F+ des dpendances fonctionnelles dduites reste inchang. Cet ensemble F+ est appel fermeture transitive de F. Algorithme de calcul de la couverture minimale :

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 22

a) crire toutes les dpendances fonctionnelles de F sous la forme X -> A, o X est un groupe d'attributs de R, et A un attribut lmentaire. Les dpendances fonctionnelles du type X -> A1 A2 An sont remplaces par n dpendances fonctionnelles X -> Ai. b) essayer de supprimer des dpendances fonctionnelles en utilisant la notion de fermeture d'un ensemble d'attributs, (X)+. 8.4. Dcomposition d'un schma relationnel La dcomposition consiste remplacer un schma R (A1, A2, , An) par un ensemble de schmas T = {R1, R2, , Rk} tels que R = R1 R2 Rk, les schmas Ri n'tant pas obligatoirement disjoints. Cette opration, qui fait partie du travail de l'administrateur de base de donnes, a pour objectif d'liminer les redondances et anomalies de mise jour voques prcdemment. Exemple : Soit le schma de relation FOURNISSEUR (Nom_F, Adresse_F, Produit, Prix). Les DF s'appliquant sur ce schma sont les suivantes : F = {Nom_F -> Adresse_F ; Nom_F Produit -> Prix}. Une dcomposition possible de ce schma aboutit aux schmas R1 = (Nom_F, Adresse_F) et R2 = (Nom_F, Produit, Prix). Il est alors possible avec cette dcomposition d'ajouter ou de modifier un fournisseur dans la relation R1 sans incidence sur la relation R2. Avant de supprimer un fournisseur dans R1, il faudra quand mme s'assurer qu'il n'y a plus de produits correspondant ce fournisseur dans R2. Si fournisseur est la relation (table contenant des donnes) correspondant au schma FOURNISSEUR, alors en dcomposant on aura : r1 = Nom_F Adresse (fournisseur) et r2 = Nom_F Produit Prix (fournisseur) et la jointure des relations r1 et r2 redonnera la relation founisseur. 8.5. Dcomposition dans perte d'information (SPI) Soit un schma de relation R dcompos en T = {R1, R2, , Rk}, et un ensemble F de dpendances fonctionnelles. La dcomposition de R est dite SPI "sous F" si : r satisfaisant F, r = R1 (r) jointure R2 (r) jointure Rk (r)

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 23

La "mthode des tableaux" permet de vrifier qu'une dcomposition se fait sans perte d'information. Elle comprend deux phases : a) on construit un tableau avec autant de colonnes que d'attributs Aj, et autant de lignes que de schmas de dcomposition Ri, b) on effectue un remplissage initial du tableau qui correspond la dcomposition envisage, et on procde de la faon suivante : l'intersection de la ligne i et de la colonne j, on met aj si l'attribut Aj appartient au schma de relation Ri, bij sinon, c) pour chaque DF X -> Y appartenant F, on cherche des lignes du tableau pour lesquelles les lments correspondant tous les attributs de X sont gaux. Si c'est le cas, on galise les lments de ces lignes pour les attributs de Y : si au-moins un des lments correspondant Y est gal aj, alors tous les autres sont galiss aj, sinon, les lments sont galiss bij. En fin de parcours, si une des lignes est remplie de a, alors la dcomposition est SPI. Exemple : Soit le schma de relation R (Nom_F, Adresse_F, Produit, Prix), avec comme ensemble de DF F = {Nom_F -> Adresse_F ; Nom_F Produit -> Prix}. Considrons la dcomposition de ce schma en R1 = (Nom_F, Adresse_F) et R2 = (Nom_F, Produit, Prix). Remplissage initial du tableau : Nom_F R1 a1 R2 a1 Adr_F a2 Produit a3 Produit a3 Prix a4 Prix a4

Application de la DF Nom_F -> Adr_F : Nom_F Adr_F R1 a1 a2 R2 a1 a2 Exercice : Mme question avec : R (Etudiant, Examen, Heure, Date),

F = {Etudiant Examen -> Heure Date ; Etudiant Heure Date -> Examen} R1 (Etudiant, Examen) et R2 (Etudiant, Heure, Date).

Exercice : Mme question avec :


P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 24

R (Num_Vol, Date, Porte, Heure, Destination), F = {Num_Vol Date -> Porte ; Num_Vol -> Destination Heure ; Date Porte Heure -> Num_Vol} R1 (Num_Vol, Destination, Heure) et R2 (Num_Vol, Porte, Date).

8.6. Dcomposition prservant les dpendances (SPD) Soit un schma de dcomposition T = {R1, R2, , Rk}, et un ensemble F de dpendances fonctionnelles. Soit Z (F) l'ensemble des DF {X -> Y} appartenant F+ (fermeture de F), et tel que XY Z. On dit que T prserve les DF si R1 (F) R2 (F) Rk (F) permet de retrouver l'ensemble F d'origine. Remarque : cette contrainte est importante car elle signifie lorsqu'elle est vrifie que les contraintes d'intgrit de la relation R seront conserves avec la dcomposition. Exemple : Soit le schma de relation R (Nom_F, Adresse_F, Produit, Prix), avec comme ensemble de DF F = { Nom_F -> Adresse_F ; Nom_F Produit -> Prix }. Considrons la dcomposition de ce schma en R1 = (Nom_F, Adresse_F) et R2 = (Nom_F, Produit, Prix). R1 (F) = {Nom_F -> Adresse_F} R2 (F) = {Nom_F Produit -> Prix} R1 (F) R2 (F) |= F, et la dcomposition prserve donc les dpendances. Exercice : Mme question avec : R (Etudiant, Examen, Heure, Date), F = {Etudiant Examen -> Heure Date ; Etudiant Heure Date -> Examen} R1 (Etudiant, Examen) et R2 (Etudiant, Heure, Date).

Exercice : Mme question avec : R (Num_Vol, Date, Porte, Heure, Destination), F = {Num_Vol Date -> Porte ; Num_Vol -> Destination Heure ; Date Porte Heure -> Num_Vol} R1 (Num_Vol, Destination, Heure) et R2 (Num_Vol, Porte, Date).
Cours Bases de Donnes UPF Fvrier 2002
Page 25

P. Boursier

8.7. 1re forme normale (FN1) Dfinition : une relation est en 1re forme normale si elle ne contient que des "valeurs atomiques", c'est--dire pas de "groupes rptitifs". Exemple : la valeur "Jacques" affecte l'attribut Prnom Contre-exemple : la valeur "Jacques, Paul" affecte l'attribut Prnom, moins qu'il ne s'agisse d'un prnom compos. De la mme faon, on ne pourra pas mettre dans un mme attribut Parent tous les enfants d'une personne. Il faudra, soit prvoir autant de colonnes que de nombre d'enfants possibles, soit insrer dans la base autant de n-uplets que d'enfants en rptant chaque fois le nom du parent. Remarque : cette restriction est trs contraignante pour certaines classes d'applications telles que la conception assiste par ordinateur (CAO) ou les systmes d'information gographique (SIG). 8.8. 2me forme normale (FN2) La 2me forme normale s'appuie sur la notion de DF "complte" (ou "pleine"). Une DF X -> Y est complte si, X et Y tant attributs d'une mme relation, Y n'est pas fonctionnellement dpendant d'un sous-ensemble de X. Exemple : si AB -> C sur R (A, B, C), on ne peut avoir ni A -> C ni B -> C. Dans le cas contraire, c'est--dire si on peut enlever un attribut de X, et que la DF est toujours applicable, on dit qu'elle est "partielle". Dfinition : une relation est en 2me forme normale si elle est dj en 1re forme normale, et si tout attribut nappartenant pas la cl (primaire) dpend compltement de cette cl, cest--dire si toutes les DF sappliquant sur R sont compltes. Remarque : si toutes les DF sont des DF "simples", avec un seul attribut en partie gauche, ou si les cls sont atomiques, alors la relation est FN2. 8.9. 3me forme normale (FN3) En dcomposant R en R1 et R2, on limine des risques d'erreurs, mais on peut avoir d'autres types d'erreurs, lors d'oprations de mise jour, du fait des DF "transitives". Dfinition : une DF X -> Z est transitive lorsqu'on a X -> Y et Y-> Z (application de la transitivit avec les axiomes d'Armstrong). Dfinition : une relation est en troisime forme normale si elle satisfait FN1 et FN2, et si aucun attribut n'appartenant pas la cl (primaire) ne dpend de la cl

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 26

par des DF transitives, c'est--dire si aucune DF transitive ne s'applique sur cette relation. Pour rendre la relation FN3, il faut donc liminer les DF transitives en plaant certains attributs dans une autre relation. Autre dfinition : Une relation est FN3 si, pour toute DF X -> A s'appliquant sur R avec A non inclus dans X, soit X est cl de R, soit A fait partie d'une cl de R. Exemple : Soit le schma de relation R (Nom_F, Adresse_F, Produit, Prix), avec comme ensemble de DF F = {Nom_F -> Adresse_F ; Nom_F Produit -> Prix}. La cl de R est [Nom_F Produit]. Pour Nom_F -> Adresse_F, Nom_F n'est pas cl, et Adresse_F ne fait pas partie de la cl. La relation n'est donc pas FN3. 8.10. Forme normale de Boyce-Codd (FNBC) Avec FN3, les DF partielles et transitives ont t limines pour les cls primaires, mais il faut galement considrer les autres cls possibles (cls "candidates") si elles existent. Remarque : si la relation ne contient qu'une cl et qu'elle est FN3, alors elle est aussi FNBC. Dfinition : une relation est FNBC si elle est FN1, FN2 et FN3, et si toutes les parties gauches des DF sont cls candidates pour la relation. Autre dfinition : une relation est FNBC si, pour toute DF X -> A s'appliquant sur R avec A non inclus dans X, X est cl (primaire ou candidate) de R. Exemple : Soit le schma de relation R (Nom_F, Adresse_F, Produit, Prix), avec comme ensemble de DF F = {Nom_F -> Adresse_F ; Nom_F Produit -> Prix}. La cl de R est [Nom_F Produit]. Pour Nom_F -> Adresse_F, Nom_F n'est pas cl, et la relation n'est donc pas FNBC. 8.11. Algorithme de dcomposition FNBC (SPI) Soit un schma de relation R, et une couverture minimale F' de DF s'appliquant sur R. Une dcomposition SPI de R, qu'on appellera D, est construite de manire itrative : a) D est initialise R, b) Soit T une relation de D qui ne soit pas FNBC. Cela signifie qu'il y a une DF X -> A s'appliquant sur T telle que X n'est pas cl de T, et que A n'est pas un sousensemble de X. On dcompose alors T en T1 contenant A et les attributs de X, et T2 contenant tous les attributs de T sauf A.
P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 27

c) D est rinitialise avec T1 et T2, et on boucle sur b) jusqu' ce que toutes les relations soient FNBC. 8.12. Algorithme de dcomposition FN3 (SPI et prservant les DF) Soit un schma de relation R, et une couverture minimale F' de DF s'appliquant sur R. Une dcomposition SPI et SPD de R, qu'on appellera D, est construite de la faon suivante : a) pour chaque DF X -> A, on cre une relation Ri (X, A), b) si on a plusieurs DF telles que X -> A1, X -> A2, , X -> An, alors on regroupe tous ces attributs dans une mme relation Rj (X, A1, A2, , An), c) les attributs n'apparaissant dans aucune relation (pas prsents dans les DF) sont regroups dans une mme relation, d) pour avoir une dcomposition SPI, il faut s'assurer qu'il y ait au-moins une cl de R dans une des relations de dcomposition. Si ce n'est pas le cas, il faut soit ajouter une relation contenant une cl de R, soit ajouter des attributs dans une des relations de dcomposition afin de satisfaire cette contrainte.

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 28

9. ORGANISATION ET STOCKAGE DES DONNEES


9.1. Introduction

Organisation physique des donnes sur disque


Un disque (parfois dsign comme un volume) est organis en pistes qui sont ellesmmes dcoupes en secteurs. Si le disque comporte plusieurs plateaux, les pistes de mme position sur les diffrents plateaux constituent un cylindre. L'unit lmentaire d'information qui peut tre lue ou crite sur un disque est le secteur (en gnral un multiple de 512 octets). Une opration de lecture ou criture sur disque se fait en trois temps : initialisation de l'opration : slection de l'unit (ou volume), positionnement des ttes de lecture (piste et secteur), opration de transfert proprement dite : lecture ou criture des donnes sur disque une adresse donne (no. piste / no. cylindre + no. secteur), terminaison de l'opration : vrification du bon droulement de l'opration, signal au systme d'exploitation.

Pour diminuer les phases d'initialisation et de terminaison, les donnes sont lues / crites de manire temporaire et transparente l'utilisateur dans des zones mmoire appeles tampons ("buffers") qui contiennent plusieurs secteurs. Lorsqu'un tampon est plein / vide, une opration d'criture / lecture est ralise.

Schma Disque

Notions de base de l'organisation physique / logique des donnes


Un fichier est un ensemble d'informations organises dans des enregistrements logiques / physiques et de longueur fixe ou variable. Un enregistrement est un ensemble d'informations correspondant une entit logique (par exemple personne) ou physique (bloc ou secteur physique d'un disque). On aura donc des enregistrements logiques (ou articles) en correspondance avec des enregistrements physiques (blocs ou secteurs). Un enregistrement logique pourra tre stock dans un ou plusieurs enregistrements physiques en fonction de sa taille. L'enregistrement logique est l'unit de travail pour l'utilisateur, et l'enregistrement phyique est l'unit de stockage sur disque. Un champ est un sous-ensemble d'un enregistrement qui reprsente un attribut d'une entit logique (par exemple nom ou adresse d'une personne).
P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 29

La cl est l'identifiant unique d'un enregistrement logique (par exemple no. de scurit sociale pour une personne).

Schma Fichier

Types d'organisation physique des donnes sur disque


On distingue deux types d'organisation des donnes sur disque l'organisation squentielle consiste placer les enregistrements logiques la suite les uns des autres dans des enregistrements physiques, indpendamment de leur contenu. l'organisation calcule elle consiste placer les enregistrements logiques sur disque en fonction de leur contenu.

L'organisation des donnes sur disque est fixe lors de la cration du fichier. Le placement des donnes sur disque lors des oprations d'criture / insertion dpend de ce choix d'organisation. Cette question sera revue en dtail un peu plus loin.

Schma Organisations

Systme de gestion de fichiers (SGF)


Il s'agit d'un des composants du systme d'exploitation, dont la tche est prcisment de grer les fichiers sur disque (cration, suprression, ouverture, fermeture) et de prendre en charge les oprations d'accs physique aux fichiers (lecture / criture) pour des oprations logiques de consultation / insertion / modification / suppression. Il gre aussi le systme de stockage intermdiaire l'aide de tampons.

Schma SGF dans SE

9.2. Aspects caractristiques

I ndpendance logique / physique

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 30

On a vu au chapitre 1 qu'on distinguait trois niveaux de reprsentation dans un systme d'information : le niveau externe (utilisateurs), le niveau conceptuel (administrateur) et le niveau interne (systme de stockage). L'indpendance logique / physique consiste librer l'utilisateur des contraintes d'organisation et d'implantation physiques (structures de donnes, mthodes d'accs), en ne lui laissant voir (si possible) que l'organisation logique qu'il a luimme dfinie.

Per formances
L'aspect performances est essentiel pour de nombreuses classes d'applications, et plus particulirement les applications transactionnelles (par exemple systmes bancaires ou systmes de rservation, plus gnralement tous les systmes temps rel). Quoiqu'il en soit, le temps de rponse est toujours important pour l'utilisateur, et l'efficacit en ce domaine passe par une organisation physique des donnes efficace.

Fichiers et structures de donnes ncessaires au fonctionnement d'un SGBD


Une base de donnes contient : a) des fichiers contenant les donnes entres par les utilisateurs, b) un fichier cr par le SGBD, le dictionnaire des donnes, qui contiennent des informations relatives aux donnes stockes par les utilisateurs (mta-donnes), c) des fichiers crs par le SGBD, les index, qui permettent d'acclrer les recherches d'informations dans les BD, d) des donnes statistiques relatives aux donnes elles-mmes (taille des fichiers, nombre de valeurs diffrentes par attribut, ), mais aussi aux oprations effectues sur ces donnes (nombres d'insertions, suppressions et modifications ; frquences de recherche sur les attributs).

Hirarchie de mmoires
Un SGBD s'appuie sur diffrents niveaux de mmoire pour "optimiser" la gestion des donnes et les oprations relatives aux donnes : a) la mmoire principale de l'ordinateur (RAM), b) la mmoire "cache", c) les disques de stockage, d) des units d'archivage tels que des bandes magntiques ou disques optiques.
P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 31

Enregistrements de longueur fixe / longueur variable

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 32

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 33

Das könnte Ihnen auch gefallen