Vous êtes sur la page 1sur 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, ...,

Exemples dutilisations :
-

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, ...

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 :

1
2

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,

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

Compilateur
SQL

Code prog.
dapplications

Interprteur
SQL

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

Interfaces type
web

Gestionnaire
de tampons

Gestionnaire
de fichiers

Index

Donnes

P. Boursier

Statistiques
Dictionnaire
des donnes

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 dattributs4. 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 rfrenc dans la commande, la commande rfrence 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
-> cardinalit dune association
Exemple : une commande peut concerner plusieurs produits, mais un produit peut
aussi faire partie de plusieurs commandes -> assoc. n-m.
Attention aux interprtations 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 dentit faible (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 hrite 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

Prnom

Age

Adresse

CP

Ville

Dupont

Pierre

50

7, rue du Port

17000

La Rochelle

Martin

Alain

33

4, place de la Gare

87000

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

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 15

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 (w v ) et division ().

Oprateurs dduits partir des oprateurs de base :


r s = r - (r - s)
r w v 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 w v 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

P. Boursier

B
b1
b2
b1
b1
b2

C
c1
c2
c3
c4
c5

D
d1
d2
d3
d3
d1

Cours Bases de Donnes UPF Fvrier 2002

E
e1
e1
e1
e1
e1

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

Application de la DF Nom_F -> Adr_F :


Nom_F
Adr_F
R1
a1
a2
R2
a1
a2

Produit

Prix

a3

a4

Produit

Prix

a3

a4

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).

P. Boursier

Cours Bases de Donnes UPF Fvrier 2002

Page 25

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


Indpendance 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.
Performances
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

Vous aimerez peut-être aussi