Vous êtes sur la page 1sur 62

COURS de BASES de

DONNEES
Cline Robardet
INSA-Lyon

Point de dpart
Une base de donnes est une collection de
donnes ayant une origine commune
Un Systme de Gestion de Base de
Donnes (SGBD) est un logiciel conu
pour remplir deux buts :
Ajouter, effacer et mettre jour les donnes dans
la base
Fournir diffrentes manires de visualiser tout ou
partie des donnes de la base
2

Exemple
ISBN
0-103-4578-9
0-11-3456-3
0-12-33345-3
0-12-34678-9
0-123-52395
0-312-3143-3
0-312-3143-3
0-312-3143-3
0-55-12554
0-55-12554
0-555-555-9
0-91-04578-5
0-91-35678-7
0-99-77777-7
0-99-9999-9
1-1111-111-1
1-22-23370-0

Titre
IdAuteur
Iliad
3
Moby Dick
2
On liberty
8
Jane Eyre
1
Ulysses
6
Balloon
13
Balloon
11
Balloon
12
Main Street 10
Main Street 9
Macbeth
5
Hamlet
5
Faerie Queene7
King Lear
5
Emma
1
c++
4
Visual Basic 4

NomAuteur TelAuteur IdEditeur NomEditeurTelEditeur Prix


Homer
333-333-3333
1
BigHouse 123-456-7890
25,00 F
Melville
222-222-2222
3
Small House714-000-0000
49,00 F
Mill
888-888-8888
1
BigHouse 123-456-7890
25,00 F
Austen
111-111-1111
3
Small House714-000-0000
49,00 F
Joyce
666-666-6666
2
Alpha Press999-999-9999
34,00 F
Sleepy
312-321-1111
3
Small House714-000-0000
34,00 F
Snoopy
321-321-2222
3
Small House714-000-0000
34,00 F
Grumpy
312-321-0000
3
Small House714-000-0000
34,00 F
Jones
123-333-3333
3
Small House714-000-0000
22,95 F
Smith
123-222-2222
3
Small House714-000-0000
22,95 F
Shakespeare 555-555-5555
2
Alpha Press999-999-9999
12,00 F
Shakespeare 555-555-5555
2
Alpha Press999-999-9999
20,00 F
Spenser
777-777-7777
1
BigHouse 123-456-7890
15,00 F
Shakespeare 555-555-5555
2
Alpha Press999-999-9999
49,00 F
Austen
111-111-1111
1
BigHouse 123-456-7890
20,00 F
Roman
444-444-4444
1
BigHouse 123-456-7890
29,95 F
Roman
444-444-4444
1
BigHouse 123-456-7890
25,00 F

Table unique
Gestion des donnes dans une simple table
un traitement de texte

Bibliothque du congrs 16 millions de


livres
Redondances
Problmes pour visualiser les donnes

Ventiler les donnes dans plusieurs tables


4

ISBN
Titre
IdEditeur
0-312-3143-3Balloon
3
1-1111-111-1c++
1
0-99-9999-9 Emma
1
0-91-35678-7Faerie Queene
1
0-91-04578-5Hamlet
2
0-103-4578-9Iliad
1
0-12-34678-9Jane Eyre
3
0-99-77777-7King Lear
2
0-555-555-9 Macbeth
2
0-55-12554 Main Street
3
0-11-3456-3 Moby Dick
3
0-12-33345-3On liberty
1
0-123-52395 Ulysses
2
1-22-23370-0Visual Basic
1

Prix
34,00 F
29,95 F
20,00 F
15,00 F
20,00 F
25,00 F
49,00 F
49,00 F
12,00 F
22,95 F
49,00 F
25,00 F
34,00 F
25,00 F

IdAuteur
1
12
3
10
6
2
8
4
5
13
9
11
7

NomAuteur TelAuteur
Austen
111-111-1111
Grumpy
312-321-0000
Homer
333-333-3333
Jones
123-333-3333
Joyce
666-666-6666
Melville
222-222-2222
Mill
888-888-8888
Roman
444-444-4444
Shakespeare555-555-5555
Sleepy
312-321-1111
Smith
123-222-2222
Snoopy
321-321-2222
Spenser
777-777-7777

