Vous êtes sur la page 1sur 8

Base de donn´ees

Boigelot Denis 22 aoˆut 2006

1 Sch´ema entit´es-associations

Pour mod´eliser un univers dont on veut stocker les donn´ees on utilise le sch´ema entit´es-associations. Une entit´e est un ”objet” mis en association avec un autre 1 . Les entit´es sont repr´esent´ees par des rectangles et les associations par des ovales contenant la signification pr´ecise de cette association. Chaque entit´e est d´etaill´ee par des attributs qui sont inscrits dans le rectangle. Toutes les entit´es sont identifi´ees de mani`ere unique grˆace `a un ou plusieurs de ces attributs qui seront soulign´es dans

le sch´ema. Lorsqu’un attribut concerne deux entit´es, l’attribut sera mis sur l’association les reliant.

Une entit´e est limit´ee en nombre d’associations avec une autre entit´e par sa cardinalit´e qui peut

ˆetre d’exactement 1, de 1 `a n (0 `a n ) ou de m `a n . Une association binaire est de type: un `a un

si

les deux cardinalit´es sont constantes, un `a plusieurs si une des deux cardinalit´es maximale vaut

n

et plusieurs `a plusieurs si les deux cardinalit´es maximale valent n.

Un type particulier d’association est l’h´eritage qui se symbolise par une flˆeche vers le cas g´en´eral et ne poss`ede pas de cardinalit´e 2 . Un h´eritage sera partiel si le cas g´en´eral peut exister seul et sera

total si le cas g´en´eral est toujours utilis´e par un cas particulier. De plus, l’h´eritage sera non exclusif

si le cas g´en´eral peut ˆetre de plusieurs cas particuliers `a la fois et exclusif sinon.

La figure 1 repr´esente un environnement, o`u un client identifi´e par une clef et poss´edant un nom, peut passer un tas de commande. Ces commandes sont identifi´ees par un num´ero de commande, sont faites par un seul client et contiennent une certaine quantit´e d’articles. Les articles sont identifi´es par une clef, sont limit´es dans le stock et peuvent se retrouver dans n’importe quelle commande.

Client Commande Article 1 n 1 n 0 n - clef - nom passe -
Client
Commande
Article
1
n
1
n
0
n
- clef
- nom
passe
- clef
1 - n° de
commande
contient
- quantité
en stock
quantité
commandée

Fig. 1 – Exemple de sch´ema entit´es-associations

Attention : tous les attributs d’une entit´e doivent d´ependre directement de son identi- fiant et d’aucun autre attribut. Par exemple on pourrait ajouter dans client sa commune mais pas le nombre d’habitants de sa commune; en effet ce dernier ne d´epend pas du client mais bien de la commune. Il faudrait donc cr´eer une nouvelle entit´e commune .

1 Le plus souvent on a des associations binaires (entre deux entit´es) mais on peut avoir des associations ternaires. 2 L’h´eritage peut ˆetre vu comme une association ”est” avec la cardinalit´e 1 et 1 n.

1

2

Mod`ele relationnel

Le mod`ele relationnel permet de mod´eliser une base de donn´ees en un syst`eme logique sur lequel il sera beaucoup plus simple de faire des requˆetes. Le vocabulaire ci-dessous y est utilis´e.

Relation table `a deux dimensions contenant diverses informations.

Attributs noms des colonnes d’une relation, rep´er´es par un nom et un domaine de d´efinition, c’est-`a-dire l’ensemble des valeurs accept´ees.

Tuple (ou n-tuple) ligne du tableau.

Sch´ema ensemble des attributs d’une relation.

Population ensemble des tuples d’une relation.

Cardinalit´e nombre de tuples qui composent la relation.

Clef principale attribut (ou les attributs) permettant de d´esigner de fa¸con unique un tuple.

Clef ´etrang`ere attribut permettant d’identifier de fa¸con unique un tuple faisant partie d’une autre relation.

Pour traduire un sch´ema entit´es-associations en mod`ele relationnel on applique les r`egles suivantes:

1. Toute entit´e devient une relation avec comme clef principale l’identifiant de l’entit´e;

2. Une association de type un `a un disparaˆıt, au profit d’une clef ´etrang`ere dans les deux tables;

3. Une association de type un `a plusieurs disparaˆıt, au profit d’une clef ´etrang`ere dans la table cˆot´e du 1;

4. Une association de type plusieurs `a plusieurs devient une table suppl´ementaire dont la clef principale est compos´ee de deux clefs ´etrang`eres vers les deux entit´es en association;

5. Une association non binaire devient une relation avec autant de clefs ´etrang`eres que d’entit´es en association.

