Académique Documents
Professionnel Documents
Culture Documents
BD NotesCours Niv1
BD NotesCours Niv1
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
Page 2
1. INTRODUCTION
1.1. Objectifs
Exemples de SGBD :
Exemples dutilisations :
-
1
2
P. Boursier
Page 3
Consquences :
-
redondances : fichiers contenant les mmes donnes, mais utilises par des
personnes diffrentes,
P. Boursier
Page 4
2 types de langages :
langages procduraux
dcrivent la fois ce que lutilisateur souhaite et lalgorithme de
rsolution du problme : quoi et comment
Classes dutilisateurs
utilisateurs occasionnels (programmes dapplication)
utilisateurs experts (SQL)
programmeurs dapplications (SQL + langage de programmation hte)
P. Boursier
Page 5
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
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
Page 7
P. Boursier
Page 8
P. Boursier
Page 9
3. MODELE RELATIONNEL
3.1. Introduction
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
Il ny a pas dordre sur les lignes (ni sur les colonnes) dans une table / relation.
1 entit se traduit par 1 relation, qui contient tous les attributs de lentit
P. Boursier
Page 10
1 association se traduit par 1 relation, qui contient tous les attributs de lentit
ainsi que les attributs de lassociation
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.
P. Boursier
Page 11
Suppression de tables :
drop table nom_relation
Page 12
P. Boursier
Page 13
P. Boursier
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
P. Boursier
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).
P. Boursier
Page 16
P. Boursier
Page 17
7. CALCUL RELATIONNEL
7.1. Introduction
P. Boursier
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
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
E
e1
e1
e1
e1
e1
Page 20
P. Boursier
Page 21
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) BG -> C,
Solution :
c) AB -> G.
Solution :
P. Boursier
Page 22
P. Boursier
Page 23
Adr_F
a2
Produit
Prix
a3
a4
Produit
Prix
a3
a4
F = {Etudiant Examen -> Heure Date ; Etudiant Heure Date -> Examen}
Page 24
F = {Num_Vol Date -> Porte ; Num_Vol -> Destination Heure ; Date Porte Heure
-> Num_Vol}
F = {Etudiant Examen -> Heure Date ; Etudiant Heure Date -> Examen}
F = {Num_Vol Date -> Porte ; Num_Vol -> Destination Heure ; Date Porte Heure
-> Num_Vol}
P. Boursier
Page 25
P. Boursier
Page 26
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
Page 28
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
Page 29
Schma Fichier
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
P. Boursier
Page 30
Page 31
P. Boursier
Page 32
P. Boursier
Page 33