ISBN
1-1111-111-1
0-99-9999-9
0-91-35678-7
0-91-04578-5
0-103-4578-9
0-12-34678-9
0-99-77777-7
0-555-555-9
0-11-3456-3
0-12-33345-3
0-312-3143-3
0-312-3143-3
0-312-3143-3
0-55-12554
0-55-12554
0-123-52395
1-22-23370-0

IdAuteur
4
1
7
5
3
1
5
5
2
8
13
11
12
10
9
6
4

Quatre tables :
les avantages
Rduction de la taille de la base
Certaines donnes sont imbriques i.e.
elles apparaissent plusieurs endroits dans
les tables

Problmes lis lutilisation dune


table unique
Problmes relatifs aux valeurs multiples
Anomalie de mise jour
Anomalie dinsertion
Anomalie de suppression
7

Problmes lis aux BDD


relationnelles
Eviter la perte de donnes
Comment placer les donnes dans les
diffrentes tables sans perte dinformation ?

Maintien de lintgrit rfrentielle


Cration de vues
Comment obtenir la liste des diteurs dont les
livres publis cotent moins de 10 euros ?
8

Base de Donnes relationnelle


Ensemble organis de donnes non
indpendantes interrogeable par le contenu
Collection de fichiers relis par des
pointeurs multiples organiss pour
rpondre des questions

Systme de Gestion de Base de


Donnes
Ensemble de logiciels systmes grant les
oprations
dinsertion
de modification
de recherche
daccs concurrents
de confidentialit

10

Elements d'algbre
relationnelle
Chapitre 2

Le modle relationnel
Invent par E; F; Codd en 1970
Fond sur sur la thorie mathmatique des
ensembles et sur la notion de base qui lui
est rattache : la relation.

12

Objectifs dun modle relationnel:


Rappel
Proposer une indpendance des donnes et
des traitements.
Permettre de grer les problmes de
cohrence et de redondance des donnes.
Utiliser des structures de donnes simples
et issues de la vie courante (tables).
Proposer des langages de manipulation de
donnes non procduraux
Permettre des vues utilisateurs diffrentes
des relations implantes
13

Le modle relationnel de CODD:


Les 10 concepts cls (1/2)
La dfinition du domaine dun attribut
Le concept de relation
Les attributs
Les tuples
Le schma dune relation
14

Le modle relationnel de CODD:


Les 10 concepts cls (2/2)
La cl
La contrainte rfrentielle
Les valeurs nulles
La contrainte dentit
La contrainte de domaine
15

Les structures de donnes :


Domaine dun attribut
Dfinition : ensemble des valeurs prises
par un attribut
Un domaine se dfinit soit :
en extension
ex. : couleur_yeux = {bleu, vert, marron, noir}

en comprhension
ex. : ge_enfants = {x dans N tel que x <15}
16

Dfinition du produit cartsien:


Rappel
Soient deux ensembles O et P, on appelle
Produit cartsien de O et P, l'ensemble
not OP , des couples (x,y) o xO et
yP.
tudiants={ Anne , Tom , Maud }
Professeurs = { Lydie , Yvan }
tudiants Professeurs={ (Anne,Lydie) , (Anne,Yvan) ,
(Tom,Lydie) , (T,Y) , (M,L) , (M,Y) }
17

Les structures de donnes :


la relation
Dfinition : Sous-ensemble du produit cartsien dun ensemble
dattributs
Nom de la relation
Attributs

PRODUIT
Num_prod Nom_prod Qt_stock
Occurrences ,
Tuples,
Enregistrements

Caractris par :

24
141
67

Chaise
Table
Lit

63
27
12

Cardinalit de la relation (nombre de lignes)


Unicit du nom des attributs
Indiffrence de lordre des lignes et des colonnes
18
Nombre de colonnes = degr ou arit

Les structures de donnes :


Schma de relations
Le schma de relation reprsente la structure invariante
dune relation.
Il est constitu du nom de la relation suivi de la liste des
attributs et de leurs domaines associs
PRODUIT (NPRODUIT : entier, NOM : chane, QTE EN STOCK : entier>0)