Si on applique cela `a la figure 1, l’on obtient les relations: Client(clef, nom), Commande(n o de commande , clefC) o`u clefC r´ef´erence Client.clef, Article(clef, quantit´e en stock) et contient(ndeC , clefA , quan- tit´e command´ee) o`u ndeC r´ef´erence Commande.n o de commande et clefA r´ef´erence Article.clef

3 Alg`ebre relationnelle

L’alg`ebre relationnelle a ´et´e introduite en 1970 par Edgar F. Codd, le directeur de recherche du centre IBM de San Jos´e. Elle est constitu´ee d’un ensemble d’op´erations formelles sur les relations. La manipulation des donn´ees se fait selon le concept math´ematique de relation de la th´eorie des en- sembles. Il existe deux types d’op´erations: les unaires et les binaires 3 . Le r´esultat de toute op´eration est une nouvelle relation. Le langage SQL (voir 5) est un langage d´eriv´e de l’alg`ebre relationnelle.

3.1 Op´erations unaires

Projection op´eration ne retenant que certains attributs dans une relation. Elle se note π [attributs]. Le r´esultat ne gardera que des tuples diff´erents.

S´election op´eration ne retenant que certains tuples dans une relation. Elle se note σ [attribut op const ou attribut], o`u op peut ˆetre =, =, , , < et >. On peut mettre plusieurs expressions dans une s´election avec les op´erateurs logiques et .

Renommage op´eration modifiant le nom d’un attribut pour r´esoudre des probl`emes de compati- bilit´e entre noms d’attributs. Ceci se note α [nom attribut : nouveau nom].

Attention : l’ordre dans lequel on met les op´erations peut ˆetre important. Par exemple si l’on veut connaˆıtre les capitales des petits pays on fera π [nom, capitale] σ [surf ace < 100]P ays et non pas σ [surf ace < 100]π [nom, capitale]P ays.

