Professional Documents
Culture Documents
ENSTA, Paris
BASES DE DONNES Relationnelles
Slide 1
Vertigo/CNAM, Paris
INTRODUCTION
Slide 2
Objectif
Slide 3
OBJECTIF:
Comprendre et Maitriser la technologie relationnelle
Vertigo/CNAM, Paris
BIBLIOGRAPHIE
Ouvrages en franais
1. P. Rigaux, Cours bases de donnes, cedric/cnam.fr/vertigo voir support de cours.
2. Date C.J, Introduction aux Bases de Donnes, Vuibert, 970
Pages, Janvier 2001
Ouvrages en anglais
Slide 4
Le standard SQL
1. Date C.J., A Guide to the SQL Standard, Addison-Wesley
Trois Systmes
1. Date C.J., A Guide to DB2, Addison-Wesley
2. Date C.J., A Guide to Ingres, Addison-Wesley
3. ORACLE version 7 Server Concepts Manual 1992 Oracle
Vertigo/CNAM, Paris
Plan
Plan gnral du cours
1. Modle et langages relationnels
2. Aspects pratiques des SGB relationnels
3. Aspects systmes des modles relationnels
4. TP
Slide 6
Exemples dApplications
1. CLASSIQUES
Gestion (salaires, stocks, . . . )
Transactionnel (comptes, centrales dachat, . . . )
Rservations (avions, trains, . . . )
2. PLUS RECENTES
Slide 7
Vertigo/CNAM, Paris
PERMANENT.
LOGICIEL
SGBD
Vertigo/CNAM, Paris
NIVEAU LOGIQUE
Dfinition de la structure de donnes : Langage de
Description de Donnes (LDD)
Slide 11
Consultation et Mise Jour des donnes : Langages de
Requtes (LR) et Langage de Manipulation de Donnes
(LMD)
Vertigo/CNAM, Paris
(L4G)
Outils daides (e.g. conception de schmas)
Outils de saisie, dimpression dtats
Dbogueurs
Passerelles (rseaux, autres SGBD,etc. . . )
Vertigo/CNAM, Paris
Slide 14
Modles de donnes
Un modle de donnes est caractris par :
Slide 15
Une structuration des objets
Des oprations sur ces objets
Vertigo/CNAM, Paris
lentreprise
Mais nest pas associ un langage.
DONC UNE STRUCTURE
MAIS PAS
DOPRATIONS
Vertigo/CNAM, Paris
10
Modle logique
1. Langage de dfinition de donnes (LDD) pour dcrire
la structure.
2. Langage de manipulation de donnes (LMD) pour
appliquer des oprations aux donnes.
Slide 18
Ces langages sont abstraits :
1. Le LDD est indpendant de la reprsentation
physique des donnes.
2. Le LMD est indpendant de limplantation des
oprations.
2. INDPENDANCE PHYSIQUE.
On peut modifier limplantation physique sans modifier les
programmes dapplication
3. INDPENDANCE LOGIQUE.
On peut modifier les programmes dapplication sans toucher
limplantation.
Vertigo/CNAM, Paris
11
Slide 20
Slide 21
60
mi-60
navigationnel
navigationnel
dclaratif
explosion sur micro
dclaratif + navigationnel
nouvelles appli
documents
Vertigo/CNAM, Paris
12
Vertigo/CNAM, Paris
13
LE MODLE RELATIONNEL
Slide 25
Prsentation Gnrale
Vertigo/CNAM, Paris
14
Exemple de Relation
Nom de la Relation
VEHICULE
Slide 26
Nom dAttribut
Proprietaire
Type
Annee
Loic
Espace
1988
Nadia
Espace
1989
Loic
R5
1978
Julien
R25
1989
Marie
ZX
1993
n-uplet
FOURNISSEURS
PRIX
FOURNIT
PNOM
PRODUITS
Slide 27
C_ADRESSE
FADRESSE
NUM_COMDE
COMMANDE
QUANTITE
CLIENTS
BALANCE
NOM
Vertigo/CNAM, Paris
15
FNOM
FADRESSE
Abounayan
92190 Meudon
Cima
75010 Paris
Preblocs
92230 Gennevilliers
Sarnaco
75116 Paris
Slide 28
FOURNITURE
COMMANDES
FNOM
PNOM
PRIX
Abounayan
sable
300
Abounayan
briques
1500
Preblocs
parpaing
1200
Sarnaco
parpaing
1150
Sarnaco
ciment
125
NUM_COMDE
NOM
PNOM
QUANTITE
Jean
briques
Jean
ciment
10
Paul
briques
Paul
parpaing
Vincent
parpaing
Slide 29
CLIENTS
NOM
CADRESSE
BALANCE
Jean
75006 Paris
-12000
Paul
75003 Paris
Vincent
94200 Ivry
3000
Pierre
92400 Courbevoie
7000
Vertigo/CNAM, Paris
16
Modle EA
2) Associations: fournit est une association
1. relie deux (ou plus) entits, exemple: fournit relie Fournisseurs et Produits
2. Attribut: Une association peut avoir des attributs propres
Slide 31
Vertigo/CNAM, Paris
17
Cl
Slide 32
Passage EA-Relationnel
A partir dun schma entit-association (niveau conceptuel) comment passer au niveau
logique (comment choisir les relations)?
1. Une relation par type dentit (e.g; Fournisseur). A une entit correspond un nuplet.
2. la cl primaire de la relation (attribut(s) de la relation qui identifie un nuplet) est
celle du type dentit
Slide 33
3. Une relation par association n,n: Les attributs sont les cls primaires des relations
relies par lassociation, ainsi que les attributs propres de lassociation
4. Cl trangre: si lassociation A entre R et S est 1,n, (n entits de type S pour une
entit de type R), on ne cre pas de relation associe cette association: on rajoute
dans la table qui reprsente S la cl de R comme attribut. Celle-ci et appele cl
trangre.
5. exercice: rajouter le type dentit VILLE (cl: nom de ville) et lassociation sige
social entre VILLE et FOURNISSEURS. Comment est modifie la relation
FOURNISSEURS?
Vertigo/CNAM, Paris
Slide 34
18
Dfinitions
Un Domaine est un ensemble de valeurs. Exemples : , , lensemble des
chanes de caractres, lensemble des chanes de caractres de longueur 10.
Slide 35
Un ATTRIBUT prend ses valeurs dans un domaine. Plusieurs attributs peuvent avoir
le mme domaine.
Un NUPLET est une liste de
valeurs
o chaque valeur est la valeur
dun attribut de domaine :
Le PRODUIT CARTSIEN !"#$"% entre des domaines !& est
lensemble de tous les nuplets
o % .
Vertigo/CNAM, Paris
19
Slide 36
Une relation est reprsente sous forme dune table. Lordre des colonnes ou des
lignes na pas dimportance. Les colonnes sont distingues par les noms dattributs
et chaque ligne reprsente un lment de lensemble (un nuplet).
Un attribut peut apparatre dans plusieurs relations.
Une BASE DE DONNES est un ensemble de relations.
Slide 37
ou plus simplement :
Exemple :
VEHICULE(NOM:CHAR(20), TYPE:CHAR(10),
ANNEE:ENTIER)
Vertigo/CNAM, Paris
Slide 38
20
Si la relation a
attributs (
colonnes),
est appel ARIT de la relation. La
relation
est darit .
Le SCHMA DUNE BASE DE DONNES est lensemble des schmas de ses
relations.
Vertigo/CNAM, Paris
21
Slide 40
Slide 41
Oprations et Langages
Vertigo/CNAM, Paris
22
Vertigo/CNAM, Paris
23
Slide 45
ALGBRE RELATIONNELLE
Vertigo/CNAM, Paris
24
Algbre Relationnelle
Slide 46
Vertigo/CNAM, Paris
25
Projection
LA PROJECTION LIMINE UNE OU PLUSIEURS COLONNES DUNE
RELATION.
Slide 48
Notation :
Projection: Exemples
a) On limine la colonne dans la relation
Slide 49
' )(
!#"%$ &
Vertigo/CNAM, Paris
26
b) On limine la colonne
R
Slide 50
Projection: Exemples
dans la relation
(on garde et ) :
Slection
Slection sur la condition :
Slide 51
Vertigo/CNAM, Paris
27
Slection: Exemples
a) On slectionne les nuplets dans la relation
R
Slide 52
vaut b :
Slection: Exemples
b) On slectionne les nuplets tels que
R
Slide 53
"
&
:
Vertigo/CNAM, Paris
28
Slection: Exemples
c) On slectionne les nuplets tels que la 1re et la 2e colonne sont identiques :
R
Slide 54
Condition de Slection
La condition dune slection peut tre une formule logique quelconque avec des et ( )
et des ou ( ) entre termes de la forme et
o
Slide 55
.
Vertigo/CNAM, Paris
29
Slide 57
!
La relation ! !
contient les nuplets dont lattribut
a la valeur #"
(
Vertigo/CNAM, Paris
30
NOTATION :
Produit Cartsien
"
Slide 58
SCHMA DE
VALEUR DE
(attributs)
"
"
:
) )
) )
dont les
premiers composants forment un nuplet de
Vertigo/CNAM, Paris
31
R" S
Slide 60
"
Jointure Naturelle
NOTATION :
Slide 61
:
)
)
)
SCHMA DE
Vertigo/CNAM, Paris
32
Slide 62
Slide 63
Jointure Naturelle
Soit
! lensemble des attributs des 2
relations et
lensemble des attributs en commun.
NOTATION :
"
Vertigo/CNAM, Paris
33
Slide 64
R.A
R.B
S.A
S.B
Slide 65
"!#!
Vertigo/CNAM, Paris
34
dans
Slide 66
!
&
$
.
de
)
est gal lattribut !
de
!
Slide 67
NOTATION :
SCHMA DE
VALEUR DE
" &
" )&
" &
,
-Jointure
!
:
:
" &
"
Vertigo/CNAM, Paris
35
Slide 68
T := R
Slide 69
-Jointure: Exemple
(T)
= R
S
Vertigo/CNAM, Paris
36
quijointure: Exemple
R
Slide 70
T := R
Slide 71
(T)
=R
Vertigo/CNAM, Paris
37
!
!
!
!
"
Autre Exemple de REQUTE : Nom et adresse des clients qui ont command des
parpaings:
Schma Relationnel :
Slide 73
$# _
!
)
Requte Relationnelle :
!
"#%$&$'#( )*&+-,/.10
1,
+0<;=;
Vertigo/CNAM, Paris
38
Union
ARGUMENTS : 2 relations de mme schma :
Slide 74
&
:
&
SCHMA DE
VALEUR DE
: Union ensembliste sur " "
NOTATION :
Union: Exemple
R
Slide 75
Vertigo/CNAM, Paris
39
Diffrence
ARGUMENTS : 2 relations de mme schma :
Slide 76
&
:
SCHMA DE
VALEUR DE
: Diffrence ensembliste sur " $"
NOTATION :
Diffrence: Exemple
R
Slide 77
R-S
S-R
Vertigo/CNAM, Paris
40
Intersection
ARGUMENTS : 2 relations de mme schma :
Slide 78
:
SCHMA DE
VALEUR DE
: Intersection ensembliste sur "
NOTATION :
&
"
Intersection: Exemple
R
Slide 79
R-S
S = R - (R - S)
Vertigo/CNAM, Paris
41
Semijointure
ARGUMENTS : 2 relations quelconques :
Slide 80
&
$
)
SCHMA DE
:
&
VALEUR DE
: Projection sur les attributs de de la jointure naturelle
entre et .
NOTATION :
Semijointure
Slide 81
!
.
Vertigo/CNAM, Paris
42
Semijointure: Exemple
R
Slide 82
!"%$ & $ )
Division: Exemple
REQUTE : Clients qui commandent tous les produits:
COMM
Slide 83
NUM
NOM
PNOM
QTE
Jean
briques
100
Jean
ciment
Jean
parpaing
Paul
briques
200
Paul
parpaing
Vincent
parpaing
Vertigo/CNAM, Paris
43
! $
Slide 84
:
NOM
PNOM
Jean
briques
Jean
ciment
Jean
parpaing
Paul
briques
Paul
parpaing
Vincent
parpaing
PROD
PNOM
briques
ciment
parpaing
NOM
Jean
Division: Exemple
R
Slide 85
a
a
a
b
b
c
c
c
d
d
b
b
b
c
d
e
e
e
a
a
x
y
z
x
x
x
y
z
z
y
m
n
o
o
m
m
n
o
p
m
x
y
z
m
n
o
R\S
a
c
b
e
Vertigo/CNAM, Paris
44
Division: Exemple
R
Slide 86
Division
ARGUMENTS : 2 relations :
!
NOTATION :
:
&
SCHMA DE
:
VALEUR DE
0 (
; (
; 0 (
;
Vertigo/CNAM, Paris
45
Division
Slide 88
!" $
$ " ( !" $
$ "
"
Renommage
NOTATION :
ARGUMENTS : 1 relation :
Slide 89
" &
" &
&
SCHMA DE
:
VALEUR DE
:
de lattribut a t remplac par
)
&
&
Vertigo/CNAM, Paris
46
Lexemple de la slection :
Le premier attribut
Slide 91
au lieu de
correspond a lattribut
SQL
Vertigo/CNAM, Paris
47
Principe
SQL (Structured Query Language) est le Langage de Requtes standard pour les
SGBD relationnels
Expression dune requte par un bloc SELECT FROM WHERE
Slide 92
SELECT
FROM
WHERE
Dans les requtes simples, la correspondance avec lalgbre relationnelle est facile
mettre en vidence.
Historique*
SQL86 - SQL89 ou SQL1 La rfrence de base:
Requtes compiles puis excutes depuis un programme dapplication.
Types de donnes simples (entiers, rels, chanes de caractres de taille fixe)
Oprations ensemblistes restreintes (UNION).
Slide 93
Vertigo/CNAM, Paris
48
Slide 95
Expressions de Base
Vertigo/CNAM, Paris
49
Projection
Soit le schma de relation COMMANDES(NUM,CNOM,PNOM,QUANTITE)
REQUTE: Information sur toutes les commandes
SQL:
Slide 96
SELECT NUM,CNOM,PNOM,QUANTITE
FROM
COMMANDES
ou
SELECT *
FROM
COMMANDES
Projection : Distinct
Soit le schma de relation COMMANDES(NUM,CNOM,PNOM,QUANTITE)
REQUTE: Produits commands
Slide 97
SELECT PNOM
FROM
COMMANDES
NOTE: Contrairement lalgbre relationnelle, SQL nlimine pas les dupliqus. Pour
les liminer on utilise DISTINCT :
SELECT DISTINCT PNOM
FROM
COMMANDES
Le DISTINCT peut tre remplac par la clause UNIQUE dans certains systmes
Vertigo/CNAM, Paris
50
Slection
Soit le schma de relation COMMANDES(NUM,CNOM,PNOM,QUANTITE)
!
"
ALGBRE:
)
SQL:
SELECT PNOM
FROM
COMMANDES
WHERE CNOM = JEAN
SELECT
FROM
WHERE
AND
PNOM
COMMANDES
CNOM = JEAN
QUANTITE > 100
Vertigo/CNAM, Paris
51
est
&
SQL:
Slide 101
SELECT PNOM
FROM
FOURNITURE
WHERE PRIX > 2000
Vertigo/CNAM, Paris
52
SQL:
SELECT PNOM
FROM
FOURNITURE
WHERE PNOM = FNOM
Le
' (
SQL:
SELECT PNOM
FROM
FOURNITURE
WHERE PRIX BETWEEN 1000 AND 2000
AND
Vertigo/CNAM, Paris
53
Slide 104
NOTE: Le littral qui suit LIKE doit tre une chane de caractres ventuellement avec
des caractres jokers (_, %). Pas exprimable avec lalgbre relationnelle.
Slide 105
NOTE: La condition
.
IN
OR
OR OR
Vertigo/CNAM, Paris
54
Jointure
Soit le schma de relations
Slide 106
COMMANDES(NUM,CNOM,PNOM,QUANTITE)
FOURNITURE(PNOM,FNOM,PRIX)
REQUTE: Nom, Cot, Fournisseur des Produits commands par Jean
ALGBRE :
"
)
SQL :
Slide 107
Vertigo/CNAM, Paris
55
Slide 108
! $
!
"
"
R1 :=
R2 :=
Slide 109
"
SQL:
SELECT E1.ENOM, E1.SAL
FROM
EMPLOYE E1, EMPLOYE E2
WHERE E2.EMPNO = 12546 AND
E1.SAL > E2.SAL
"
Vertigo/CNAM, Paris
56
Expressions Ensemblistes
Slide 110
Union
COMMANDES(NUM,CNOM,PNOM,QUANTITE)
FOURNITURE(PNOM,FNOM,PRIX)
REQUTE: Produits qui cotent plus que 1000F ou ceux qui sont commands par Jean
ALGBRE:
Slide 111
"
(
Vertigo/CNAM, Paris
57
SQL:
SELECT
FROM
WHERE
UNION
SELECT
FROM
WHERE
Slide 112
PNOM
FOURNITURE
PRIX >= 1000
PNOM
COMMANDES
CNOM = Jean
NOTE: Lunion limine les dupliqus. Pour garder les dupliqus on utilise lopration
UNION ALL : le rsultat contient chaque n-uplet
fois, o et sont le nombre
doccurrences du n-uplet dans la premire et la deuxime requte.
Diffrence
La diffrence ne fait pas partie du standard.
EMPLOYE(EMPNO,ENOM,DEPTNO,SAL)
DEPARTEMENT(DEPTNO,DNOM,LOC)
!%
SQL:
SELECT
FROM
EXCEPT
SELECT
FROM
DEPTNO
DEPARTEMENT
DEPTNO
EMPLOYE
NOTE: La diffrence limine les dupliqus. Pour garder les dupliqus on utilise
lopration EXCEPT ALL :
Vertigo/CNAM, Paris
58
Intersection
Lintersection ne fait pas partie du standard.
EMPLOYE(EMPNO,ENOM,DEPTNO,SAL)
DEPARTEMENT(DEPTNO,DNOM,LOC)
Slide 114
REQUTE: Dpartements ayant des employs qui gagnent plus que 20000F et qui se
trouvent Paris
ALGBRE :
%
SQL:
SELECT DEPTNO
FROM
DEPARTEMENT
WHERE LOC = Paris
INTERSECT
SELECT DEPTNO
FROM
EMPLOYE
WHERE SAL > 20000
Slide 115
NOTE: Lintersection limine les dupliqus. Pour garder les dupliqus on utilise
lopration INTERSECT ALL : le rsultat contient chaque n-uplet
fois, o
et sont le nombre doccurrences du n-uplet dans la premire et la deuxime requte.
Vertigo/CNAM, Paris
59
Slide 116
COMMANDES(NUM,CNOM,PNOM,QUANTITE)
FOURNITURE(PNOM,FNOM,PRIX)
REQUTE: Nom, prix et fournisseurs des Produits commands par Jean
ALGBRE:
"
)
Vertigo/CNAM, Paris
60
SQL:
Slide 118
SELECT PNOM,PRIX,FNOM
FROM
FOURNITURE
WHERE PNOM IN (SELECT PNOM
FROM
COMMANDES
WHERE CNOM = JEAN)
ou
SELECT
FROM
WHERE
AND
FOURNITURE.PNOM,PRIX,FNOM
FOURNITURE,COMMANDES
FOURNITURE.PNOM = COMMANDES.PNOM
CNOM = JEAN
Slide 119
EMPLOYE(EMPNO,ENOM,DEPNO,SAL)
DEPARTEMENT(DEPTNO,DNOM,LOC)
REQUTE: Dpartements sans employs
ALGBRE :
!%
!4
Vertigo/CNAM, Paris
61
SQL:
SELECT DEPTNO
FROM
DEPARTEMENT
WHERE DETPNO NOT IN (SELECT DISTINCT DEPTNO
FROM
EMPLOYE)
Slide 120
ou
SELECT DEPTNO
FROM DEPARTEMENT
EXCEPT
SELECT DISTINCT DEPTNO
FROM EMPLOYE
SELECT
FROM
WHERE
AND
FNOM
FOURNITURE
PNOM = Brique
PRIX < ANY (SELECT PRIX
FROM
FOURNITURE
WHERE PNOM = Ardoise)
Vertigo/CNAM, Paris
62
Slide 123
SELECT CNOM
FROM
COMMANDE
WHERE PNOM = Brique AND
QUANTITE <= ALL (SELECT QUANTITE
FROM
COMMANDE
WHERE PNOM = Brique)
NOTE: La condition
ALL (SELECT F FROM . . . ) est vraie ssi la comparaison
est vraie pour toutes les valeurs du rsultat du bloc (SELECT F FROM . . . ).
Vertigo/CNAM, Paris
63
SQL:
SELECT DEPTNO
FROM
DEPARTEMENT
WHERE DETPNO NOT = ALL (SELECT DISTINCT DEPTNO
FROM
EMPLOYE)
NOTE: Les prdicats NOT IN et NOT = ALL sont utiliss de faon quivalente.
SQL :
SELECT FNOM
FROM
FOURNISSEUR
WHERE EXISTS (SELECT *
FROM
FOURNITURE
WHERE FNOM = FOURNISSEUR.FNOM)
NOTE: La condition EXISTS (SELECT * FROM . . . ) est vraie ssi le rsultat du bloc
(SELECT F FROM . . . ) nest pas vide.
Vertigo/CNAM, Paris
64
SELECT FNOM
FROM
FOURNISSEUR
WHERE NOT EXISTS (SELECT *
FROM
FOURNITURE
WHERE FNOM = FOURNISSEUR.FNOM)
NOTE: La condition NOT EXISTS (SELECT * FROM . . . ) est vraie ssi le rsultat du
bloc (SELECT F FROM . . . ) est vide.
La condition x ANY (SELECT Ri.y FROM R1, Rn WHERE p) est quivalente
Slide 127
NOT EXISTS (SELECT * FROM R1, Rn WHERE (p) AND NOT (x Ri.y))
Vertigo/CNAM, Paris
Slide 128
Slide 129
65
Vertigo/CNAM, Paris
66
Division
Soit le schma de relations
Slide 130
FOURNITURE(FNUM,PNUM,QUANTITE)
PRODUIT(PNUM,PNOM,PRIX)
FOURNISSEUR(FNUM,FNOM,STATUS,VILLE)
REQUTE: Fournisseurs qui fournissent tous les produits
ALGBRE:
R1 :=
!
R2 :=
#
#
SQL:
Slide 131
SELECT FNOM
FROM
FOURNISSEUR
WHERE NOT EXISTS
(SELECT *
FROM PRODUIT
WHERE NOT EXISTS
(SELECT *
FROM FOURNITURE
WHERE FOURNITURE.FNUM = FOURNISSEUR.FNUM
AND
FOURNITURE.PNUM = PRODUIT.PNUM))
Vertigo/CNAM, Paris
Slide 132
67
Fonctions de Calcul
FOURNITURE
Vertigo/CNAM, Paris
68
ou
Vertigo/CNAM, Paris
69
Slide 136
Slide 137
SELECT FNOM
FROM
FOURNITURE
WHERE PNOM = Brique AND
PRIX < (SELECT AVG(PRIX)
FROM
FOURNITURE
WHERE PNOM = Brique)
Oprations dAgrgation
Vertigo/CNAM, Paris
70
GROUP BY
REQUTE: Nombre de fournisseurs par ville
Slide 138
LA BASE ET LE RESULTAT :
Slide 139
VILLE
FNOM
PARIS
TOTO
PARIS
DUPOND
LYON
DURAND
LYON
LUCIEN
LYON
REMI
VILLE
COUNT(FNOM)
PARIS
LYON
Vertigo/CNAM, Paris
71
PNOM
AVG (PRIX)
BRIQUE
10.5
ARDOISE
9.8
HAVING
REQUTE: Produits fournis par deux ou plusieurs fournisseurs avec un cot suprieur
de 100
Slide 141
SELECT PNOM
FROM
FOURNITURE
WHERE PRIX > 100
GROUP BY PNOM
HAVING COUNT(*) >= 2
Vertigo/CNAM, Paris
72
Slide 142
BRIQUE
TOTO
105
ARDOISE
LUCIEN
110
ARDOISE
LUCIEN
110
ARDOISE
DURAND
120
ARDOISE
DURAND
120
REQUTE: Produits fournis et leur cot moyen pour les fournisseurs dont le sige est
Paris seulement si le cot minimum du produit est suprieur 1000F
Slide 143
Vertigo/CNAM, Paris
73
ORDER BY
En gnral, le rsultat dune requte SQL nest pas tri. Pour trier le rsultat par rapport
aux valeurs dun ou de plusieurs attributs, on utilise la clause ORDER BY :
Slide 144
SELECT
FROM
WHERE
ORDER
Le rsultat est tri par les villes (ASC) et le noms des fournisseur dans lordre inverse
(DESC).
Slide 145
Vertigo/CNAM, Paris
74
Slide 147
1.
de
2.
est NULL (
est lun de
).
Vertigo/CNAM, Paris
75
SELECT FNOM
FROM
FOURNISSEUR
WHERE VILLE = Paris
On ne trouve pas les fournisseurs avec VILLE = NULL !
Vertigo/CNAM, Paris
76
Slide 150
NOTE: Le prdicat IS NULL (ou IS NOT NULL) nest pas exprimable en algbre
relationnelle.
Exemple (*)
Soit le schma de relation EMPLOYE(EMPNO,ENOM,DEPNO,SAL)
SQL:
Slide 151
SELECT E1.ENOM
FROM EMPLOYE E1, EMPLOYE E2
WHERE E1.SAL > 20000 OR
E1.SAL <= 20000
Est-ce quon trouve les noms de tous les employs sil y a des employs avec un salaire
inconnu ?
Vertigo/CNAM, Paris
77
Contraintes
Contraintes que lon peut exprimer lors de la cration de tables et que le systme peut
maintenir:
1. NOT NULL: un attribut doit toujours avoir une valeur
Slide 152
Cration de Tables
On cre une table avec la commande CREATE TABLE :
CREATE TABLE Produit(pnom VARCHAR(20),
prix INTEGER,
PRIMARY KEY (pnom));
Slide 153
Vertigo/CNAM, Paris
78
Cration de Tables
Slide 154
Intgrit rfrentielle
Le systme vrifie les contraintes dintgrit rfrentielle. Ses ractions dpendent des
options choisies lors de la cration des tables, par exemple:
Slide 155
1. si on insre un artiste avec lattribut film renseign, le film doit exister dans la table
Film
2. si un film est supprim dans la relation FILM, les nuplets qui rfrent ce film dans la
table ARTISTE ont lattribut film mis NULL (option ON DELETE SET NULL).
3. rpercute une maj de lid faite dans FILM, dans les nuplets qui rfrent ce film dans
ARTISTE (option ON UPDATE CASCADE).
Vertigo/CNAM, Paris
79
Destruction de Tables
On dtruit une table avec la commande DROP TABLE :
Slide 156
Insertion de n-uplets
On insre dans une table avec la commande INSERT dont voici la syntaxe.
INSERT INTO
Slide 157
Donc on donne deux listes : celles des attributs (les ) de la table et celle des valeurs
respectives de chaque attribut (les ).
1. Bien entendu, chaque doit tre un attribut de
Vertigo/CNAM, Paris
80
Insertion : exemples
Insertion dune ligne dans Produit :
INSERT INTO Produit (pnom, prix)
VALUES (Ojax, 15)
Insertion de deux fournisseurs :
Slide 158
INSERT INTO Fournisseur (fnom, ville)
VALUES (BHV, Paris), (Casto, Paris)
Il est possible dinsrer plusieurs lignes en utilisant SELECT
INSERT INTO NomsProd (pnom)
SELECT DISTINCT pnom FROM Produit
Modification
On modifie une table avec la commande UPDATE dont voici la syntaxe.
UPDATE
SET
WHERE condition
&
Vertigo/CNAM, Paris
81
Modification : exemples
Mise jour du prix dOjax :
UPDATE Produit SET prix=17
WHERE pnom = Ojax
Slide 160
Augmenter les prix de tous les produits fournis par BHV par 20% :
UPDATE Produit SET prix = prix*1.2
WHERE pnom in (SELECT pnom
FROM Fourniture
WHERE fnom = BHV)
Destruction
On dtruit une ou plusieurs lignes dans une table avec la commande DELETE
Slide 161
DELETE FROM
WHERE condition
Cest la plus simple des commandes de mise--jour puisque elle sapplique des lignes
et pas des attributs. Comme prcdemment, la clause WHERE condition est
indentique au WHERE du SELECT
Vertigo/CNAM, Paris
82
Destruction : exemples
Destruction des produits fournit par le BHV :
Slide 162
Slide 163
Vertigo/CNAM, Paris
83
Les fichiers
Les donnes sont stockes dans des fichiers :
Un fichier occupe un ou plusieurs blocs sur un disque.
Slide 165
Vertigo/CNAM, Paris
84
Les articles
Un article est une squence de champs.
1. Articles en format fixe.
(a) La taille de chaque champ est fixe
Slide 166
Articles et pages
Ladresse dun article est constitue de
Slide 167
Vertigo/CNAM, Paris
85
vers une
autre page
Article 1
Slide 168
Article 3
PLACE LIBRE
Vertigo/CNAM, Paris
86
Organisation de fichiers
Lorganisation dun fichier est caractrise
par le mode de rpartition des articles dans les pages
Slide 170
Exemple de rfrence
Organisation dun fichier contenant les articles suivants :
Slide 171
Vertigo 1958
Brazil 1984
Metropolis 1926
Underground 1995
Manhattan 1979
Psychose 1960
Impitoyable 1992
Greystoke 1984
Casablanca 1942
Shining 1980
Smoke 1995
Vertigo/CNAM, Paris
87
Organisation squentielle
Insertion : les articles sont stocks squentiellement
dans les pages au fur et mesure de leur cration.
Slide 172
fichier.
Insertion :
(
Destruction et mises--jour :
.
Vertigo/CNAM, Paris
88
.
Vertigo/CNAM, Paris
89
Exemple
Annie Hall
Greystocke
Metropolis
Smoke
Slide 176
Annie Hall 1977
Greystoke 1984
Metropolis 1926
Smoke 1995
Brazil 1984
Psychose 1960
Casablanca 1942
Impitoyable 1992
Underground 1995
Manhattan 1979
Shining 1980
Vertigo 1958
telle que
.
dans lindex.
Vertigo/CNAM, Paris
90
Soit un fichier
=
5 pages
Squentiel index
1. Un index est un fichier : on peut lui-mme lindexer :
Slide 179
Vertigo/CNAM, Paris
91
Index niveau 2
Index niveau 1
Annie Hall
Annie Hall
Metropolis
Greystocke
Metropolis Smoke
Slide 180
Annie Hall 1977
Greystoke 1984
Metropolis 1926
Smoke 1995
Brazil 1984
Psychose 1960
Casablanca 1942
Impitoyable 1992
Underground 1995
Manhattan 1979
Shining 1980
Vertigo 1958
fichier index
Remarques :
1. On ne peut crer un index non-dense que sur un fichier
tri (et un seul index non-dense par fichier).
2. Un index non-dense est beaucoup moins volumineux
quun index dense.
Vertigo/CNAM, Paris
92
1979
Slide 182
Greystoke 1984
Metropolis 1926
Smoke 1995
Brazil 1984
Psychose 1960
Casablanca 1942
Impitoyable 1992
Underground 1995
Manhattan 1979
Shining 1980
Vertigo 1958
recherche pour savoir dans quelle page il doit tre plac. Deux
cas de figure :
Slide 183
Vertigo/CNAM, Paris
93
de dbordement.
Slide 185
Vertigo/CNAM, Paris
Un arbre-B (pour
94
' ( ( (
Arbres-B
ou arbre quilibr)
Arbre-B : dfinition
Un arbre-B dordre k est un arbre quilibr tel que :
1. Chaque noeud est une page contenant au moins et au
plus
Slide 187
articles, % .
fils.
Vertigo/CNAM, Paris
95
C1
Slide 188
C2
P1
P2
Cn
...
Pn
Pn+1
reprsentent
Exemple d arbre-B
Jurassic Park
Psychose
Easy Rider
Slide 189
Brazil
Impitoyable
Annie Hall
Brazil
Casablanca
Easy Rider
Jurassic Park
Greystoke
Impitoyable
Metropolis
Smoke
Shining
Twin Peaks
Underground
Manhattan
Metropolis
Psychose
Vertigo
Reservoir Dogs
Shining
Smoke
Twin Peaks
Vertigo/CNAM, Paris
96
Larbre B
Slide 190
Les feuilles de larbre contiennent des couples [valeur de cl, adresse darticle dans
le fichier index par larbre]
Les feuilles sont chanes entre elles
Soit
1. Si
(ou
).
2. Sinon, il existe
Vertigo/CNAM, Paris
97
lments) : on alloue une
On place les premiers articles (ordonns selon la cl)
dans et les derniers dans .
On insre le article dans le pre de . Son
pointeur gauche rfrence , et son pointeur droit
rfrence .
3.
comme en 1 (sauf quen 2 on ne place que les k premiers articles dans et non les
k+1).
Exercice: insrer Amlie Poulain et Citizen Kane
Slide 193
((
Vertigo/CNAM, Paris
98
' (
(
Slide 195
Exemple pour
1. si
2. si
:
,
"#
,
"
E/S.
Vertigo/CNAM, Paris
99
Hachage
Accs direct la page contenant larticle recherch :
1. On estime le nombre
fichier.
Slide 196
2. fonction de hachage
de domaine
: toute valeur de la cl
'
' ,
.
&
.
(c) Si
, etc.
est une lettre de lalphabet, ,
,
.
Vertigo/CNAM, Paris
100
Underground 1995
Psychose 1960
Slide 198
Brazil 1984
Vertigo 1958
Greystoke 1984
4
Repertoire
Manhattan 1979
Impitoyable 1992
1.
'
Le nombre ,
Metropolis 1926
Shining 1980
Casablanca 1942
Smoke 1995
Remarques
nest pas une adresse de page, mais
de la page associe
contient ladresse
est que la
Vertigo/CNAM, Paris
101
Hachage : recherche
Etant donn une valeur de cl :
1. On calcule
Slide 200
.
Hachage : insertion
'
Slide 201
(de dbordement).
3. Insrer dans
.
.
Vertigo/CNAM, Paris
102
Underground 1995
Psychose 1960
Slide 202
Brazil 1984
Vertigo 1958
Greystoke 1984
4
Repertoire
Manhattan 1979
Impitoyable 1992
Metropolis 1926
Shining 1980
Casablanca 1942
Smoke 1995
Vertigo/CNAM, Paris
103
Comparatif
Slide 204
Organisation
Cot
Avantages
Inconvnients
Sequentiel
Simple
Trs coteux !
Efficace
Peu volutive
Index
Intervalles
Arbre-B
Efficace
Traverse
Intervalles
Hachage
1+
Le plus efficace
Intervalles impossibles