Nom

Attributs (cl)

relation

(soulign)

Attributs non cl
19

Rgles dintgrit structurelle


Assertions qui doivent tre vrifies par les
donnes contenues dans la base.
Rgles inhrentes au modle relationnel
Rgles inhrentes au schma particulier dune
application

20

Rgles dintgrit structurelle du


modle relationnel
Unicit de cl
Contrainte de rfrence
Contrainte dentit
Contrainte de domaine
21

Cl dune relation
Une relation tant un ensemble de tuples, il
ne peut y avoir deux tuples identiques dans
une relation.
Cl : ensemble minimal dattributs dont la
connaissance des valeurs permet
didentifier un unique tuple

22

Contrainte rfrentielle(1/2)
Contrainte dintgrit portant sur une
relation R1, consistant imposer que la
valeur dun groupe dattributs apparaisse
comme valeur de cl dans une autre
relation R2.
Elles dfinissent des liens obligatoires entre
relations.
Garantissent le succs des oprations de mise
jour.
23

Contrainte rfrentielle(2/2)
Les contraintes de rfrence sont lies la
notion de cls trangres :
Lors de linsertion dun tuple dans une relation soumise
une contrainte rfrentielle ( relations
rfrenantes ), il faut vrifier que les valeurs de cls
trangres existent dans les relations rfrences.
Lors de la suppression dun tuple dans une relation
rfrence, il faut vrifier quaucun tuple de la relation
rfrenante ne fasse rfrence au tuple que lon
souhaite supprimer.
soit le SGBD refuse la suppression
soit il la rpercute en cascade.

24

Contrainte dentit
Lorsque la valeur dun attribut est
inconnue, on utilise une valeur
conventionnelle appele valeur nulle
La contrainte dentit impose que toute
relation possde une cl primaire et que
tout attribut participant cette cl primaire
soit non nul.
25

Contrainte de domaine
Les valeurs dun attribut doivent vrifier
une assertion logique
Permet de restreindre le domaine de valeur

26

Algbre relationnelle :
Dfinition
Collection doprations formelles qui
agissent sur des relations et produisent une
relation en rsultat.
Dans la plupart des systmes relationnels,
la rponse une requte sobtient par
lutilisation dun ou plusieurs oprateurs
relationnels.
27

Algbre relationnelle :
Oprateurs relationnels
Oprateurs unaires :
Slection
Projection
Complment

Oprateurs binaires :
Union
Intersection
Diffrence
Les produits et Jointures

Thorie des ensembles

28

Motivation : interroger des


donnes
Quest-ce quune requte ?

une expression dans une algbre dite algbre relationnelle.