3 Les op´erations unaires sont prioritaires sur les binaires. Les ´evaluations ont lieu de gauche `a droite.

2

R

R

A

B

C

D

A

B

C

D

1

2

3

1

1

2

3

1

2

5

-3

1

2

5

-3

1

3

2

4

9

3

2

4

9

R 1 A B 1 2 3 4 5 6
R 1
A
B
1
2
3
4
5
6
R 2 A C 1 2 3 4 5 6
R 2
A
C
1
2
3
4
5
6

Fig. 2 – Projection: π [A, B ]R ; Fig. 3 – S´election: σ [C > 0]R ; Fig. 4 – Renommage: R 2 =

le gris sera supprim´e

la ligne en grise sera supprim´ee α [B : C ]R 1

3.2 Op´erations binaires

Produit cart´esien op´eration qui construit toutes les combinaisons de tuples de deux relations. Ceci se note T 1 × T 2 . Il faut que T 1 et T 2 n’aient pas d’attributs de mˆeme nom (pour ´eviter cela on utilisera le renommage).

Jointure op´eration cr´eant toutes les combinaisons significatives – c’est-`a-dire portent la mˆeme valeur pour les attributs de mˆeme nom – entre tuples de deux relations 4 . Ceci se note T 1 T 2 5 . Si T 1 et T 2 n’ont pas d’attributs de mˆeme nom la jointure aura l’effet d’un produit cart´esien. Le sch´ema de la relation r´esultante poss`ede les attributs des relations initiales.

Union op´eration qui r´eunit dans une mˆeme relation les tuples de deux relations. Se note T 1 T 2 . L’union ne se fait qu’entre relations avec les mˆemes sch´emas.

Intersection op´eration qui s´electionne les tuples qui sont dans deux relations. Se note T 1 T 2 . L’intersection ne se fait qu’entre relations avec les mˆemes sch´emas.

Diff´erence op´eration qui s´electionne les tuples d’une relation qui ne sont pas dans une autre. Se note T 1 T 2 . La diff´erence se fait qu’entre relation avec les mˆemes sch´ema.

” Soit

, A m les mˆemes at-

Division op´eration permettant de traiter des requˆetes de style ”les tels que tous les

deux relations R (A 1 ,

tributs dans les deux relations alors la division de R par V , not´ee R/V , est l’ensemble des

< A m+1 ,

, A n ) et V (A 1 ,

, A m ) avec n > m et A 1 ,

, A n > tel que < A 1 ,

, A m >V , < A 1 ,

, A n >R .

R × S R S A B C D A B C D 1 2
R × S
R
S
A
B
C
D
A
B
C
D
1
2
3
4
1
2
3
4
1
2
2
1
4
7
2
1
4
7
3
4
4
7
2
1

Fig. 5 – Produit cart´esien

S R R ∗ S B C A B A B C 1 9 1
S
R
R ∗ S
B
C
A B
A
B
C
1
9
1 2
1
2
8
2
8
3
4
5
2 8
1
4
5
2
6
1 9
7
4
6
1
6
1 4
8
3

Fig. 6 – Jointure naturelle

R 1 ∪ R 2 R R A B 1 2 A B B C
R 1 ∪ R 2
R
R
A
B
1
2
A
B
B
C
1
2
1
2
3
4
4
7
4
7
2
1
3
4
2
1

Fig. 7 – Union

R 1 R 2 A B B C R 1 ∩ R 2 1 2
R 1
R 2
A
B
B
C
R 1 ∩ R 2
1
2
3
9
A
B
3
4
5
2
5
2
5
2
1
4

Fig. 8 – Intersection

4 Il existe aussi la theta-jointure qui est une jointure entre attributs explicitement d´efinis: voir [3] et [4]. D’autres jointures sont pr´esent´ees dans [5]. 5 La jointure se note aussi T 1 T 2 .

3

R 1 R 2

R R 1 2 A B A B B C 1 2 1 2 3
R
R
1
2
A
B
A
B
B
C
1
2
1
2
3
9
3
4
3
4
5
2
3
9
5
2
1
4
1
4

Fig. 9 – Diff´erence

R

A

B

C

1

1

1

1

2

0

1

2

1

1

3

0

2

1

1

2

3

3

3

1

1

3

2

1

3

2

0

V R/V B C A 1 1 1 2 0 3 V R/V B C
V R/V
B C
A
1 1
1
2 0
3
V
R/V
B
C
A
3
5

Fig. 10 – Division de deux tables

4 Calcul relationnels

Avec l’alg`ebre relationnelle, une requˆete est exprim´ee comme une s´equence d’op´erations `a r´ealiser `a partir des relations de la BD. L’objectif du calcul relationnel, inspir´e du calcul des pr´edicats de la logique du premier ordre, est d’exprimer une requˆete par la simple d´efinition du r´esultat, en faisant abstraction du m´ecanisme utilis´e par le SGBD (syst`eme de gestion de base de donn´ees) pour la construction de ce r´esultat. Ce sont donc des langages d´eclaratifs. Il existe deux types de calculs relationnels, le calcul tuples et le calcul de domaines, suivant que les variables utilis´ees dans les formules du calcul d´esignent des tuples d’une relation ou des valeurs dans un domaine. Les langages QUEL (de 1975 pour INGRES) et QBE (de 1977 par IBM) sont des langages commercialis´es d´eriv´es du calcul relationnel (respectivement, tuples et de domaines).

4.1 Calcul tuples

Une requˆete dans le langage du calcul tuples peut ˆetre d´efinie par la composition d’une partie d´eclarative et d’une expression de calcul.

Partie d´eclarative association de variable aux relations de la BD: x R 6 : x d´esignera les tuples de la relation R (”x porte sur R”) 7 .

Expression formule sous la forme {x.A, y.B,

, z.D |f x,y,

,z

}

o`u x, y,

, z sont des variables

dont la port´ee a ´et´e d´eclar´ee dans la partie d´eclarative; A, B,

relations correspondantes; f x,y,

x, y,

, D sont des attributs des

est une formule valide (voir 4.1.1) ayant pour variables

,z

, z .

4.1.1 R`egles

Les formules valides sont construites `a partir des r`egles suivantes:

1. une condition de la forme x.A op a ou x.A op y.B est une formule valide (op d´esigne =, =, , , <, > et a est une constante);

2. si f, f 1 et f 2 sont des formules valides, alors ( f ), ¬f, f 1 f 2 et f 1 f 2 sont des formules valides;

3. si f x est une formule valide o`u x est une variable, alors x(f x ) et x(f x ) sont des formules valides;

4. rien d’autre n’est une formule valide.

Par exemple pour retrouver les ´etudiants ayant r´eussi dans les cours un et deux: e Etudiant, p Point; {e.nom, e.pr´enom | ∃p (e.n o ´etudiant = p.n o ´etudiant p.note1 10 p.note2 10)}.

6 L’on peut utiliser l’op´eration pour que x appartienne `a plusieurs relations qui ont le mˆeme sch´ema. 7 La partie d´eclarative peut se trouver dans la partie droite de l’expression sous la forme R ( x ).

4

4.2

Calcul de domaines

Le calcul de domaines est similaire au calcul de tuples, mais les variables portent sur les valeurs d’un attribut (et non sur les tuples d’une relation).

Partie d´eclarative association de variables aux valeurs des attributs de la BD: x R.A 8 .

Expression formule sous la forme {x, y,

, z |f x,y,

,z

} o`u f est une formule valide (voir 4.2.1).

4.2.1 R`egles

Les formules valides sont d´efinies de la mˆeme fa¸con qu’en calcul tuples, `a ceci pr`es que les variables ne sont pas suivies d’un attribut et qu’on d´efinit un nouveau type de formule valide qui est la

formule d’appartenance. Les formules d’appartenance se notent R (A : v 1 , B : v 2 ,

sont soit des constantes soit des variables. Une ) est vraie ssi dans la relation R il existe au moins un

sont des attributs de la relation R , et v 1, v 2 , condition d’appartenance R (A : v 1 , B : v 2 ,

tuple ayant `a la fois v 1 comme valeur pour l’attribut A, v 2 comme valeur pour l’attribut B ,

), o`u A, B,

Par exemple pour retrouver les ´etudiants ayant r´eussi dans les cours un et deux: n Etudiant.nom,

p Etudiant.pr´enom, no Etudiant.n o ´etudiant Point.n o ´etudiant {n, p | ∃no n1 n2 (Etu-

diant(nom:n, pr´enom:p, n o ´etudiant:no) Inscription(n o ´etudiant:no, note1:n1, note2:n2) n1 10

n2 10}.

5

SQL

La commande de base en SQL s’´ecrit select [distinct] attributs1, attributs2,

[ where condition logique]. Elle s´electionne les attributs at-

selon la

condition condition logique qui sert entre-autre pour la s´election. L’option distinct sert `a supprimer les doublons. Le renommage se fait en faisant suivre le nom d’un attribut ou d’une relation par as nouveau nom. Le r´esultat de toute requˆete SQL est une relation. Il est donc simple