i.e., des oprations sur des tables
Filtrer :
Slection (filtre / critres)
Projection (choix de colonnes)
Diffrence (suppression de lignes)
Combiner :
Produit cartsien (toutes les possibilits)
Jointure (complment d'information)
Union (union d'ensembles de lignes)

Quelques dfinitions
Ligne
Une ligne L est une squence de valeurs Vi,
L = < V1, ... , Vi , ... Vn >
Extraction
La ligne < Vi > construite partir de L est note L(i)
Concatnation
Soient deux lignes
L1 = < V1, ..., Vn > et L2 = < W1, ..., Wm >,
la concatnation de L1 et de L2, note L1L2 est :
L1L2 = < V1, ..., Vn, W1, ..., Wm >
Table :
un ensemble de lignes

Algbre relationnelle :
Slection (ou restriction)
Suppression des occurrences de la relation qui
ne satisfont pas une condition donne.

Opration sur une relation R1 produisant une


relation R2 de mme schma, mais comportant les
seuls tuples qui vrifient la condition prcise
en argument.

Notation : condition (R1)


31

Slection (restriction)
T=

c1
(nom)
Bob
Sam
Cathy
Julie

c2
(ge)
13
7
13
20

c3
(adresse)
Lyon
Nice
Brest
Lyon

c4
(nA)
Nice
Nice
Brest
Brest

Slection / constante : Personnes habitant Lyon

c3="Lyon" (T)

c1
(nom)

c2
(ge)

c3
(adr)

c4
(nA)

Bob
Julie

13
20

Lyon
Lyon

Nice
Brest

Slection / critre inter-colonnes : Personnes nes dans la


ville dhabitation

c3=c4 (T)

c1
(nom)

c2
(ge)

c3
(adr)

c4
(nA)

Sam
Cathy

7
13

Nice
Brest

Nice
Brest

Slection (restriction)
Autre comparateur : Personnes nayant pas plus de 14 ans

c2 14(T)

c1
(nom)

c2
(ge)

c3
(adr)

c4
(nA)

Bob
Sam
Cathy

13
7
13

Lyon
Nice
Brest

Nice
Nice
Brest

Composition de slections : Habitants de Lyon nayant


pas plus de 14 ans
c1
c2
c3
c4

c3="Lyon" (c2 14 (T) )

(nom)
Bob

(ge)
13

(adr)
Lyon

Conjonction de critres :

(nA)
Nice

c3="Lyon" (c2 14 (T) ) c3="Lyon" and c2 14 (T)

Une formalisation de la slection


(restriction)
Slection / constante :
L'ensemble des lignes L de la table T telles que L(i)=a est not i = a
(T)
i = a (T) = { L | L dans T et L(i) = a }
Slection / inter-colonnes :
L'ensemble des lignes L de la table T telles que L(i) = L(j) est not
i = j (T)
i=j (T) = { L | L dans T et L(i) = L(j) }
Autres comparateurs : peuvent tre employs la
place de =
Conjonction de comparaisons : Pour allger les notations des
conjonctions de critres de slection peuvent tre employes

Algbre relationnelle :
Slection (ou restriction)
Oprateurs de comparaison
=, , <, >, , , BETWEEN, IN, LIKE

Combinaison de plusieurs conditions


relies par des oprateurs logiques :
and, or, not

Valeurs NULL
35

Algbre relationnelle :
Projection
Opration sur une relation R1 consistant
composer une relation R2 en enlevant la
relation initiale tous les attributs non
mentionns en oprandes.
Notation A , A , , A (R1)
1

36

Projection
Projection
T=

c1
(nom)
Bob
Sam
Cathy
Julie

c2
(ge)
13
7
13
20

c3
(adr)
Lyon
Nice
Brest
Lyon

c4
(nA)
Nice
Nice
Brest
Brest

Projection sur les colonnes 1 et 2 :


Nom et age de toutes les personnes c1,c2 (T)

c1
(nom)
Bob
Sam
Cathy
Julie

c2
(ge)
13
7
13
20

Projection sur les colonnes 1 et 3


Nom et adresse de toutes les personnes

c1
(nom)

c2
(adr)

Bob
Sam
Cathy
Julie

Lyon
Nice
Brest
Lyon

(renumrotation des colonnes)

c1,c3 (T)

Algbre relationnelle :
Projection
Consiste supprimer des attributs dune relation
Soit la relation ETUDIANT :
Num_tu
521
632
569
451

Nom_tu

Nom_dpart

Loulou
Babette
Fifi
Loulou

Informatique
Mathmatique
Informatique
Informatique

La projection sur nom_tu,


nom_dpart donne :
Nom_tu

Nom_dpart

Loulou
Babette
Fifi

Informatique
Mathmatique
Informatique

Adr_dpart
Lyon
Marseille
Lille
Lille

La projection sur nom_dpart,


adr_dpart donne :
Nom_dpart
Informatique
Mathmatique
Informatique

Adr_dpart
Lyon
Marseille
Lille
38

Composition (Combinaison)
T=

c1
(nom)
Bob
Sam
Cathy
Julie

c2
(ge)
13
7
13
20

c3
(adr)
Lyon
Nice
Brest
Lyon

c4
(nA)
Nice
Nice
Brest
Brest

Quels sont les noms des personnes habitant Lyon ?


1) Slection :

c3="Lyon" (T)

2) ... suivie d'une projection :

c1
(nom)

c2
(ge)

c3
(adr)