from

relations1, relations2, tributs1, attributs2,

9 des tuples de la relation relations1, relations2,

de faire les op´erations d’union, d’intersection et de diff´erence avec les mots-clefs union, intersect

et except pr´ec´ed´es et suivis par une relation. Pour la jointure, on place les deux relations `a joindre

apr`es le from s´epar´ees par un inner join, le tout suivi de where avec pour condition que la clef principale d’une relation ´egal la clef ´etrang`ere de l’autre. La division T 1 (A, B )/T 2 (B ) se fait avec les commandes

SELECT A FROM

WHERE B IN ( SELECT B FROM T2 )

GROUP BY A HAVING COUNT(*) = ( SELECT COUNT (*) FROM T2 );

T1

L’instruction group by permet de regrouper des tuples pour lesquels une valeur est calcul´ee. Les diff´erents calculs sont avg qui retourne la moyenne du regroupement, count qui retourne le nombre de tuples du regroupement, max qui retourne la valeur maximale d’un regroupement, min qui retourne le minimum d’un regroupement et sum qui retourne la somme des valeurs pour chaque regroupement. L’instruction compl`ete sera donc de type select attributs, calcul (attribut) from relation group by attributs. La clause having condition logique est mise juste apr`es

le group by et permet de sp´ecifier des crit`eres de regroupement qui peuvent porter sur les valeurs