c4
(nA)

Bob
Julie

13
20

Lyon
Lyon

Nice
Brest

c1 ( c3="Lyon" (T) )

c1
(nom)

Bob
Julie

Une formalisation de la projection


Projection sur colonnes :
L'ensemble des lignes de la table T obtenues en ne
conservant que les colonnes de numros i1 , i2 , ..., ik est
not i1 ,i2, ..., ik (T)
i1 ,i2, ..., ik (T) = { L(i1)L(i2) ... L(ik) | L dans T }
Retour sur la composition : le principe de clture
Le rsultat d'une opration portant sur des tables

est aussi une table


composition possible de diffrentes oprations

NB. Proprit fondamentale pour expliquer le confort des


interrogations

Algbre relationnelle :
Produit cartsien
Le produit cartsien se construit en combinant toutes les possibilits.
Soit la relation LIVRE
Soit la relation EDITION
Titre
X
Y

Couleur

Auteur
Toto
Loulou

Rouge
Blanc
Vert

Edition
Luxe
Broch
Cartonn

Le produit cartsien permet de construire la relation suivante


Titre

Auteur

X
X
X
Y
Y
Y

Toto
Toto
Toto
Loulou
Loulou
Loulou

Couleur
Rouge
Blanc
Vert
Rouge
Blanc
Vert

Edition
Luxe
Broch
Cartonn
Luxe
Broch
Cartonn
41

Algbre relationnelle :
Produit cartsien
Opration portant sur deux relation R1 et
R2, consistant construire une relation R3
ayant pour schma la concatnation de
ceux des relations oprandes et pour tuples
toutes les combinaisons des tuples des
relations oprandes
Notation R1 R2
42

Produit
cartsien
Produit
cartsien
homme=

c1
(nom)
Bob
Sam

c2 femme=
(adr)
Lyon
Nice

c1
(nom)
Cathy
Julie
Linda

c2
(adr)
Brest
Lyon
Lyon

Quels sont tous les couples homme-femme ?


homme femme

partir de 'Bob'

partir de 'Sam'

c1
(nom)
Bob
Bob
Bob
Sam
Sam
Sam

c2
(adr)
Lyon
Lyon
Lyon
Nice
Nice
Nice

c3
(nom)
Cathy
Julie
Linda
Cathy
Julie
Linda

c4
(adr)
Brest
Lyon
Lyon
Brest
Lyon
Lyon

Quels sont les couples homme-femme dune mme ville ?


c1
c2
c3
c4
c2 = c4 ( homme femme )
(nom)
Bob
Bob

(adr)
Lyon
Lyon

(nom)
Julie
Linda

(adr)
Lyon
Lyon

Produit
cartsien
Produit
cartsien
homme=

c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

ville=

c1
(nomV)
Nice
Brest
Lyon

c2
c3
(nbHab) (dpart)
340.000 Alp-Mar
160.000 Finistre
420.000 Rhne

Dans quels dpartements habitent les personnes


de la table homme ?
1)

Combinaison par produit cartsien


(homme ville)

partir de 'Bob'

partir de 'Sam'

c1
(nom)
Bob
Bob
Bob
Sam
Sam
Sam

c2
(adr)
Lyon
Lyon
Lyon
Nice
Nice
Nice

c3
(nomV)
Nice
Brest
Lyon
Nice
Brest
Lyon

c4
(nbHab)
340.000
160.000
420.000
340.000
160.000
420.000

c5
(dpart)
Alp-Mar
Finistre
Rhne
Alp-Mar
Finistre
Rhne

Produit
cartsien
Produit
cartsien
2)

... suivi d'une slection :

c2 = c3 ( homme ville )
c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

c3
c4
c5
(nomV) (nbHab) (dpart)
Lyon 420.000 Rhne
Nice 340.000 Alp-Mar

Une formalisation du produit cartsien


L'ensemble des lignes pouvant tre obtenues par
concatnation d'une ligne d'une table T1 avec une ligne
d'une table T2 est not
T1 T2
T1 T2 = { L1.L2 | L1 dans T1 et L2 dans T2 }
Le produit T1 T2 est souvent suivi d'une slection dans
laquelle intervient une colonne issue de T1 et une colonne
issue de T2
dfinition d'un nouvel oprateur : la jointure

Algbre relationnelle :
Thta-produit (thta-jointure)
Le thta-produit consiste en un produit cartsien doubl dune slection.
On ne retient que les occurrences qui vrifient une condition logique.
Thta prend les valeurs : <, <=, >, >=, != ou <>
Soit la relation EMPLOYE
Nom_emp
E1
E2
E3

Salaire_emp
20000
10000
6000

Soit la relation CHEF


Nom_chef
Toto
Loulou

Salaire_chef
25000
12000

Le thta-produit permet de rpondre la question : Donnez le nom


des employs qui gagnent plus quun chef de service
On effectue dabord un produit cartsien puis une slection dont
la condition est salaire_emp > salaire_chef
47

Algbre relationnelle :
Thta-produit (thta-jointure)
Produit cartsien
Nom_emp
E1
E1
E2
E2
E3
E3

Salaire_emp
20000
20000
10000
10000
6000
6000

Nom_chef
Toto
Loulou
Toto
Loulou
Toto
Loulou

Salaire_chef
25000
12000
25000
12000
25000
12000

Slection
Nom_emp
E1

Salaire_emp
20000

Nom_chef
Loulou

Salaire_chef
12000

48

Algbre relationnelle :
Thta-produit (thta-jointure)
Oprande consistant rapprocher selon
une condition les tuples de deux relations
R1 et R2 afin de former une relation R3 qui
contient lensemble de tous les tuples
obtenus en concatnant un tuple de R1 et
un de R2 vrifiant la condition de
rapprochement.
Notation R1 condition R2
49

Algbre relationnelle :
Jointure naturelle (ou jointure)
La jointure naturelle permet de raliser une liaison logique entre
deux tables. La condition de slection est lgalit entre les deux
cls des deux relations (l'une primaire, l'autre secondaire)
Cest un thta-produit qui prend la valeur = entre des attributs
identiques.
Soit la relation SERVICE

Soit la relation EMPLOYE


Num_emp
02
10
72
62

Nom_emp
Toto
Loulou
Babette
Riri

Num_service
S1
S8
S6
S1

Num_service
S1
S6
S8
S4

Nom_service
Informatique
Mathmatiques
Sociologie
Anglais
50

Jointure
Jointure
homme=

c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

femme=

c1
(nom)
Cathy
Julie
Linda

c2
(adr)
Brest
Lyon
Lyon

Couples homme-femme d'une mme ville ?


homme
c2=c2

femme

c2 = c4( homme femme )

c1
(nom)
Bob
Bob

c2
(adr)
Lyon
Lyon

c3
(nom)
Julie
Linda

c4
(adr)
Lyon
Lyon

Jointure
Jointure
homme=

c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

ville=

c1
(nomV)
Nice
Brest
Lyon

c2
c3
(nbHab) (dpart)
340.000 Alp-Mar
160.000 Finistre
420.000 Rhne

Dans quels dpartements habitent les


hommes ?
homme
ville
c2=c1
c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

c2 = c3 (homme ville)
c3
c4
c5
(nomV) (nbHab) (dpart)
Lyon 420.000 Rhne
Nice 340.000 Alp-Mar

Uneformalisation
formalisationdedelalajointure
Jointure
jointure
Une
{combinaison par produit cartsien et slection}
L'ensemble des lignes L pouvant tre obtenues par
concatnation d'une ligne L1 d'une table T1 avec une ligne
L2 d'une table T2 telle que L1(i) = L2(j) est not :

T1

i=j

T2 = { L1L2 | L1 dans T1 et L2 dans T2


et L1(i)=L2(j) }

Cette opration est appele jointure de T1 avec T2

Une formalisation de la jointure

Lien avec le produit cartsien et la slection

Soit m le nombre de colonnes de T1,


T1

i = j T2

est identique i = (j+m) (T1T2)

Remarque : comme pour la slection, les comparateurs


< > ainsi que les conjonctions de critres peuvent
tre employs