calcul´ees. Enfin, order by attribut [desc] permet de classer les donn´ees; l’option desc provoque

un tri descendant. Toute commande SQL se termine par un point-virgule (;). De nombreuses autres commandes existent; voir [7] et [9].

8 L’on peut utiliser l’op´eration pour que x prenne plus de valeurs possibles. 9 Pour s´electionner tous les attributs on se contentera de mettre une ´etoile (*) `a la place des attributs.

5

6 Normalisation

Une bonne mod´elisation peut ˆetre obtenu par intuition, par exp´erience, en utilisant un mod`ele expressif comme le sch´ema entit´es-associations, etc. Les r´esultats ne seront pas toujours les mˆemes selon la technique utilis´ee et la personne qui l’utilise. Pour mesurer la qualit´e d’une relation on lui associe un degr´e de normalisation. La normalisation nous permettra aussi d’am´eliorer une relation. Il ne sera pas toujours utile de normaliser jusqu’au plus haut niveau. En effet, dans les plus grand degr´e, on aura des relations plus petites et plus nombreuses, d’o`u une augmentation de liens et donc du temps de calcul lors des requˆetes.

Attribut complexe attribut constitu´e d’autre attributs comme une adresse ou une date. Un attribut non complexe est dit simple.

Attribut multivalu´e attribut qui peut prendre plusieurs valeurs par tuple comme des pr´enoms ou des num´eros de t´el´ephones. Un attribut non multivalu´e est dit monovalu´e.

6.1 D´ependances et graphes

Soit une relation R (X, Y, Z ), il existe une d´ependance fonctionnelle (abr´eg´e DF) de Y vers Z , not´ee Y Z , si pour tous tuples de R de mˆeme valeur pour Y , alors ils ont mˆeme valeur pour Z . Par exemple, pour la relation Fournisseur(NF, nomF, prix, nomProd) on trouve les DF suivantes:

NFnomF, nomFNF, (NF, nomProd)prix et (nomF, nomProd)prix. Les DF sont transi- tives. La DF X D est non ´el´ementaire s’il existe Y D tel que Y est un sous-ensemble de X . Le graphe des DF est un graphe orient´e reprenant toutes les DF d’une relation. Le graphe minimal s’obtient en ne prenant que les DF qui sont ´el´ementaires et ne pouvant pas ˆetre d´eduites grˆace `a la transitivit´e. On utilisera toujours le graphe minimal dans la normalisation. Un identifiant d’une relation est un ensemble minimal d’attributs `a partir desquels on peut atteindre tous les autres attributs du graphe. En cas de cycle, il y aura donc plusieurs identifiants possibles. On appelle d´ependance multivalu´ee 10 (abr´eg´e DM), not´ee X Y | Z , la propri´et´e suivante: si (x1, y 1 , z 1) et (x1, y 2, z 2) sont des tuples de R alors ( x1 , y 1 , z 2) et (x1, y 2, z 1) sont dans R .

nomF NF prix
nomF
NF
prix

nomProd

nomF prix
nomF
prix

nomProd

NF

ou

nomF

NF prix
NF
prix

nomProd

Fig. 11 – Graphe de l’exemple et ses deux graphes minimal possibles

Th´eor`eme de Heath si une relation R (X, Y, Z ) admet la DF X Y alors elle est d´ecomposable sans perte d’information en R 1 = π [X, Y ]R et R 2 = π [X, Z ]R 11 .

6.2 Axiomes d’Armstrong

1.

Transitivit´e: si X Y et Y Z alors X Z

2.

Augmentation: si X Y alors XZ Y

3.

R´eflexivit´e: si X contient Y alors X Y

6.2.1

Propri´et´es d´eduites

1.

Union: si X Y et Y Z

alors X Y Z

2.

Pseudo-transitivit´e: si X Y et W Y Z alors W X Z

3.

D´ecomposition: si X Y et Z contenu dans Y alors X Z

10 Les d´ependances multivalu´ees sont parfois appel´ees d´ependances multi-ensembles. 11 La relation R 1 est de degr´e 3NF (voir section 6.3).

6

6.3

Degr´es de normalisation

La liste qui suit pr´esente cinq degr´es de normalisation 12 . Pour ˆetre d’un certain degr´e, il faut l’ˆetre de tous ceux d’en dessous aussi. Toutes relations peuvent toujours ˆetres d´ecompos´ees jusqu’en 3NF sans aucune perte.

1NF Premi`ere forme normale — Une relation est 1NF si ces attributs sont simples et monovalu´es. Si ce n’est pas le cas, on d´ecompose tous les attributs complexes en attribut simple. Ensuite, on fait une table s´epar´ee pour chaque ensemble d’attributs multivalu´e, et l’on donne `a chaque table une clef primaire et une clef ´etrang`ere.

2NF Deuxi`eme forme normale — Une relation est 2NF si ces attributs, qui ne font pas partie d’un identifiant, d´ependent d’un identifiant entier. Pour le savoir, on trace le graphe de DF et l’on v´erifie la condition. Si ce n’est pas le cas, on divise la relation en relations 2NF en appliquant le th´eor`eme de Heath sur chaque source diff´erente de DF.

3NF Troisi`eme forme normale — Une relation est 3NF si tous ces attributs d´ependent directement de son identifiant 13 . Pour devenir 3NF il suffit de scinder en plusieurs relations 3NF.

BCNF Forme normale de Boyce-Codd — Une relation est BCNF si toute source compl`ete de DF est un identifiant entier. Plusieurs techniques existent pour rendre une relation BCNF, mais elles ne sont pas parfaites

4NF Quatri`eme forme normale — Une relation est 4NF si elle ne contient pas de d´ependance multivalu´ee. Rendre une relation 4NF se fait en adaptant le th´eor`eme de Heath au DM.

6.4 Exemples et int´erˆets des degr´es

Dans la relation de la figure 12, il y a un attribut multivalu´e, on s´epare donc la relation en deux. Ceci permet de rechercher plus facilement dans l’attribut multivalu´e. De plus, des SGBD ne permettent pas d’utiliser de tel attribut, une relation 1NF est donc obligatoire. Une relation non 2NF est illustr´ee `a la figure 13. Son gros d´esavantage est de contenir des redondance: pour chaque tuples nous aurons le num´ero du fournisseur avec son nom et un num´ero de produit avec son prix. Des probl`emes se posent aussi lors de mise `a jour ou de suppression. En effet, il faudra souvent rentrer des informations d´ej`a dans la base et un changement n´ecessite de changer plusieurs tuples; si on supprime momentan´ement les produits d’un fournisseur, il ne sera plus pr´esent dans la base de donn´ees. Pour arranger ¸ca, on coupe la relation en trois: Fourn(n o , nomF), Prod(n o , poids) et Stock(n o F, n o P, prix). La figure 14 illustre le probl`eme expliqu´e en fin de section 1. Le passage en 3NF ´evite des redondances et facilite ainsi les mises `a jour. L’exemple de la figure 15 n’est pas BCNF ce qui pose le probl`eme suivant: si un professeur change de sp´ecialit´e, il faut changer tout les tuples o`u il apparaˆıt. Pour r´egler ceci, on peut diviser en (prof, mati`ere) et (n o etud, prof) mais on perd la DF (n o etud, mati`ere) Prof qui devient une contrainte d’int´egrit´e. Il n’existe pas de solution parfaite pour ce cas. La derni`ere image est une relation avec A B | C . En effet, pour toutes valeurs de A correspond un ensemble de B avec tous les mˆemes C. Elle n’est donc pas 4NF, sauf si on la d´ecompose en R(A, B) et S(A, C), pour s´eparer les faits multivalu´es ind´ependants.

R 2 R ≡ R 1 ∗ R 2 R D A C 1 A
R 2
R ≡ R 1 ∗ R 2
R
D A
C
1
A
B
C
A
B
1 1
a
1
P
a,b
1
P
2 1
b
2
J
b,c
2
J
3 2
b
3
A
c
3
A
4 2
c
5 3
c

Fig. 12 – Relation avec attributs multivalu´es

N°fourn N°prod prix nomF poids
N°fourn
N°prod
prix
nomF
poids

Fig. 13 – Relation non 2NF

12 Il existe encore d’autres degr´es voir [10]. 13 Le graphe doit donc ˆetre un arbre de profondeur maximale un.

7

nom

commune déduit
commune
déduit

nb d'habitants

Fig. 14 – Relation non 3NF

N°etud

matière prof
matière
prof

Fig. 15 – Relation non BCNF

A B C 1 a δ 1 a 1 b δ 1 b 2 z
A
B
C
1
a
δ
1
a
1
b
δ
1
b
2
z
ψ
d´ependance multivalu´e
Fig.
16
Relation avec

R´ef´erences

[1] Esteban Zim´anyi. INFO 364 - Bases de donn´ees. [en ligne]. [r´ef´erence du 27 novembre 2005]. Disponible sur Web: <http://cs.ulb.ac.be/cours/info364/>. [2] Cyril Gruau. Conception d’une base de donn´ees. [en ligne]. 17 octobre 2005 [r´ef´erence du 1 d´ecembre 2005]. Disponible sur Web: <http://cyril-gruau.ftp-developpez.com/ConceptionBD. pdf >. [3] Le mod`ele relationnel. [en ligne]. [r´ef´erence du 25 novembre 2005]. Disponible sur Web: <http:

//www.commentcamarche.net/relation/>. [4] Stefano Spaccapietra. L’alg`ebre relationnelle . [en ligne]. 14 d´ecembre 2004 [r´ef´erence du 25 no- vembre 2005]. Disponible sur Web: <http://lbdwww.epfl.ch/f/teaching/courses/SlidesBDR/ Algebre 6.pdf >. [5] L’alg`ebre relationnelle appliqu´ee au SGBDR . [en ligne]. [r´ef´erence du 25 novembre 2005]. Dis- ponible sur Web: <http://www.laltruiste.com/annexe/algebre relationnelle.html>. [6] Stefano Spaccapietra. Chapitre 7 - Langages de manipulation relationnels: les calculs rela- tionnels. [en ligne]. 06 novembre 2002 [r´ef´erence du 27 novembre 2005]. Disponible sur Web:

<http://lbdwww.epfl.ch/f/teaching/courses/poly1/chapitre7.pdf >. [7] Le langage SQL . [en ligne]. [r´ef´erence du 25 novembre 2005]. Disponible sur Web: <http:

//www.laltruiste.com/courssql/sommaire.html >. [8] Victor M. Matos et Rebecca Grasser. A simpler (and better) SQL approach to relational division . [en ligne]. [r´ef´erence du 27 novembre 2005]. Disponible sur Web: <http://www.jise. appstate.edu/13/085.pdf >. [9] SQL Tutorial. [en ligne]. [r´ef´erence du 25 janvier 2006]. Disponible sur Web: <http://www. w3schools.com/sql/ >. [10] Rules of data normalization . [en ligne]. Mis `a jour 13 juin 2005 [r´ef´erence du 20 janvier 2006]. Disponible sur Web: <http://www.datamodel.org/NormalizationRules.html>. [11] Stefano Spaccapietra. Normalisation d’un sch´ema relationnel. [en ligne]. 03 mai 2005 [r´ef´erence du 25 janvier 2006]. Disponible sur Web: <http://lbdwww.epfl.ch/f/teaching/ courses/SlidesBDR/normalisation 6.pdf >.

[12] Marie-France Lasalle. Mod`ele relationnel – Normalisation . [en ligne]. 27 aoˆut 2001 [r´ef´erence du 25 janvier 2006]. Disponible sur Web: <http://lifc.univ-fcomte.fr/ lasalle/modelerelationnel/ page3.htm >. [13] Patrice Boursier. Bases de Donn´ees – Notes de cours. [en ligne]. F´evrier 2002 [r´ef´erence du 26 mai 2006], pp 19-21. Disponible sur Web: <http://perso.univ-lr.fr/pboursie/BD NotesCours

[14] ISO TC46/SC9. Information et documentation – R´ef´erences bibliographiques – Partie 2: Docu- ments ´electroniques, documents complets ou parties de documents. [en ligne]. Mis `a jour 22 aoˆut 2002. [r´ef´erence du 26 octobre 2005]. Disponible sur Web: <http://www.collectionscanada.ca/

´

Ce texte s’inspire pour beaucoup du cours de base de donn´ees de Stefano Spaccapietra que je vous recommande de lire, et qui est disponible sur internet: <http://lbdwww.epfl.ch/f/teaching/

8