Algbre relationnelle :
Union
Permet de fusionner deux relations en une seule.
Cette opration nest possible que sur des relations ayant les
mmes attributs.
Soit la relation OUVRIER
Num_empl
15
17
56

Soit la relation CADRE

Nom_empl
Loulou
Fifi
Babette

Num_empl
3
21

Nom_empl
Jojo
Sophie

Lunion permet de construire la relation EMPLOYE


Num_empl
3
21
15
17
56

Nom_empl
Jojo
Sophie
Loulou
Fifi
Babette

55

Algbre relationnelle :
Union
Opration portant sur deux relations de
mme schma R1 et R2, consistant
construire une relation de mme schma
R3 ayant pour tuples ceux appartenant R1
ou (inclusif) R2.
Notation R1R2
56

Union
Union
homme=

c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

femme=

Quel est lensemble des personnes ?

homme

femme

c1
(nom)
Cathy
Julie
Linda

c2
(adr)
Brest
Lyon
Lyon
c1
(nom)
Bob
Sam
Cathy
Julie
Linda

c2
(adr)
Lyon
Nice
Brest
Lyon
Lyon

Quel est l'ensemble des personnes habitant Lyon ?

c2="Lyon" (homme femme)

c1
(nom)
Bob
Julie
Linda

c2
(adr)
Lyon
Lyon
Lyon

Algbre relationnelle :
Diffrence
Permet dobtenir les occurrences de la relation 1 qui nappartiennent
pas la relation 2. Les deux relations doivent avoir les mmes
attributs. Cette opration nest pas commutative.
Soit la relation INSCRITS
Nom_tu
Toto
Jojo
Toto
Babette
Jojo

Soit la relation RECUS

Nom_UV
Maths
Maths
Physique
Chimie
Chimie

Nom_tu
Toto
Jojo
Babette

Nom_UV
Maths
Maths
Chimie

La diffrence permet de construire la relation suivante


Num_empl
Toto
Jojo

Nom_empl
Physique
Chimie

58

Algbre relationnelle :
Diffrence
Opration portant sur deux relations de
mme schma R1 et R2, consistant
construire une relation de mme schma
R3 ayant pour tuples ceux appartenant R1
et nappartenant pas R2.
Notation R1 - R2
59

Diffrence
Diffrence
homme=

c1
(nom)
Bob
Sam

c2
(adr)
Lyon
Nice

femme=

c1
(nom)
Cathy
Julie
Linda

c2
(adr)
Brest
Lyon
Lyon

Quelles sont les villes pour lesquelles on connat au moins

un homme et aucune femme ?

C2

(homme) -

C2

(femme)

c1
(adr)
Nice

Formalisationdes
desdeux
deuxoprations
oprations
Formalisation
Une formalisation de lunion (ensembliste)
Soient T1 et T2 deux tables ayant mme nombre de
colonnes, l'ensemble contenant les lignes de T1 ainsi
que celles de T2 est not T1 T2
T1 T2 = { L | L dans T1 ou L dans T2 }
Une formalisation de la diffrence (ensembliste)
Soient T1 et T2 deux tables ayant mme nombre
de colonnes, l'ensemble contenant les lignes de T1
ne se trouvant pas dans T2 est not T1 - T2
T1 - T2 = { L | L dans T1 et L n'est pas dans T2 }

Arbre
transformation
requtes
Arbre
et et
transformation
dede
requtes
c1
Julie
Linda

c2
Sam
Sam

Quels sont les couples possibles avec une femme de Lyon

et un homme de Nice ?
c1, c3
4 col, 2 lig
c2="Lyon" and c4="Nice"
4 col, 6 lig

2 col, 3 lig
femme

1 col, 2 lig
c1

c1

2*3+2*2+4*6+4*2 =
42 cases manipules

2 col, 1 lig

2 col, 2 lig
c2="Lyon"

2 col, 2 lig
homme

1 col, 1 lig

c2="Nice"

2 col, 3 lig
femme

2 col, 2 lig
homme

2*3+2*2+2*2+2*1+1*2+1*1 =
19 cases manipules