Sunteți pe pagina 1din 110

Bases de donnes relationnelles

Les Bases de Donnes


Relationnelles
Chapitre I
Introduction et objectifs

Quest ce quune base de donnes?


SQL
REQUETE

CLE

ACCESS
RELATIONNEL
ORACLE

SGBD

ENREGISTREMENT

TABLE
DONNEE

SQL SERVER
MODELE LOGIQUE
3

B. EL HATIMI

Bases de donnes relationnelles

Quest ce quune base de donnes ?

Une Base de Donnes (BD), en anglais Database,


est une collection de donnes structures,
modlisant les objets du monde rel, relies par
des relations et stockes sur un support
permanent. Une BD doit tre interrogeable et
modifiable par des langages de haut niveau.
Une BD sert de support des applications
informatiques. Sa gestion est assure par un
Systme de Gestion de Bases de Donnes
(SGBD).

Les fichiers

B. EL HATIMI

Un fichier est un rcipient dinformation


caractrise par un nom,, permettant dcrire des
programmes dapplication indpendants des
mmoires secondaires. [GARDARIN 2003]
Un systme de Gestion de Fichiers (SGF) est un
ensemble de programmes qui assure les fonctions
de cration/suppression de fichiers, lallocation de la
mmoire secondaire, la localisation et la recherche
des fichiers.
Pourquoi les fichiers ne sont pas suffisants pour la
gestion des donnes ?

Bases de donnes relationnelles

Systmes de fichiers

Comptabilit

Caractristiques

Chirurgie

Problmes
Consultations

Psychiatrie

Format des fichiers

Caractristiques
Plusieurs applications

Dupont
Symptomes : y
Turlututu : sqj
Symptomes : y
Turlututu : sdd
Analyses : xxx

Dupond
Turlututusqjsk
Symptom: yyyy
Analyses xxxx

plusieurs formats
plusieurs langages

Turlututudhjsd
Analyses :xx

Problmes
Difficults de gestion

Duhpon

Duipont
Turlututu : sq

B. EL HATIMI

Symptomes : yy
Analyses : xxxx

Symptomyyyy
Analysesxxxx

Symptomes : yy

Turlututudhjsd

Bases de donnes relationnelles

Redondance (donnes)
Dupont
Symptomes : y
Turlututu : sqj
Symptomes : y
Turlututu : sdd
Analyses : xxx

Dupond
Turlututusqjsk
Symptom: yyyy
Analyses xxxx

Caractristiques
Plusieurs
applications
plusieurs formats
plusieurs langages

Turlututudhjsd
Analyses :xx

Redondance de
donnes

Problmes
Difficults de gestion
Incohrence des donnes

Duhpon

Duipont
Turlututu : sq

Symptomes : yy
Analyses : xxxx

Symptomyyyy
Analysesxxxx

Symptomes : yy

Turlututudhjsd

Interrogations

Caractristiques

ComptaSoft

Dupont
Symptomes : y
Turlututu : sqj
Symptomes : y
Turlututu : sdd
Analyses : xxx

Dupond
Turlututusqjsk
Symptom: yyyy
Analyses xxxx
Turlututudhjsd
Analyses :xx

ChiruSoft

Plusieurs applications
plusieurs formats
plusieurs langages

Redondance de
donnes
Pas de facilit
dinterrogation
Question dveloppement

Problmes

ConsultSoft

B. EL HATIMI

Duhpon

Duipont
Turlututu : sq

Symptomes : yy
Analyses : xxxx

Symptomyyyy
Analysesxxxx

Symptomes : yy

Turlututudhjsd

PsychiaSoft

Difficults de gestion
Incohrence des donnes
Cots levs
Maintenance difficile

Bases de donnes relationnelles

Pannes ???

Caractristiques

ComptaSoft

Dupont
Symptomes : y
Turlututu : sqj
Symptomes : y
Turlututu : sdd
Analyses : xxx

Dupond
Turlututusqjsk
Symptom: yyyy
Analyses xxxx
Turlututudhjsd
Analyses :xx

ChiruSoft

Plusieurs applications
plusieurs formats
plusieurs langages

Redondance de
donnes
Pas de facilit
dinterrogation
Question dveloppement

ConsultSoft

Duhpon

Duipont
Turlututu : sq

Symptomes : yy
Analyses : xxxx

Symptomyyyy
Analysesxxxx

Symptomes : yy

Turlututudhjsd

PsychiaSoft

Problmes

Partage de donnes

Difficults de gestion
Incohrence des donnes
Cots levs
Maintenance difficile
Gestion de pannes ???10

Caractristiques

ComptaSoft

Dupont
Symptomes : y
Turlututu : sqj
Symptomes : y
Turlututu : sdd
Analyses : xxx

Dupond
Turlututusqjsk
Symptom: yyyy
Analyses xxxx
Turlututudhjsd
Analyses :xx

ChiruSoft

Plusieurs applications
plusieurs formats
plusieurs langages

Redondance de donnes
Pas de facilit
dinterrogation
Question dveloppement

ConsultSoft

B. EL HATIMI

Duhpon

Duipont
Turlututu : sq

Symptomes : yy
Analyses : xxxx

Symptomyyyy
Analysesxxxx

Symptomes : yy

Turlututudhjsd

PsychiaSoft

Problmes
Difficults de gestion
Incohrence des donnes
Cots levs
Maintenance difficile
Gestion de pannes ???
11
Partage des donnes ???

Bases de donnes relationnelles

Confidentialit

Caractristiques

ComptaSoft

Dupont
Symptomes : y
Turlututu : sqj
Symptomes : y
Turlututu : sdd
Analyses : xxx

Dupond
Turlututusqjsk
Symptom: yyyy
Analyses xxxx
Turlututudhjsd
Analyses :xx

ChiruSoft

Plusieurs applications
plusieurs formats
plusieurs langages

Redondance de donnes
Pas de facilit
dinterrogation
Question dveloppement

Redondance de code

ConsultSoft

Duhpon

Duipont
Turlututu : sq

Symptomes : yy
Analyses : xxxx

Symptomyyyy
Analysesxxxx

Symptomes : yy

Turlututudhjsd

PsychiaSoft

Problmes
Difficults de gestion
Incohrence des donnes
Cots levs
Maintenance difficile
Gestion de pannes ???
Partage des donnes ???
12
Confidentialit ???

Quand utiliser les fichiers ?


Faut-il pour autant abandonner les fichiers ?
Non.
Dans le cas de donnes importantes et
homognes les fichiers et les SGF
(Systmes de Gestion de fichiers) restent
une solution idale.
Exemple : Listing des oprations bancaires.
13

B. EL HATIMI

Bases de donnes relationnelles

Systmes de Gestion de Bases de


Donnes (SGBD)

Un Systme de Gestion de Bases de


Donnes est un logiciel de haut niveau qui
permet de manipuler les informations
stockes dans une base de donnes.
Exemple de SGBD : Oracle, SQL Server,
MySQL, PostgreSQL, Informix
14

15

B. EL HATIMI

Bases de donnes relationnelles

Objectifs des SGBD


I- Indpendance
Physique
X - Standards

II- Indpendance
Logique

IX - Gestion de la
confidentialit
VIII - Concurrence
daccs

III Langage de
manipulation

BD

IV - Gestion des
vues
V - Optimisation des
questions

VII - Gestion des


pannes
VI - Gestion de la
cohrence

16

Fonctions principales dun SGBD


Description des donnes.
Recherche des donnes.
Mise jour des donnes.
Contrle de lintgrit des donnes.
Scurit des donnes.

17

B. EL HATIMI

Bases de donnes relationnelles

Architecture dun SGBD

18

Un objectif majeur du SGBD est dassurer une abstraction des


donnes stockes sur disques pour simplifier la vision des
utilisateurs. Pour cela trois niveaux de description des donnes
sont identifies appels aussi niveaux dabstraction.

Niveaux dabstraction
Niveau externe fournit pour chaque
utilisateur une description des donnes
perues (vue).
Niveau logique contient la description et la
structuration des donnes selon un modle
propre au SGBD.
Niveau interne correspond la structure de
stockage supportant les donnes (les
fichiers).
19

B. EL HATIMI

Bases de donnes relationnelles

Cycle de vie dune BD

Conception

Implantation
dans un SGBD

20

Utilisation

Plan lment Bases de donnes


relationnelles

Modle relationnel.
Conception dune base de donnes.
Algbre relationnel.
Thorie de la normalisation.

21

B. EL HATIMI

10

Bases de donnes relationnelles

Les Bases de Donnes


Relationnelles
Chapitre II
Modle relationnel

22

Modle Logique de Donnes


Un Modle Logique est le modle sur lequel
est construit le SGBD. Il existe plusieurs
modles logiques et donc autant de familles
de SGBD : relationnel, rseau, hirarchique,
orient objet.
On parlera de Systme de Gestion de Base
de Donnes Relationnel (SGBDR) dans le
cas dun SGBD bas sur le modle
relationnel.
23

B. EL HATIMI

11

Bases de donnes relationnelles

Modle Logique de Donnes


Diffrents modles :

Modle Rseau
Modle Hirarchique
Modle Relationnel (Oracle, SQL Server,
MySQL)
Standard du march - 90% du
march des SGBD
Modle Objet
Futur ?
Modle Relationnel Objet

24

Un petit historique

25

B. EL HATIMI

1960 : Systmes de gestion de fichiers


1970 : Dbut des SGBD rseaux et hirarchiques
1970 : Article de CODD (IBM SanJose) proposant le
modle relationnel A Relational Model for Large
Shared Data Banks (Voir annexe)
1976 : Article de CHEN sur le modle entitassociation The Entity-Relationship Model
Towards a Unified View of Data
1979 : Premier SGBDR Oracle de IRS
1990 : Les SGBD relationnels dominent le march

12

Bases de donnes relationnelles

Un petit historique
Annes 1990 : Dbut des SGBD Orients
Objet. Datawarehouse . Datamining. BD
rfrence spatiales.
1992 : Norme ISO SQL2 (International
Organization for Standardization)
2004 : Standard SQL 2003 ou SQL3 publi
Maintenant : BD multimdia, BD spatiotemporelles, Data Warehouses, .
26

Legacy Systems
Les premiers modles logiques et SGBD
(dits Legacy Systems) sont apparus dans les
annes1970s.
Approche systme des BDs.
Modliser la BD comme un ensemble de
fichiers relis par des pointeurs.
Privilgier loptimisation des entres sorties.
Modles daccs
27

B. EL HATIMI

13

Bases de donnes relationnelles

Legacy Systems : 2 exemples


Langages de Manipulation de Donnes
(LMD) bass sur le parcours de fichiers et de
liens entre fichiers
Langages
Navigationnels
Les modles les plus populaires : le Modle
rseau et le Modle hirarchique

28

Legacy Systems
Forces :
Proche du niveau interne (gestion des fichiers)
Efficacit (accs disques)
Faiblesses :
Manque dindpendance Programmes-Donnes
Grande complexit des LMD associs
LMD de bas niveau laissant la navigation la charge
du programmeur

29

B. EL HATIMI

14

Bases de donnes relationnelles

CODD le fondateur
Edgar F. CODD (1923 2003)
1969 : Premier article de CODD sur le
modle relationnel.
1970 : Article fondateur de CODD (IBM
SanJose) sur le modle relationnel A
Relational Model for Large Shared Data
Banks
30

CODD le fondateur

31

B. EL HATIMI

Objectif 1 : Indpendance Programmes dapplication Vs


Reprsentation interne des donnes
Objectif 2 : Une base solide pour traiter les problmes de
cohrence et de redondance des donnes (Rgles
dintgrit Algbre relationnelle Thorie de la
normalisation)
Objectif 3 : Modle extensible
Objectif 4 : Devenir un standard pour la description et la
manipulation des bases de donnes
Objectif 5 : Simplicit du modle (modle un seul
concept : la relation)
Objectif 6: Simplicit des vues relationnelles :
reprsentation tabulaires des donnes

15

Bases de donnes relationnelles

Modlisation des donnes


1.
2.
3.

4.

Pour dcrire les objets dans une BD :


Type dobjets.
Instances (ou occurrences) dobjets.
Modle de description de donnes (ou modle
logique) : ensemble de concepts et de rgles
permettant de dcrire des donnes
Exemple le
modle relationnel.
Langage de description de donnes : langage
supportant un modle et permettant de dcrire les
donnes dune BD dune manire assimilable par une
machine
Exemple le langage SQL.

32

Le domaine de valeurs
Le domaine de valeurs : Ensemble dinstances dun
type lmentaire caractris par un nom : Les
domaines sont les ensembles dans lesquels les
donnes prennent leurs valeurs.
Exemples de domaines : Entier, Rel, Alpha-numrique,
Couleur {Rouge, Blanc, Bleu, Jaune}
Un domaine peut tre dfini en intention en
dfinissant une proprit caractristique des valeurs du
domaine (Rel, Boolen, Caractre) ou dfini en
extension en donnant la liste des valeurs le composant
(Couleur {Rouge, Blanc, Bleu, Jaune})

33

B. EL HATIMI

16

Bases de donnes relationnelles

Relation ou Table

34

La Relation ou Table : Sous-ensemble fini


du produit cartsien dune liste de domaines
caractris par un nom.
Une relation reprsente un objet (concret ou
abstrait) du monde rel, identifiable et
pertinent pour la base de donnes.
CODD a reprsent les relations sous forme
de tables deux dimensions (reprsentation
tabulaire).

Relation ou Table : Reprsentation


tabulaire
CLIENT
C342
C235
C145
C98
C114

Nom de la table

ELECTRA S.A.
Comptoirs du SOUSS
Africaine de cbles
Electronia
SMEC

Casablanca
Agadir
Tanger
Casablanca
Casablanca

35

B. EL HATIMI

17

Bases de donnes relationnelles

Attribut ou Colonne
Un attribut : Colonne dune relation caractrise par un
nom. Un attribut est toujours associ un domaine (on
parle de contrainte de domaine).
Domaines possibles : Rel, Entier, Boolen, Date,
Heure, Caractre, Chane de caractres, Montaire,
domaines dfinis en extension
Le choix des domaines pour les attributs dpend du
SGBD.

36

Un attribut ou Colonne
CLIENT
Code

LibelleClient

Adresse

C342
C235
C145
C98
C114

ELECTRA S.A.
Comptoirs du SOUSS
Africaine de cbles
Electronia
SMEC

Casablanca
Agadir
Tanger
Casablanca
Casablanca

37

B. EL HATIMI

18

Bases de donnes relationnelles

Vocabulaires relationnel et tabulaire


Remarque importante : Il existe deux
vocabulaires dans le modle relationnel : un
vocabulaire formel ou relationnel (relation,
attribut, enregistrement ou tupple) et un
vocabulaire lie la reprsentation tabulaire
(table, colonne, ligne).

38

Enregistrement ou Tupple

39

B. EL HATIMI

Tupple ou Enregistrement : n-uplet (v1,,vn)


correspondant une ligne de la table reprsentant la
relation.
Un enregistrement est une ralisation de la relation.
Exemple pour la relation CLIENT : (C342,ELECTRA
S.A, Casablanca), (C235, Comptoirs du Souss,
Agadir)
Les n-uplet dune relation reprsentent lensemble des
instanciations de cette relation
On peut alors
appliquer des contraintes ensemblistes sur ces
ensembles.

19

Bases de donnes relationnelles

Attributs facultatifs et obligatoires


Un attribut est dit facultatif si on admet que pour un
enregistrement donn sa valeur peut ne pas tre
renseigne : on parle alors de valeur nulle.
Un attribut est dit obligatoire si sa valeur doit tre
renseigne. On parle de contrainte de non nullit.

40

Valeurs complexes
Le modle relationnel nadmet que des domaines
ayant des valeurs lmentaires.
Il est interdit dans le modle relationnel de manipuler
des attributs ayant des valeurs complexes :
instances de graphes, listes, enregistrement
Exemple :

Soit la relation LEVE (Id : Entier, Coord : Point) o Point est


dfini comme {(X:Rel,Y:Rel, Z:Rel)}
FAUX !!!
LEVE (Id : Entier, CoordX : Rel, CoordY : Rel, CoordZ :
Rel)
CORRECT !!!

41

B. EL HATIMI

20

Bases de donnes relationnelles

Attributs monovalus et attributs


multivalus
Un attribut monovalu est un attribut qui na pour un
enregistrement quune seule valeur.
Un attribut multivalu est un attribut qui pour un
mme enregistrement peut prendre plusieurs
valeurs.
Le modle relationnel nadmet que des attributs
monovalus !!!
Nb : Se rfrer la partie Cl trangre pour la
transformation des attributs multivalus en attributs
monovalus.

42

Attributs atomiques
Les attributs dans le modle relationnel
doivent tre simples (non complexes) et
monovalus (non multivalus). On parle
dattributs atomiques.
Premire Forme Normale Tous les
attributs de la relation sont atomiques (Voir
partie Thorie de la normalisation).

43

B. EL HATIMI

21

Bases de donnes relationnelles

Cl ou identifiant dune relation


Tout tuple (toute ligne) doit tre identifiable.
Cl ou Identifiant : Plus petit ensemble des
attributs dont la connaissance des valeurs
permet didentifier un tuple de la relation de
manire unique.

44

Cl ou identifiant dune relation

Code
C342
C235
C145
C98
C114

LibelleClient

Adresse

ELECTRA S.A.
Comptoirs du SOUSS
Africaine de cbles
Electronia
SMEC

Casablanca
Agadir
Tanger
Casablanca
Casablanca

45

B. EL HATIMI

22

Bases de donnes relationnelles

Contrainte dunicit
Contrainte dunicit : Deux enregistrements distincts
ne peuvent avoir la mme valeur pour la cl.

Code
C342
C235
C145
C98
C114
C145

46

LibelleClient

Adresse

ELECTRA S.A.
Comptoirs du SOUSS
Africaine de cbles
Electronia
SMEC
SODETA

Casablanca
Agadir
Tanger
Casablanca
Casablanca
Rabat

Schma dune relation

1.
2.
3.
4.

Soit la relation CLIENT. Pour dfinir formellement cette relation on


utilise son schma : CLIENT ( Code : alphanumrique,
LibelleClient : alphanumrique, Adresse : alphanumrique)
Code est la cl de la relation CLIENT.
Le schma relationnel ou formel dune relation contient :
Nom de la relation.
Dfinition de la relation.
Nom des attributs avec leur domaine de valeurs.
Identifiants(s) avec prcision de la cl primaire et des cls
secondaires. Dans le schma de la relation la cl primaire est
souligne.

47

B. EL HATIMI

23

Bases de donnes relationnelles

Schma dune relation


Remarque : Le schma dune relation est la
dfinition en intention de la relation alors que
la table est la dfinition en extension de celleci.
Exercice : Proposer un schma pour une
relation Etudiant.

48

Cl primaire et cls secondaires

49

B. EL HATIMI

Une relation peut possder plusieurs cls. Ainsi


ETUDIANT (CIN, CNE, CodeCNC, ) : CIN, CNE ou
CodeCNC sont toutes des cls de la relation ETUDIANT.
On choisit une de ces cls comme cl principale ou
primaire, les autres sont alors dites secondaires.
On choisit comme cl primaire la cl la plus utilise. Dans
lexemple prcdent si la BD est relative au CNC on
choisira CodeCNC, si par contre la BD gre les tudiants
dune universit on prendra CNE comme cl primaire.
Important : La contrainte dunicit sapplique la cl
primaire et aux cls secondaires.

24

Bases de donnes relationnelles

Contrainte dentit
Contrainte dentit : Toute relation doit
possder une cl primaire et tout attribut
participant cette cl primaire doit tre non
nul (attribut obligatoire).
Remarque importante : Tous les attributs
composant la cl primaire dune relation sont
soumises la contrainte de non nullit.

50

Cl - Notions supplmentaires
Avant le choix de la cl primaire, toute cl est dite
cl candidate.
Un ensemble dattributs qui inclut une cl est
appel super-cl.
Remarque : Une super-cl nest pas une cl
puisque par dfinition ce nest pas un ensemble
minimal dattributs constituant une cl.
51

B. EL HATIMI

25

Bases de donnes relationnelles

Cl naturelle et cl artificielle
Si dans la ralit lobjet reprsenter possde un
identifiant, alors on le choisira comme cl et on
parlera de cl naturelle. Sinon, on lui attribuera une
cl artificielle.
EMPLOYE (Nom, Prenom, Fonction, Salaire) :
Nom+Prenom est une cl naturelle.
EMPLOYE (Code : Entier, Nom, Prenom, Fonction,
Salaire) : Code a t ajout comme une cl
artificielle de type entier.
Code devient la cl primaire et Nom+Prenom garde
la contrainte dunicit.

52

Cl trangre
Comment exprimer les liens entre objets ?
Exemple : Un employ est rattach un service.

53

B. EL HATIMI

SERVICE

EMPLOYE

IdService
NomService

Matricule
Nom
Fonction

(Ceci est une reprsentation graphique dune relation).

26

Bases de donnes relationnelles

Cl trangre - Dfinition
Une cl trangre (ou cl externe) est un
ensemble dattributs dune relation formant une
cl dans une autre relation. La relation qui
contient la cl de rfrence est dite parent (ou de
rfrence), celle contenant la cl trangre
enfant.
Une cl trangre exprime un lien logique (mais
aussi une dpendance) entre deux relations.
54

Cl trangre
SERVICE
IdService
NomService

EMPLOYE
Matricule
Nom
Fonction
Service
Rf : Service

55

B. EL HATIMI

Remarque : La cl trangre na pas obligatoirement le


mme nom que dans la relation parent.

27

Bases de donnes relationnelles

Cl trangre
On crira dans la description du schma
relationnel :
EMPLOYE (Matricule, Nom, Fonction ,Service)
SERVICE (IdService, NomService)

EMPLOYE. Service rfrence SERVICE.IdService

56

Cl trangre
SERVICE
IdService
S01
S02
EMPLOYE
Matricule

57

B. EL HATIMI

NomService
Service comptabilit
Service achats
Nom

Fonction

Service

1234

Filali

Chef de service

S02

5678

Alami

Secrtaire

S01

28

Bases de donnes relationnelles

Contrainte rfrentielle

1.

2.

58

Contrainte rfrentielle : Contrainte dintgrit portant sur une


relation R1, consistant imposer que la valeur dun groupe
dattributs apparaisse comme valeur de cl sur une autre
relation R2.
Le SGBD devra assurer lintgrit rfrentielle de la base de
donnes :
On ne peut pas crer denregistrements dans la table enfant
avec une valeur de la cl trangre qui nexiste pas dans la
table parent.
La suppression dun enregistrements de la table de rfrence
doit entraner soit la suppression des enregistrements de la
table enfant correspondant, soit le changement de la valeur de
la cl trangre la valeur nulle, soit tre interdit.

Contrainte rfrentielle
SERVICE
IdService
S01
S02
EMPLOYE
Matricule

59

B. EL HATIMI

NomService
Service comptabilit
Service achats
Nom

Fonction

S03 nexiste pas dans


SERVICE

Service

1234

Filali

Chef de service S03

5678

Alami

Secrtaire

S01

29

Bases de donnes relationnelles

Cl trangre compose

Une cl trangre est dite compose si la cl de la


table de rfrence est compose de deux attributs
au moins.
Dans ce cas la cl trangre doit aussi tre
compose du mme nombre dattributs.
La contrainte rfrentielle sapplique lensemble
des attributs composant la cl trangre.
Les attributs constituant la cl trangre doivent tre
de mme type que les attributs de la cl de
rfrence.

60

Cl trangre compose

Dans cet exemple nous avons deux relations


: PlaceVol qui reprsente les places dans un
vol et Rservation qui reprsente les
rservations faites.

PlaceVol (NVol, NSige, Compagnie,


HeureDpart) o NSige est le numro de sige
Rservation (NRservation, NomClient, Vol,
Sige)
(Vol, Sige) rfrence (Nvol, NSige)

61

B. EL HATIMI

30

Bases de donnes relationnelles

Cl trangre compose
NVol

NSige

Compagnie

HeureDpart

A451

24

RAM

15H30

A451

15

RAM

15H30

F266

24

Jet4You

16H00

NRservation

NomClient

Vol

Sige

1252

Muawiya

A451

24

1253

Yazid

F266

15

1254

Marwan

Y102

24

1255

Abd Al Malik

Y102

10

62

Cl trangre rflexive

Une relation peut avoir une


contrainte rfrentielle vers
elle-mme. On parlera
alors de cl trangre
rflexive.
Exemple : Le responsable
dun employ est lui-mme
un employ.

EMPLOYE
Matricule
Nom
Fonction
Responsable
Rf : Responsable

63

B. EL HATIMI

31

Bases de donnes relationnelles

Traitement des attributs multivalus


par cl trangre
Que faire dans le cas dun attribut multivalu ?
Exemple : Un tudiant reprsent par la relation
ETUDIANT (CNE, Nom, Adresse, Tlphone) peut avoir
plusieurs tlphones (GSM, domicile).
ETUDIANT
CNE
2226123

64

2125745
2125990

Nom
Amaoui
Ibrahimi
Bensedik

Adresse
Tlphone
Rabat 061333344
Agadir
Tanger

061232344
022113344, 065122345

Traitement des attributs multivalus


par cl trangre
Solution : On cre
une nouvelle
relation avec les
valeurs de
lattribut
multivalu et
ayant une cl
trangre
rfrenant la
table dorigine.

65

B. EL HATIMI

CNE
2226123

Nom
Amaoui

Adresse
Rabat

2125745
2125990

Ibrahimi
Bensedik

Agadir
Tanger

IdTel
Tlphone
1
061333344
2
061232344
3
022113344
4

065122345

tudiant
2226123
2125745
2125990
2125990

32

Bases de donnes relationnelles

Cas particulier : Relation faible


Une relation faible est une relation dont la cl
est compos dattributs de la relation et de
cls trangres. Elle est dite faible car sa cl
dpend dautres relations.
Exemple :

HOTEL (IdHotel, NomHotel, Adresse)


CHAMBRE (NChambre, Hotel, Capacit,
Description) avec Hotel cl trangre vers
HOTEL

66

Contraintes dintgrit
Les donnes dune BD ne sont pas
indpendantes mais obissent des rgles
appeles contraintes dintgrit et qui
assurent la cohrence de la BD.
Ces rgles doivent tre dclares
explicitement et associes au schma de la
base de donnes.

67

B. EL HATIMI

33

Bases de donnes relationnelles

Contraintes dintgrit
Dfinition : Une contrainte dintgrit est une
assertion vrifie par les donnes de la base de
donnes tout moment. Le but des contraintes est
dassurer la cohrence logique de la base de
donnes.
On distingue plusieurs catgories de contraintes :
Contraintes structurelles et comportementales
Contraintes intra-relations et inter-relations
Contraintes ensemblistes.

68

Contraintes dintgrit structurelles

1.

2.
3.
4.
5.

Une contrainte structurelle est une contrainte lie au modle


relationnel.
Contrainte de domaine : tout attribut doit possder une valeur qui
appartient un type. Les valeurs de lattribut sont restreints ce
domaine.
Contraintes dentit : Toute relation doit possder une cl primaire
et que tout attribut participant cette cl primaire soit non nul.
Contraintes dunicit : Deux tuples distincts ne peuvent avoir la
mme valeur pour la cl.
Contraintes rfrentielles : contraintes lies une cl trangre.
Contrainte de non nullit : Spcifie que la valeur dun attribut doit
tre renseigne.
Ce type de contrainte est implment lors de la cration du schma
de la BD puis gr par le SGBD automatiquement.

69

B. EL HATIMI

34

Bases de donnes relationnelles

Contraintes dintgrit comportementales


Toutes les contraintes autres que structurelles sont
appeles comportementales car elles sont lies au
domaine tudi (besoins du client).
Exemple : Dans une BD pour la gestion de ltat civil
(mariage, divorce, dcs) on peut avoir comme
contrainte que lge minimum pour tre mari est de
18 ans, quune personne de sexe masculin peut tre
marie au maximum quatre femmes
Ce type de contrainte peut ncessiter une
programmation spcifique pour tre pris en compte.

70

Contraintes intra-relations
Une contrainte intra-relation est une
contrainte qui met en jeu des donnes issues
dune seule relation.

71

B. EL HATIMI

35

Bases de donnes relationnelles

Contraintes intra-relations : Exemple


Soit la relation PERSONNE dans une BD sur
ltat civil :
PERSONNE
CIN
NomPrnom
Sexe
DateNaissance
DateMariage
DateDcs
Conjoint
Rf : Conjoint

72

Contraintes intra-relations : Exemple


1.
2.
3.

Deux conjoints doivent tre de sexe


diffrent.
La date de mariage doit tre suprieur la
date de naissance.
La date de dcs doit tre suprieur la
date de naissance et la date de mariage.
Ces rgles sont des contraintes dintgrit
intra-relation.

73

B. EL HATIMI

36

Bases de donnes relationnelles

Contraintes inter-relations
Une contrainte inter-relations est une
contrainte qui met en jeu des donnes issues
de deux relations (ou plus rarement de plus
que deux).
Exemple : Contrainte rfrentielle (cl
trangre).

74

Les contraintes ensemblistes


Les contraintes ensemblistes sont les
relations dinclusion, dexclusion, qui
peuvent exister entre les occurrences des
relations.
Le modle relationnel ne modlise pas les
contraintes ensemblistes, ces contraintes
devront tre traites par de la programmation
spcifique.
75

B. EL HATIMI

37

Bases de donnes relationnelles

Notion dhritage

1.
2.
3.

76

Le concept dhritage nexiste pas dans le modle


relationnel, cependant dans le monde rel les relations
dhritage sont trs frquentes.
Exemple : Articles dans un hypermarch.
ARTICLE (Code, Libelle, Rayon, Prix)
ARTICLE_VETEMENT (Code, Libelle, Rayon, Prix,
couleur, taille)
ARTICLE_PERISSABLE (Code, Libelle, Rayon, Prix,
DatePeremption, TemperatureMin, TemperatureMax)
Problme redondance dinformation
Le code, le
libelle, le rayon et le prix dun vtement est repris dans
les tables ARTICLE et ARTICLE_VETEMENT

Notion dhritage
Solution A : On garde la table sur-type compose
des attributs de tous les sous-types et disparition
des tables sous-types. Avec un tel principe les
proprits spcifiques chacun des sous-types ne
seront pas valorises pour certaines occurrences
de la relation sur-type.
Exemple : ARTICLE (Code, Libelle, Rayon, Prix,
couleur, taille, DatePeremption, TemperatureMin,
TemperatureMax)
77

B. EL HATIMI

38

Bases de donnes relationnelles

Notion dhritage
Solution B : Ajout des attributs de la table sur-type aux
tables sous-types et disparition de la table sur-type. Cette
solution entrane une redondance importante des
donnes du sur-type sil ny a pas dexclusion entre les
sous-types.
Exemple :
ARTICLE_VETEMENT (Code, Libelle, Rayon, Prix, couleur,
taille)
ARTICLE_PERISSABLE (Code, Libelle, Rayon, Prix,
DatePeremption, TemperatureMin, TemperatureMax)
ARTICLE_POISSON (Code, Libelle, Rayon, Prix, KiloUnite,
DatePeremption, TemperatureMin, TemperatureMax)

1.

2.

783.

Notion dhritage

1.
2.
3.

Solution C : On garde les tables sur-type et sous-types.


Dans chacune des relations sous-types, lidentifiant de
lentit sur-type est intgr. Il est la fois cl primaire de
la relation et cl trangre par rapport lentit sur-type.
On limine les autres attributs communs
Exemple :
ARTICLE (Code, Libelle, Rayon, Prix)
ARTICLE_VETEMENT (Code, couleur, taille)
ARTICLE_PERISSABLE (Code, DatePeremption,
TemperatureMin, TemperatureMax)

79

B. EL HATIMI

39

Bases de donnes relationnelles

Les Bases de Donnes


Relationnelles
Chapitre III
Construction du Schma Relationnel

80

Schma relationnel de la BD

1.
2.
3.
4.

81

B. EL HATIMI

5.

Le schma dune base de donnes se composent de


lensemble des schmas de ses relations, ainsi que
des diffrentes contraintes dintgrit qui leur sont
associs.
Le schma relationnel dune relation contient :
Nom de la relation.
Dfinition de la relation.
Nom des attributs avec leur domaine de valeurs.
Identifiant(s) avec prcision de la cl primaire.
ventuellement le(s) cl(s) trangre(s).

40

Bases de donnes relationnelles

Exemple Schma Relationnel Gestion des


accidents et des polices dassurance

82

Le schma relationnel suivant reprsente les accidents avec les vhicules


impliqus et leur police dassurance.
CLIENT (NumClient : Entier, Nom : Chane, Adresse : Chane)
ACCIDENT (NumAcc : Entier, DateAcc : Date, Montant : Rel)
VEHICULE (Matricule : Chane, Marque : Chane, Modle : Chane,
Anne, Puissance : Entier, Client : Entier) VEHICULE.Client rfrence
CLIENT.NumClient
POLICE (NumPolice : Entier, Type : Chane, Date : Date, Client : Entier,
Vhicule : Chane) POLICE. Client rfrence CLIENT.NumClient et
POLICE.Vhicule rfrence VEHICULE.Matricule
IMPLICATION ( Accident : Entier, Vhicule : Chane)
IMPLICATION.Accident rfrence ACCIDENT.NumAcc et
IMPLICATION.Vhicule rfrence VEHICULE.Matricule

CLIENT
NumClient
Nom
Adresse

VEHICULE
Matricule
Marque
Modle
Anne
Puissance
Client
Rf : Client

B. EL HATIMI

NumPol
Type
Date
Client
Vhicule
Rf : Client
Rf : Vhicule

IMPLICATION
Accident
Vhicule
Rf : Accident
Rf : Vhicule

83

POLICE

ACCIDENT
NumAcc
DateAcc
Montant

Reprsentation graphique du schma relationnel

41

Bases de donnes relationnelles

Dmarche de construction dune BD


Analyse du problme et des besoins
Conception de la BD
Mthodes de conception
formelle (MERISE )
Schma conceptuel
Choix du modle logique
Modle relationnel
Construction du schma logique
Schma relationnel
Choix du SGBD
SGBD Relationnel (Oracle, MySQL,
PostgreSQL )
Cration de la BD en utilisant un langage de
description de donnes
SQL
Exploitation de la BD
Mise jour des donnes,
requtes

84

Types de relation

1.

2.

Il existe deux types de relations :


Des relations reprsentant des objets du
monde rel pertinents et identifiables.
Des relations dassociation exprimant un
lien logique entre plusieurs autres relations.
Ex : la relation IMPLICATION exprime le fait
quun vhicule est impliqu dans un
accident.

85

B. EL HATIMI

42

Bases de donnes relationnelles

Comment construire une relation


Une relation reprsentant un objet est construite
partir des caractristiques de cet objet. Ces
caractristiques constituent alors les attributs de
la relation.
Exemple : la relation CLIENT (NumClient : Entier,
Nom : Chane, Adresse : Chane) reprsente les
clients de la compagnie dassurance.

86

Comment choisir la cl dune relation


Si lobjet reprsent par la relation dispose dun
identifiant naturel, le ou les attributs constituant cet
identifiant constitueront une cl ( condition quil nexiste
pas didentifiant compos dun nombre infrieur
dattributs).
Si lobjet possde plusieurs cls naturels, on choisit la
plus utilise comme cl primaire et les autres seront des
cls secondaires.
Il est prfrable dans le cas dune cl compose de
plusieurs attributs de la remplacer par une cl artificielle
compose dun seul attribut.

87

B. EL HATIMI

43

Bases de donnes relationnelles

Comment choisir la cl dune relation

88

NumAcc
2308
2408
1709

DateAcc
15/06/2008
17/06/2008
08/01/2009

Montant
1200,00
2500,00
3400,00

3409

11/02/2009

800,00

La condition dunicit est une condition ncessaire mais


non suffisante pour constituer une cl. Ainsi dans la table
ci-dessus, DateAcc ne peut pas tre considr comme
une cl car deux accidents peuvent avoir lieu la mme
date.

Quand crer une cl trangre


Une cl trangre exprime un lien logique entre deux
relations.
Aprs avoir cr les relations reprsentant les objets
manipuler par la base de donnes, on cherche les liens
logiques existant entre eux.
Exemple : Le fait qun vhicule appartient un client est
modlis par la cl trangre VEHICULE.Client qui
rfrence CLIENT.NumClient.

89

B. EL HATIMI

44

Bases de donnes relationnelles

Cas des tables dassociation


Exemple : Un vhicule est impliqu dans un ou
plusieurs accidents et un accident implique un ou
plusieurs vhicules.
Solution : On cre une nouvelle relation IMPLICATION
(Accident : Entier, Vhicule : Entier) compose de deux
cls trangres rfrenant VEHICULE et ACCIDENT.
Les cls trangres constituent la cl de
IMPLICATION.
IMPLICATION est dite table dassociation, car elle
reprsente un lien logique entre deux autres tables.

90

Les contraintes du schma

1.
2.
3.
4.
5.
6.

Le schma relationnel doit prciser les


contraintes ventuelles :
Contrainte de domaine,
Contraintes dentit,
Contraintes dunicit,
Contraintes rfrentielles,
Contrainte de non nullit,
Contraintes dintgrit comportementales.

91

B. EL HATIMI

45

Bases de donnes relationnelles

Lapproche par dcomposition


Lapproche par dcomposition pour la construction dun schma
relationnel part dune relation compose de tous les attributs,
appele relation universelle, et la dcompose en sous-relations
de manire aboutir des relations lmentaires.
Exemple de relation universelle : ETUDIANT (CNE, CNC, CIN,
NomEtudiant, DateNaissance, Adresse, Classe, Filire, Anne,
Matire, Coefficient, Note, Enseignant, NomEnseignant,
Dpartement)
Problme
Redondance dinformations. Un tudiant est rpt
autant de fois quil a de matires.
La dcomposition doit se faire sans perte dinformations.

92

TD1 : Socit InfoPower


Gestion des commandes
NCommande : C112/05
Date : 14/09/05
Nom Client : Compagnie Industrielle du Gharb
Adresse : 20 Avenue Med V, KENITRA
Nom Reprsentant : ZITOUNI Hassan

TD 1

REF
IN143
IN213

DESIGN
QTE
PC DELL PIV
15
IMP Laser HP A4 5

NFacture : 88/05
Date : 23/11/05
NCommande : C112/05
Nom Client : Compagnie Industrielle du Gharb
Adresse : 20 Avenue Med V, KENITRA
Nom Reprsentant : ZITOUNI Hassan
REF
IN143
IN213

93

B. EL HATIMI

DESIGN
QTE
PC DELL PIV
10
IMP Laser HP A4 5

PU
8000
2000

MONTANT
80000
10000

TOTAL : 90000

46

Bases de donnes relationnelles

CLIENT (NomClient : Chaine, NomRep : Chaine,


[Adresse] : Chaine)
COMMANDE (CodeCom : Chaine, DateCom :
Date, Client : Chaine)
FACTURE ( CodeFact : Chaine, DateFact : date,
Commande : Chaine)
PRODUIT (Ref : Chaine, Design : Chaine, PU :
Rel)
Design est une cl secondaire
LIGNE_COM (Produit : Chaine, Commande :
Chaine, QteCom : Entier)
LIGNE_FACT (Produit : Chaine, Facture : Chaine,
94 QteFact : Entier)

TD1 Schma relationnel


COMMANDE (NCommande : Chaine, DateCommande
: Date, Client : Entier)

COMMANDE.Client rfrence CLIENT.NClient

FACTURE (NFacture : Chaine, DateFacture : Date,


Commande : Chaine)

FACTURE.Commande rfrence COMMANDE.Ncommande


Rq : Il ne faut pas ajouter de cl trangre vers CLIENT car on
peut rcuprer cette rfrence partir de COMMANDE.

CLIENT (NClient : Entier, NomClient : Chaine, Adresse


: Chaine, Reprsentant : Chaine)

95

B. EL HATIMI

NClient est une cl artificielle

47

Bases de donnes relationnelles

TD1 Schma relationnel


ARTICLE (Ref : Chaine, Dsignation : Chaine, PU : Rel) o PU
est le prix unitaire de larticle
LIGNE_COM (Commande : Chaine, Article : Chaine, Qt : Entier)

LIGNE_COM.Commande rfrence COMMANDE.NCommande


LIGNE_COM.Article rfrence ARTICLE.Ref

LIGNE_FACT (Facture: Chaine, Article : Chaine, Qt : Entier)

LIGNE_FACT.Facture rfrence FACTURE.NFacture


LIGNE_FACT.Article rfrence ARTICLE.Ref

LIGNE_COM et LIGNE_FACT sont des tables dassociation


Les informations calculables (Montant et Total) ne doivent pas tre
reprsentes.

96

Les Bases de Donnes


Relationnelles
Chapitre IV
Algbre relationnelle

97

B. EL HATIMI

48

Bases de donnes relationnelles

Introduction
Lalgbre relationnelle a t dfinie par
CODD (1970) comme un ensemble
doprations formelles agissant sur des
relations et produisant dautres relations.
Lalgbre relationnelle est un langage de
manipulation de donnes (LMD) algbrique
la base des LMD prdicatifs (e.g. SQL).

98

Dfinition
LMD algbrique : exprime une requte
comme un enchanement doprations
conduisant au rsultat (e.g. Algbre
relationnelle).
LMD prdicatif : spcifie par des prdicats
les proprits du rsultat (e.g. SQL). Un
prdicat est une proposition susceptible de
devenir vraie ou fausse selon les valeurs
attribues aux variables quelle contient.
99

B. EL HATIMI

49

Bases de donnes relationnelles

Dfinition
Exemple : USINE (NU, NomU, Ville)
Slectionner les usines qui se trouvent
Casablanca ?
LMD algbrique : Algbre relationnelle
[Ville = Casablanca'] USINE
LMD prdicatif : SQL
select * from USINE where ville = Casablanca'

10
0

Intrt de lalgbre relationnelle


L'intrt de l'algbre relationnelle est multiple:

l'algbre a identifi les oprateurs fondamentaux


pour la manipulation d'une base de donnes
relationnelle;
ces oprateurs ont dfini les principales fonctions
optimiser dans les SGBD relationnels;
l'algbre a donn naissance aux LMD prdicatifs
dont le langage SQL.

10
1

B. EL HATIMI

50

Bases de donnes relationnelles

Les oprations algbriques


Oprations ensemblistes :
Union
Intersection
Diffrence
Produit cartsien

10
2

Les oprations algbriques


Oprations spcifiques :
Projection
Slection ou Restriction
Jointure
Renommage
Division
10
3

B. EL HATIMI

51

Bases de donnes relationnelles

Union
Union : opration binaire qui partir de
deux relations R et S ayant le mme
schma (Mme attributs : nom et domaine
de valeurs), cre une relation U de mme
schma et de population gale lunion
des tuples de R et S (en liminant les
doublons).
On notera U =
10
4

Intersection
Intersection : opration binaire qui partir de
deux relations R et S ayant le mme
schma, cre une relation I de mme
schma et de population gale
lintersection des tuples de R et S. Les tuples
retenus sont ceux ayant la mme valeur pour
tous les attributs.
On notera I =
10
5

B. EL HATIMI

52

Bases de donnes relationnelles

Diffrence
Diffrence : opration binaire qui partir de
deux relations R et S ayant le mme
schma, cre une relation D de mme
schma et ayant comme tuples ceux
appartenant R et nappartenant pas S.
On notera D = R S.
Remarque : R S S R
10
6

Projection

10
7

B. EL HATIMI

Projection : Opration unaire qui partir


dune relation R cre une relation R en
enlevant la relation initiale tous les attributs
non mentionns en oprandes tout en
liminant les doublons ventuels.
On notera [A1,An] R
A partir dune relation R on peut construire
par projection, autant de relations quil y a de
compositions possibles de ses attributs.

53

Bases de donnes relationnelles

Projection
Projection : Exemple : Soit la relation
ETUDIANT (CNE, Nom, Prnom, DateNaiss,
Filire)
CNE

10
8

Nom

Prnom

DateNaiss

Filire

2214

Himmi

Ahmed

11/02/1984

GI

2218

Karimi

Lamiaa

06/05/1983

GI

2158

Alaoui

Imane

21/12/1984

SIG

9908

Ikama

Nabil

10/08/1981

SIG

Projection
Projection : Exemple :
[CNE,Nom,Prnom] ETUDIANT

10
9

B. EL HATIMI

CNE

Nom

Prnom

2214

Himmi

Ahmed

2218

Karimi

Lamiaa

2158

Alaoui

Imane

9908

Ikama

Nabil

54

Bases de donnes relationnelles

Projection
Remarque importante :
Dans le cas o aucune cl napparat dans
les oprandes de la projection, une cl
primaire arbitraire est attribue au rsultat :
ce sera la composition de tous les attributs
restant. Ceci permettra dliminer les
ventuels doublons.
11
0

Slection (ou Restriction)


Slection : Opration unaire qui partir
dune relation R cre une relation R de
mme schma mais ne comportant que
les tuples vrifiant la condition prcise
en argument (prdicat de slection).
On notera [prdicat] R
11
1

B. EL HATIMI

55

Bases de donnes relationnelles

Slection
Les conditions (prdicat) possibles sont de la
forme :
<Attribut> <Oprateur> <Valeur>
Les oprateurs sont les oprateurs de
comparaison {=, <, , >, , }.
On peut combiner plusieurs prdicats avec
les oprateurs logiques {ET, OU}
11
2

Slection
Slection : Exemple :
[Filire = SIG] ETUDIANT
CNE

Nom

Prnom

DateNaiss

Filire

2158

Alaoui

Imane

21/12/1984

SIG

9908

Ikama

Nabil

10/08/1981

SIG

11
3

B. EL HATIMI

56

Bases de donnes relationnelles

Expressions algbriques
On peut combiner entre eux les
oprateurs algbriques.
Pour rpondre la question quels sont les
noms et les prnoms des tudiants de la
filire SIG, on crira:
[Nom,Prnom] [Filire = SIG] ETUDIANT
11
4

Expressions algbriques
SIG = [Nom,Prnom] [Filire =
SIG] ETUDIANT
SIG
Nom

Prnom

Alaoui

Imane

Ikama

Nabil

11
5

B. EL HATIMI

57

Bases de donnes relationnelles

Expressions algbriques
On pourra aussi crire :
R = [Filire = SIG] ETUDIANT
SIG = [Nom,Prnom] R

11
6

Exemple
Soit la relation :

PERSONNE ( nom , prnom , jour-nais ,


mois-nais , an-nais , sexe)
Avec sexe appartient { M, F }

crire lexpression algbrique donnant


la liste des noms et prnoms des
hommes ns avant 1975.
11
7

B. EL HATIMI

58

Bases de donnes relationnelles

Exemple
PERSONNE ( nom , prnom , jour-nais ,
mois-nais , an-nais , sexe)
H = [Nom,Prnom] [sexe = M ET annais < 1975] PERSONNE

11
8

Produit Cartsien

11
9

B. EL HATIMI

Produit Cartsien : Soient deux relations, R (A1, A2, ,


An) et T (B1, B2, , Bp), n'ayant pas d'attribut de mme
nom, alors le produit de R par T, cre une relation de
schma P (A1, A2, , An, B1, B2, , Bp) et de population
toutes les concatnations possibles de tuples de R et de T.
On notera P = R x T
Lopration de produit cartsien est la mme opration que
celle du produit cartsien des domaines.
Remarque : On peut prendre comme cl primaire la
composition des attributs des cls primaires de R et de S.

59

Bases de donnes relationnelles

Exemple de produit cartsien


Deux relations PRODUIT et COULEUR
CodeProduit

Libell

Prix

P1

Chemise

220,00

P2

Pantalon

450,00

P3

Veste

500,00

P4

Polo

280,00

CodeCouleur

Couleur

C1

Noir

C2

Bleu

12
0

Exemple de produit cartsien


R = PRODUIT x COULEUR

12
1

B. EL HATIMI

CodeProduit

Libell

Prix

CodeCouleur

Couleur

P1

Chemise

220,00

C1

Noir

P1

Chemise

220,00

C2

Bleu

P2

Pantalon

450,00

C1

Noir

P2

Pantalon

450,00

C2

Bleu

P3

Veste

500,00

C1

Noir

P3

Veste

500,00

C2

Bleu

P4

Polo

280,00

C1

Noir

P4

Polo

280,00

C2

Bleu

60

Bases de donnes relationnelles

Renommage
Renommage : Oprateur unaire qui permet de
renommer les attributs dune relation. Cet
oprateur est utile avant les jointures s'il y a un
problme d'homonymie ou de synonymie, ou
avant les oprations ensemblistes (union,
diffrence, intersection) qui requirent que les
attributs correspondants aient le mme nom.
On notera :
12
[nom_attribut1 : nouveau_nom_attribut1, ] R
2

Jointure

12
3

B. EL HATIMI

Jointure : Opration binaire qui partir de deux


relations R1 et R2, cre la relation R3 dont les
attributs sont lunion des attributs de R1 et R2, et
dont les tuples sont la concatnation dun tuple de R1
et dun tuple de R2 vrifiant un prdicat ou critre de
jointure.
On notera R3 = R1 *[prdicat] R2
Le prdicat de jointure a la mme forme que le
prdicat de slection avec en plus des conditions
lmentaires qui comparent des attributs de R1 et
R2.

61

Bases de donnes relationnelles

Thta - Jointure

12
4

Soient les relations :


PRODUIT (NPrd, NomProd, PrixProd, QuantitMinimal)
COMMANDE (NCom, NomClient, ValeurCom)
La jointure R = PRODUIT * [ValeurCom >
QuantitMinimal] COMMANDE est ralise en faisant le
produit cartsien PRODUIT x COMMANDE puis en
appliquant une slection sur le rsultat partir du
prdicat de jointure.
On parle dans ce cas de Thta-jointure.
Remarque : Les attributs pris en compte dans un
prdicat doivent avoir un domaine de valeurs
compatibles.

Equi-Jointure
Thta-jointure particulire o loprateur
dans le prdicat est une galit. Pour les
autres cas on parle de inqui-jointure.
Remarque : Dans le cas de lqui-jointure,
les deux attributs gaux apparaissent chacun
dans le rsultat
duplication dune mme
valeur dans chaque tuple. Pour liminer cette
redondance on utilise la jointure naturelle.
12
5

B. EL HATIMI

62

Bases de donnes relationnelles

Jointure naturelle
Jointure naturelle : tant donn deux relations R(X,
Y) et S(Y, Z), o X, Y, Z symbolisent soit un
attribut, soit un ensemble d'attributs, et o Y n'est
pas vide, la jointure (naturelle) de R et S, note : R
* S cre une nouvelle relation temporaire, de
schma (X, Y, Z).
La population de R * S est l'ensemble des tuples
{x, y, z} crs par composition d'un tuple {x, y} de
R et d'un tuple {y, z} de S, tels que les deux tuples
12 ont la mme valeur pour Y.
6

Jointure naturelle
Exemple :
Soit le schma relationnelle :
ETUDIANT (CIN, CNE, Filire, Moyenne)
PERSONNE (CIN, Nom, Prnom,
DateNaiss, Adresse)
J = ETUDIANT * PERSONNE
J (CIN, CNE, Filire, Moyenne, Nom,
12
Prnom, DateNaiss, Adresse)
7

B. EL HATIMI

63

Bases de donnes relationnelles

Jointure naturelle
Exemple :
Pour rpondre la question donner le
nom, le prnom et ladresse de tous les
tudiants on crira lexpression
algbrique :
[Nom, Prnom, Adresse] (
ETUDIANT * PERSONNE )
12
8

Exemple
Soit le schma relationnel suivant :
PERS (CIN, Nom, Adresse)
ETUDIANT (CIN, CNE, Filire) CIN cl
trangre
OBTENU (CNE, NomCours, Note)
crire lexpression donnant le nom des
tudiants ayant valid le cours
12
Algorithmique ?
9

B. EL HATIMI

64

Bases de donnes relationnelles

Exemple
Soit le schma relationnel suivant :
PERS (CIN, Nom, Adresse)
ETUDIANT (CIN, CNE, Filire)
OBTENU (CNE, NomCours, Note)

[Nom] ( PERS * ETUDIANT * [NomCours


= Algorithmique] OBTENU )
13
0

Jointure naturelle
Remarque :
En notant A * B, la jointure naturelle se fait
sur lensemble des attributs communs (sil y
en a).
On peut spcifier les attributs en question en
notant : A * [X] B o X est un sous-ensemble
des attributs communs.
13
1

B. EL HATIMI

65

Bases de donnes relationnelles

Division

13
2

Division : Soient deux relations R(A,B) et


S(B) o A et B sont des ensembles
dattributs. La division de R par S suivant B
est une relation D ayant comme attribut(s)
A et contenant toutes les valeurs de A
dans R qui sont associes toutes les
valeurs de S.
On notera R / S

Division
Division : Exemple :
R

13
3

B. EL HATIMI

R/S

66

Bases de donnes relationnelles

Division - Exemple
ETUDIANT (CNE, Nom, Adresse, Filire)
OBTENU (CNE, NomCours, Note)
OBTENU.CNE rfrence ETUDIANT.CNE
PREREQUIS (NomCours, NomPrrequis)
Quels sont les tudiants (donner leur CNE) qui
peuvent sinscrire au module JAVA (cest--dire qui
ont valid les pr-requis de ce cours) ?

13
4

Division - Exemple
CNE

Nom

Adresse

AL ABBASSI Abu Al
Abbas

Rue de Bagdad,
Casablanca

1GI

21502150

AL FATIMI Ubayd
Allah

Rue de Mehdia,
Casablanca

1GI

20402040

AL AMAWI Muawiya

Rue de Damas,
Casablanca

1SIG

NomCours

13
5

B. EL HATIMI

Filire

22332233

NomPrrequis

JAVA

C++

JAVA

Algorithmique

Dveloppement Web

Algorithmique

67

Bases de donnes relationnelles

Division - Exemple
CNE

NomCours

Note

22332233

Dveloppement Web

13,50

22332233

Algorithmique

12,00

22332233

Rseaux

11,50

22332233

C++

15,50

21502150

Rseaux

12,00

21502150

Dveloppement Web

12,00

20402040

Algorithmique

14,00

20402040

Godsie

16,50

13
6

Division - Exemple
Nous cherchons les pr-requis du cours JAVA :
R = [NomPrrequis] [NomCours = JAVA]
PREREQUIS
Pour pouvoir faire la division on renomme la colonne
NomPrrequis en NomCours :
[ NomPrrequis : NomCours ] R

13
7

B. EL HATIMI

68

Bases de donnes relationnelles

Division - Exemple
Les lves pouvant sinscrire dans JAVA sont :
S = [CNE, NomCours] OBTENU / R
Un seul lve vrifie cette condition.
CNE
22332233

13
8

Les Bases de Donnes


Relationnelles
Chapitre V
Thorie de la normalisation

13
9

B. EL HATIMI

69

Bases de donnes relationnelles

Relation universelle
On appelle relation universelle toute relation
unique compose de lunion de tous les
attributs des relations constituant la base de
donnes.
Exemple : Soit la relation universelle
suivante : ETUDIANT (CNE, Nom, Adresse,
CodeModule, NomModule, Note)
14
0

Redondance de donnes
Redondance de donnes
CNE

Nom

Adresse

Risques dincohrences des donnes


CodeModule

1000 AAA Casablanca TPR


1130 BBB Agadir

TPR

1000 AAA Casablanca RES1


..

..

..

14
1409 CCC Rabat
1

B. EL HATIMI

..
TPR

NomModule

Techniques de
programmation
Techniques de
programmation
Rseaux 1
..
Techniques de
programmation

Note

12,5
8,5
10,5
..
14

70

Bases de donnes relationnelles

Anomalies de mise jour

1.
2.
3.

La redondance des donnes entrane des


anomalies de mise jour qui sont de trois
types :
Anomalies dinsertion
Anomalies de suppression
Anomalies de modification
Toutes ces anomalies induisent une non
fiabilit de la base de donnes.

14
2

Anomalies dinsertion

1.

2.

Supposons quon veuille ajouter un nouveau module


Bases de donnes 1 .
Ce module ne pourra pas tre ajout tant que nous
navons pas dtudiants inscrits dans celui-ci.
Les informations sur le nouveau module
(CodeModule, NomModule) seront rptes autant de
fois quil y a dtudiants inscrits, donc autant de
risques derreurs lors de la saisie
Incohrence de
la base de donnes.

14
3

B. EL HATIMI

71

Bases de donnes relationnelles

Anomalies dinsertion
CNE

Nom

Adresse

CodeModule

NomModule

Note

1000

AAA

Casablanca

TPR

Techniques de
programmation

12,5

1130

BBB

Agadir

TPR

Techniques de
programmation

8,5

1000

AAA

Casablanca

RES1

Rseaux 1

10,5

1130

BBB

Agadir

BD1

Databases 1

16

1000

AAA

Casablanca

BD1

Bases de donnes 1 15

..

..

14
4 1409

CCC

..
Rabat

..
TPR

..
Techniques de
programmation

..
14

Anomalies de suppression
Supposons quon veuille supprimer les notes
concernant le module Rseaux 1 .
Pour cela il faudra supprimer tous les
enregistrements concernant ce module.
Aprs la suppression, nous aurons supprim
toutes les notes concernes mais aussi les
informations concernant le module
Rseaux 1 lui-mme
Perte
dinformations.
14
5

B. EL HATIMI

72

Bases de donnes relationnelles

Anomalies de modification
Supposons quon veuille modifier le nom du
module Rseaux 1 en Rseaux et
Tlcoms 1 .
Pour cela il faudra rpter la modification
autant de fois quil y a dlves inscrits dans
ce module. Donc, autant de risques derreur
de saisie entranant une incohrence de la
base.
14
6

Anomalies de modification
CNE

B. EL HATIMI

Nom

Adresse

CodeModule

NomModule

Note

1000

AAA

Casablanca

TPR

Techniques de
programmation

12,5

1130

BBB

Agadir

TPR

Techniques de
programmation

8,5

1000

AAA

Casablanca

RES1

Rseaux et
tlcoms 1

10,5

1130

BBB

Agadir

BD1

Bases de donnes 1 16

1000

AAA

Casablanca

BD1

Bases de donnes 1 15

14 ..
7 1409

..
CCC

..
Rabat

..
RES1

..
Rseaux Tlcoms

..
14

73

Bases de donnes relationnelles

Do viennent ces anomalies ?


Ces anomalies sont dues au fait que les attributs sont
lis entre eux. Ainsi, on ne peut pas avoir deux
enregistrements (, RES1, Rseaux et tlcoms 1,
) et (, RES1, Rseaux Tlcoms, ), car
NomModule dpend de CodeModule.
On dit quil y a une dpendance fonctionnelle de
CodeModule vers NomModule.
Les dpendances fonctionnelles entre attributs dune
relation sont lorigine des anomalies de mise jour.

14
8

Dpendances fonctionnelles entre


attributs dune relation
Soient la relation R (A1,A2,An).
On dit quil y a une dpendance
fonctionnelle (DF) de Ai vers Aj et on crit
Ai
Aj SSI quelques soient deux tuples r1
et r2 de R Si ai1 = ai2 alors aj1 = aj2.
Ceci est une dpendance fonctionnelle intrarelation.
14
9

B. EL HATIMI

74

Bases de donnes relationnelles

Dpendances fonctionnelles entre


attributs dune relation
Soit la relation (CNE, Nom, Fil, NomFil)
Nous avons la DF : Fil
NomFil

15
0

CNE

Nom

Fil

NomFil

22201

XXX

GI

Gnie Info.

21996

AAA

GI

Gnie Info.

22203

BBB

SIG

Sc. Inf. Go.

21998

YYY

SIG

Sc. Inf. Go.

22204

CCC

SIG

Sc. Inf. Go.

Question
Comment construire une base de donnes
sans anomalies de mise jour ?

15
1

B. EL HATIMI

75

Bases de donnes relationnelles

Solution

1.
2.
3.

On dcompose la relation ETUDIANT (CNE, Nom,


Adresse, CodeModule, NomModule, Note) en trois
relations:
ETUDIANT_BIS (CNE, Nom, Adresse)
MODULE (CodeModule, NomModule)
NOTE (CNE, CodeModule, Note)
On parlera de NORMALISATION de la relation
ETUDIANT par dcomposition de celle-ci.

15
2

Normalisation dun schma relationnel

15
3

B. EL HATIMI

Dfinition : La normalisation dune relation


est le processus de transformation pour
liminer les anomalies dues aux DFs intrarelation.
La qualit dune relation est mesure par son
degr de normalisation, on parlera de
premire forme normale, deuxime forme
normale dans lordre croissant de
normalisation.

76

Bases de donnes relationnelles

Normalisation dun schma relationnel


Dfinition : Un schma relationnel est
normalis pour une certaine forme
normale si toutes les relations qui le
composent le sont toutes .

15
4

Normalisation dun schma relationnel


Processus de normalisation : Normaliser un
schma relationnel cest le transformer en un
schma normalis quivalent, cd sans pertes
de donnes ni (si possible) de DFs.

Comment ? Par dcomposition.


15
5

B. EL HATIMI

77

Bases de donnes relationnelles

Dcomposition

1.
2.

ETUDIANT (CNE, Nom, Adresse,


CodeModule, NomModule, Note)
La dcomposition suivante nest pas
correcte :
ETUDIANT_BIS (CNE, Nom, Adresse)
MODULE (CodeModule, NomModule, Note)
On ne peut pas dcomposer nimporte
comment.

15
6

Les dpendances fonctionnelles (DF)


Dfinition formelle :
Soient X et Y deux sous-ensembles dattributs
dune relation R.
On a X
Y si et seulement si : Quelques
soient E1 et E2 deux tuples de R alors : Si
[X](E1) = [X](E2) Alors [Y](E1) = [Y](E2)

15
7

B. EL HATIMI

78

Bases de donnes relationnelles

Les dpendances fonctionnelles (DF)


Une donne 2 est en dpendance fonctionnelle d'une
donne 1 quand la connaissance d'une valeur de la
donne 1 permet de dterminer la connaissance d'au
maximum une et une seule valeur de la donne 2. La
donne 1 est appele la source de la DF et la donne 2
est appele le but.
On notera SOURCE
BUT
La question se poser pour retrouver une DF est :
"Connaissant une valeur de la source, peut-on
connatre une valeur unique du but ?".

15
8

Les dpendances fonctionnelles (DF)

1.

2.

15
9

B. EL HATIMI

Deux informations ne sont pas en dpendance


fonctionnelle si la connaissance d'une valeur de la
premire :
ne permet de connatre aucune des valeurs de la
seconde ( aucune relation entre les deux ).
Exemple : la connaissance d'une date de naissance
ne permet pas de connatre une adresse.
dtermine la connaissance de plusieurs valeurs de
la seconde : la connaissance d'un numro de
facture permet de connatre plusieurs rfrences
d'articles.

79

Bases de donnes relationnelles

Dpendance fonctionnelle source


compose

16
0

Il peut arriver que ce soit la combinaison de


plusieurs attributs ( en source ) qui permettent de
connatre une valeur unique en but.
Exemple : un numro de facture + un code
produit nous donne la quantit facture.
quantit
(numro facture, code produit)
On parlera de dpendance fonctionnelle
source compose ou partie gauche compose
(DFPGC).

Do viennent les DFs ???


Important !!!

16
1

B. EL HATIMI

Une DF doit tre vraie dans tous les cas. Aussi


la DF entre attributs dune relation doit tre
vrifie pour la relation en intention et non en
extension (qui est une image linstant t du
schma de la relation).
Les DFs sont dceles lors de la conception de
la base de donnes ( partir du monde rel).

80

Bases de donnes relationnelles

Dpendances fonctionnelles et Cls


Proprit :
Soit la relation R et X une cl de la relation.
Quelque soit le sous-ensemble dattributs Y de
R, nous avons :

16
2

DF lmentaire
Une DF, X
A, est dite lmentaire si A est une
information unique, et si X est un ensemble minimum
dinformations, cest dire que X est soit une
information unique soit quil nexiste pas de sousensemble X de X tel que X
A.
Rfrence article
Nom article : lmentaire
(Numro facture, Rfrence article )
Quantit
facture : lmentaire
(Numro facture, Rfrence article )
Nom article :
Non lmentaire car nous avons la DF Rfrence article
Nom article

16
3

B. EL HATIMI

81

Bases de donnes relationnelles

Les trois axiomes dArmstrong (1974)

1.
2.
3.

Soient X, Y et Z des sous-ensembles


dattributs dune relation R :
Rflexivit : Si Y inclus dans X Alors X Y
Augmentation : Si X
Y Alors XZ
YZ
Transitivit : Si X Y et Y Z Alors X Z

16
4

Les trois axiomes dArmstrong (1974)

1.
2.
3.

16
5

B. EL HATIMI

A partir des trois axiomes dArmstrong on


peut dduire les proprits suivantes :
Soient X, Y, Z et W des sous-ensembles
dattributs dune relation R :
Union : Si X
Y et X
Z Alors X
YZ
Pseudo-transitivit : Si X
Y et WY
Z
Alors WX
Z
Dcomposition : Si X
Y et Z inclus dans Y
Alors X
Z

82

Bases de donnes relationnelles

Dpendance fonctionnelle directe


Une DF Donne 1
Donne 2 est dite directe s'il
n'existe pas de Donne 3 qui engendrerait une
dpendance fonctionnelle transitive de telle sorte
que l'on pourrait crire :

Donne 1

Donne 3

Donne 2

Exemple :

16
6

Numro facture
Numro reprsentant
Numro reprsentant
Nom reprsentant
Numro facture
Nom reprsentant cette DF nest pas
directe

Dpendance fonctionnelle directe


Pour dterminer si une DF est directe, il suffit
de la supprimer puis de voir si on peut la
retrouver partir des DFs restantes par
transitivit. SI on ne peut pas la retrouver
alors cest une DF directe.

16
7

B. EL HATIMI

83

Bases de donnes relationnelles

Dpendance fonctionnelle lmentaire


et directe ( DFED)
Soit la relation Livraison (NP, NF, Date, Qt)

NP : Numro du produit
NF : Numro du fournisseur
Date : Date de livraison
Qt : Quantit livre

(NP, NF, date) Qt est une DF lmentaire


et directe.
16
8

Graphe des DFs dune relation


Soit la relation suivante FOURNISSEUR (NF,
NomProduit, Adr, Tl, Prix)

NF : Numro du fournisseur
Adr son adresse et Tl son tlphone

Nous avons les dpendances fonctionnelles


suivantes :

16
9

B. EL HATIMI

NF
Adr et NF
Tl (quon peut noter NF
Tl)
NomProduit + NF
Prix

Adr,

84

Bases de donnes relationnelles

Graphe des DFs dune relation

17
0

Graphe minimum des DFs


Dfinition : Soit F lensemble des DFs dune relation
R. On appelle G graphe minimum des DFs de R, tout
ensemble de DFs lmentaires directes, quivalent
F.
Cest dire que toute DF de F peut tre dduite des
DFs de G.

Le graphe minimum des DFs nest pas


unique!!!
17
1

B. EL HATIMI

85

Bases de donnes relationnelles

Graphe minimum des DFs


Exemple :
PRODUIT (NP, NomP, Poids, Couleur)
NP est la cl principale et NomP est une cl
secondaire.

17
2

Graphe minimum des DFs

17
3

B. EL HATIMI

NP

Poids

NomP

Couleur

Graphe non minimum puisque les DFs NP


Poids et NP
Couleur ne sont pas directes.

86

Bases de donnes relationnelles

Graphe minimum des DFs

17
4

NP

Poids

NomP

Couleur

Solution 1 : Graphe minimum car toutes les DFs


sont lmentaires et directes.

Graphe minimum des DFs

17
5

B. EL HATIMI

NP

Poids

NomP

Couleur

Solution 2 : Graphe minimum car toutes les DFs


sont lmentaires et directes.

87

Bases de donnes relationnelles

Recherche des cls sur le graphe


des DFs
Mthode :
Etablir le graphe (minimum ou pas) des DFs,
Chercher sur le graphe un ensemble minimum
dattributs X, tel que tous les chemins partant
de X et suivant les DFs atteignent tous les
autres attributs.

17
6

Graphe minimum des DFs


Exercice : tablir le graphe minimum des DFs
suivantes et donner la cl de la relation R :

R (A, B, C, D, E, F, G)
(A,B)
C, D, E, F
B
C
D
E, F
G
A

17
7

B. EL HATIMI

88

Bases de donnes relationnelles

Anomalies dues la non-normalisation


Soit la relation R
(NomProduit, NF, Adr, Tel,
Prix)

17
8

Redondance : s'il existe 100 produits pour un


fournisseur on va rpter 100 fois l'adresse et le
tlphone du fournisseur.
Anomalies dinsertion : quand on veut
rajouter un produit, il faut rentrer nouveau
l'adresse et le tlphone du fournisseur.
Anomalies de suppression : si on supprime
(momentanment) la liste des produits d'un
fournisseur, alors on supprime aussi le
fournisseur.
Anomalies de modification : si un
fournisseur change d'adresse ou de tlphone, il
faut faire cette mise jour sur tous les 100 tuples
!

Anomalies dues la non-normalisation


Soit la relation R
(NomProduit, NF, Adr, Tel,
Prix)

17
9

B. EL HATIMI

Solution : Dcomposer la relation R en un schma


quivalent :
R1 (NF, Adr, Tel)
R2 (NomProduit, NF, Prix)

89

Bases de donnes relationnelles

Dcomposition dune relation


Dfinition :
La dcomposition de la relation R (A1, A2, An) consiste en son
remplacement par une collection de relations R1, , Rp obtenues
par des projections sur des sous-ensembles dattributs dont lunion
contient tous les attributs de R. La relation R est retrouve par
jointure naturelle de R1, , Rp.
Il y a donc autant de dcompositions possibles que densemble de
sous-ensembles dattributs.
Problme :
La dcomposition doit donner un schma quivalent
Sans perte
dinformation et au possible sans perte des DFs.
Comment faire ???

18
0

Dcomposition dune relation sans


perte dinformation
Dfinition : Une dcomposition dune relation
R(X,Y,Z) en deux relations :
R1 = [X,Y] R et R2 = [X,Z] R
est dite sans perte dinformation (lossless join
decomposition) si :
R = R1 * R2.
18
1

B. EL HATIMI

90

Bases de donnes relationnelles

Dcomposition dune relation avec


perte dinformation

1.
2.

Soit EMP_DEPT (Matr, Dept, NomE, Salaire, NomD)


Matr
NomE
Dept
NomD
Dcomposons EMP_DEPT en :
[Matr, NomE, Salaire] EMP_DEPT = EMP_DEPT1
(Matr, NomE, Salaire)
[Dept, Salaire, NomD] EMP_DEPT = EMP_DEPT2
(Dept, Salaire, NomD)

EMP_DEPT1 * EMP_DEPT2 EMP_DEPT

18
2

Dcomposition dune relation sans


perte dinformation

1.
2.

La bonne dcomposition de EMP_DEPT en


un schma quivalent est :
[Matr, Dept, NomE, Salaire] EMP_DEPT =
EMP (Matr, Dept, NomE, Salaire)
[Dept, NomD] EMP_DEPT DEPT (Dept,
NomD)

EMP * DEPT = EMP_DEPT


18
3

B. EL HATIMI

91

Bases de donnes relationnelles

Thorme de Heath
Thorme : Toute relation R(X,Y,Z) est
dcomposable sans perte dinformation en
R1 = [X,Y] R et R2 = [X,Z] R sil y a dans
R une DF de X vers Y (X Y).

18
4

Thorme de Heath

18
5

B. EL HATIMI

Dmonstration :
R1*R2 contient au moins tous les tuples de R, puisque
tout tuple xyz de R cre un tuple xy dans R1 et un
tuple xz dans R2, qui sont concatns par jointure
naturelle en xyz.
R1*R2 ne peut pas contenir de tuples en plus de ceux
de R. Ceci est dmontr par l'absurde.
Soit xyz un tuple de R1*R2, qui n'appartient pas R.
xyz provient de deux tuples de R: xyz' et xy'z. Etant
donn que xyz n'appartient pas R, on a: z'z et y'y,
ce qui est contraire la DF XY.

92

Bases de donnes relationnelles

Thorme de Heath

1.
2.

Appliquons le thorme de Heath


EMP_DEPT (Matr, Dept, NomE, Salaire,
NomD) avec les DFs suivantes : Dept
NomD et Matr
NomE, Salaire, Dept
On obtient la dcomposition suivante :
EMP (Matr, Dept, NomE, Salaire)
DEPT (Dept, NomD)

18
6

Les Formes Normales

1.
2.
3.
4.
5.
6.

Il en existe six et qui sont classes de la moins


normalise la plus normalise :
Premire forme normale (1FN)
Deuxime forme normale (2FN)
Troisime forme normale (3FN)
Forme normale de Boyce-Codd (FNBC)
Quatrime forme normale (4FN)
Cinquime forme normale (5FN)

18
7

B. EL HATIMI

93

Bases de donnes relationnelles

Premire Forme Normale 1FN


Dfinition : Une relation est en 1FN si tous
ses attributs sont atomiques (simples et
monovalus)
Pour la normalisation dune relation en 1FN
on applique la rgle de passage dun attribut
multivalu un attribut monovalu et dun
attribut complexe des attributs simples.
18
8

Deuxime Forme Normale 2FN


Dfinition : Une relation est en 2FN si elle
est en 1FN et si tout attribut nappartenant
aucune cl candidate ne dpend pas dune
partie de cl.
La 2FN limine les anomalies cres par les
DFs entre parties de cls et attribut non-cl.

18
9

B. EL HATIMI

94

Bases de donnes relationnelles

Deuxime Forme Normale 2FN


Proprit importante : Si les cls candidates
dune relation sont formes dun seul attribut,
alors la relation est en 2FN.
Autrement dit, il et ncessaire davoir une cl
candidate compose de plusieurs attributs
pour quune relation ne soit pas en 2FN.

19
0

Deuxime Forme Normale 2FN


Soit la relation FOURNISSEUR
(NF, NomProduit, Adr, Tl, Prix)
NF
Adr, Tl
NomProduit, NF
Prix
Cette relation nest pas en 2FN
puisque Adr et Tl dpendent de
NF qui est une partie de la cl
(NF, NomProduit)

19
1

B. EL HATIMI

95

Bases de donnes relationnelles

Mthode de normalisation en 2FN


1.
2.
3.
4.
5.

Vrifier que la relation est en 1FN,


Etablir son graphe minimum des dpendances,
Identifier les cls candidates,
Identifier les DFs entre les attributs non-cl et une
partie dune cl,
Pour chaque source de ces DFs, on cre une
relation ayant pour attributs la source et tous les
attributs en dpendance fonctionnelle directe de
cette source et ce par application du thorme de
Heath.

19
2

Mthode de normalisation en 2FN


Solution on applique le thorme de HEATH :
FOURNISSEUR (NF, Adr, Tl)
FP (NF, NomProduit, Prix)
Cette dcomposition est :
- sans perte d'information (NF est l'identifiant de la relation
Fournisseur)
- sans perte de dpendance fonctionnelle (les DF sont
soit dans l'une, soit dans l'autre des deux relations
dcomposes).

19
3

B. EL HATIMI

96

Bases de donnes relationnelles

Mthode de normalisation en 2FN


Exercice :

Soit la relation PRIME (Ntype-machine, nommachine, Ntechn, montant-prime, nom-techn)


avec les dpendances fonctionnelles suivantes:
Ntype-machine nom-machine
Ntechn nom-techn
(Ntype-machine, Ntechn) montant-prime
19
4

Mthode de normalisation en 2FN


Solution :
PRIME est en 1FN car nom-techn ne dpend que dune
partie de la cl Ntechn, de mme nom-machine ne
dpend que de Ntype-machine
On applique deux fois le thorme de HEATH et on
obtient le schma en 2FN suivant :
MACHINE (Ntype-machine, nom-machine)
TECHNICIEN (Ntechn, nom-techn)
PRIME_BIS (Ntype-machine, Ntechn, montant-prime)

19
5

B. EL HATIMI

97

Bases de donnes relationnelles

Troisime Forme Normale 3FN

19
6

Soit la relation CONTACT (Id, NomContact, Ville,


Pays)
Id
Ville
Pays
Cette relation est en 2FN (car lidentifiant est
compos dun seul attribut) mais nous avons une
anomalie de redondance de Pays pour chaque
contact.
La 2FN nest pas suffisante pour supprimer cette
redondance dues des DFs entre attributs ne faisant
pas partie dune cl : Ville
Pays.
Solution : Dcomposer en (Id, NomContact, Ville) et
(Ville, Pays)

Troisime Forme Normale 3FN


La 3FN permet dliminer les anomalies dues
aux DFs entre attributs non-cl.
Dfinition : Une relation R est en 3FN si elle
est en 1FN et que tout attribut qui nappartient
aucune cl candidate ne peut dpendre que
dune cl candidate entire.
Remarque : Une relation en 3FN est en 2FN
car une partie de cl nest pas une cl.
19
7

B. EL HATIMI

98

Bases de donnes relationnelles

Mthode de normalisation en 3FN


Remarque importante : Il est possible de
dcomposer une relation en 3FN sans perte
dinformation ni de DF. Cest la forme la plus
normalise qui possde cette proprit.
Algorithme de Bernstein (1976).

19
8

Mthode de normalisation en 3FN


1.
2.
3.
4.

5.

Soit une relation R. Vrifier que la relation est en 1FN,


tablir son graphe minimum des dpendances,
Identifier les cls candidates,
Crer pour chaque source de DF une relation
comprenant comme attributs la source et toutes les
cibles de la source en appliquant le thorme de
Heath.
Si aucune cl de R nest prsente dans au moins une
relation cre, ajouter une relation constitue des
attributs dune cl de R.

19
9

B. EL HATIMI

99

Bases de donnes relationnelles

Mthode de normalisation en 3FN


Exercice :
EMPLOYE ( NEmp, NLab, NProj, NomEmp,
NomProj, adresse)
(NEmp, NLab) NProj
NEmp NomEmp, adresse
NProj NomProj
20
0

Mthode de normalisation en 3FN

20
1

B. EL HATIMI

Solution :
EMPLOYE est en 1FN car elle nest pas en
2FN puisque NEmp NomEmp, adresse
En appliquant deux fois le thorme de
HEATH on obtient le schma quivalent
suivant qui est la 3FN
EMPLOYE2 (NEmp, NomEmp, adresse)
PROJET (NProj, NomProj)
ELP (NEmp, NLab, NProj)

100

Bases de donnes relationnelles

Forme Normale de Boyce Codd


Soit la relation CATALOGUE (NF, NomF, NomProduit, Prix) avec 2 cls
candidates : NF + NomProduit et NomF + NomProduit.

20
2

Cette relation est en 3FN mais il y a redondance entre NF et NomF,


ce qui gnre des problmes lors des mises jour. Si un fournisseur
change de nom, il faut mettre jour son nom dans tous les tuples
correspondants ses produits.

Forme Normale de Boyce Codd

20
3

B. EL HATIMI

Dfinition : Une relation est en forme normale


de Boyce-Codd si et seulement si elle est en
1FN et les seules dpendances fonctionnelles
lmentaires sont celles dans lesquelles une cl
entire dtermine un attribut.
Par rapport la 3FN on sassure quaucun
attribut faisant partie dune cl candidate ne
dpende pas dun attribut ne faisant pas partie
de la cl primaire.
Une relation en FN de Boyce Codd est en 3FN.

101

Bases de donnes relationnelles

Forme Normale de Boyce Codd


Soit la relation CATALOGUE (NF, NomF, NomProduit,
Prix) avec 2 cls candidates : NF + NomProduit et NomF
+ NomProduit.

20
4

CATALOGUE nest pas en FN de Boyce Codd parce


que l'attribut NF est source de DF (NF NomF) et
n'est pas un identifiant entier. Il en est de mme pour
NomF.
Solution dcomposer CATALOGUE en :
1. Fournisseur (NF , NomF) avec NF et NomF
identifiants
2. Catalogue (NF , NomProduit , Prix)

Forme Normale de Boyce Codd


Soit la relation :
PLACE (NEtud, Matire, Rang) qui reprsente le
rang obtenu par chaque tudiant pour chaque matire.
On suppose qu'il n'y a pas d'ex aequo. Il y a deux
identifiants : (NEtud + Matire) , (Matire + Rang).
Dans quelle FN est cette relation ?

20
5

B. EL HATIMI

102

Bases de donnes relationnelles

Forme Normale de Boyce Codd


La relation PLACE (NEtud, Matire, Rang) est en
3FN car tous les attributs appartiennent des
cls. Elle est aussi en FN de Boyce Codd puisque
toutes les sources de DFs sont des cls entires.

20
6

Forme Normale de Boyce Codd


Soit la relation ENSEIGNEMENT (NEtud,
Matire, Prof).
On suppose que chaque professeur enseigne
une seule matire, et que pour chaque matire,
chaque tudiant suit les cours d'un seul
professeur.

20
7

B. EL HATIMI

103

Bases de donnes relationnelles

Forme Normale de Boyce Codd


La relation ENSEIGNEMENT (NEtud, Matire, Prof) a
deux identifiants : (NEtud + Matire) et (NEtud +
Prof). Elle est en 3FN puisque tout attribut fait partie
d'un identifiant. Mais elle n'est pas en FN de Boyce
Codd puisque l'attribut Prof est source de DF et ne
constitue pas un identifiant entier.

20
8

Forme Normale de Boyce Codd

20
9

B. EL HATIMI

ENSEIGNEMENT (NEtud, Matire, Prof).


Appliquons le thorme de Heath pour la dcomposition
de cette relation. On obtient (Prof, Matire) et (NEtud,
Prof).
On a perdu la DF: (NEtud, Matire) Prof. Cette
dcomposition permet d'insrer le fait qu'un mme
tudiant suit deux cours portant sur la mme matire avec
deux professeurs diffrents, ce qu'interdisait la relation
Enseignement.
Il n'y a pas de solution idale dans ce cas. Pratiquement
on conserve la relation initiale et on rajoute une contrainte
d'intgrit spcifiant le fait qu'un professeur ne peut
enseigner qu'une seule matire.

104

Bases de donnes relationnelles

Forme Normale de Boyce Codd

21
0

Conclusion : Il nexiste pas dalgorithme


permettant de dcomposer une relation en un
schma quivalent normalis la forme
normale de Boyce-Codd sans perte ni
dinformations ni de DFs.
Par contre, il est possible de dcomposer
toute relation en forme normale de Boyce
Codd sans perte d'information en appliquant
itrativement le thorme de Heath.

Forme Normale de Boyce Codd

21
1

B. EL HATIMI

Mthode : Tant que dans une des relations obtenues


par dcomposition, R(X,Y,Z), il existe une DF XZ, on
dcompose R en [X,Y]R et [X,Z]R.
Cette mthode prsente plusieurs inconvnients :
Elle peut conduire trop dcomposer, notamment en
dcomposant une relation qui est dj en Boyce Codd.
Un schma trop dcompos complique l'emploi de la
base de donnes, car les requtes seront plus
coteuses (nombreuses jointures).
On peut perdre des DFs (Exemple ENSEIGNEMENT).
Les DFs perdues doivent alors tre ajoutes au
schma dcompos sous la forme de contraintes
d'intgrit.

105

Bases de donnes relationnelles

Dpendances multivalues
Soit la relation PRO_EMPL (Typrod, Nuprod,
Codemp)
Typrod est le type de produits. Chaque type
de produit englobe plusieurs produits
identifis par Nuprod. Un employ Codemp
gre un ou plusieurs types de produits (et
donc tous les produits qui en font partie).
La cl est compos de lensemble des
attributs.

21
2

Dpendances multivalues

21
3

B. EL HATIMI

Typrod

NuProd

Codemp

A
A
A
A
A

3
4
6
3
4

009
009
009
023
023

A
B
B

6
2
13

023
009
009

B
B

2
13

067
067

PRO_EMPL est en FNBC car


tous les attributs constituent la
cl et il ny a aucune DF. Malgr
cela il reste encore des
anomalies :
Pour ajouter un employ 031
charg du type de produit A, il
faudra crer autant de tuples quil
y a de produits dans le type A
(dans notre exemple 3).
La FNBC nest donc pas
suffisante pour supprimer toutes
les anomalies.

106

Bases de donnes relationnelles

Dpendances multivalues

21
4

Typrod

NuProd

Codemp

A
A
A
A

3
4
6
3

009
009
009
023

A
A
B

4
6
2

023
023
009

B
B
B

3
2
3

009
067
067

Ces anomalies sont dues au fait


que la connaissance du type de
produit dtermine un ensemble
de valeurs pour les produits, et
quen plus lensemble de valeurs
demploys et de produits sont
indpendants.
On parle de dpendance
multivalue et on note :
Typrod
Nuprod
(Req : Le Nuprod 3 appartient 2
types pour liminer la DF NuProd
Typrod)

Dpendances multivalues
Dfinition :
Soit la relation R (A1, A2, An), et X et Y
des sous-ensembles de A1, A2, An. On dit
que X multi-dtermine Y et on note X
Y
si, tant donnes des valeurs de X, il y a un
ensemble de valeurs de Y associes et cet
ensemble est indpendant des autres
attributs Z = R (X, Y) de la relation R.
21
5

B. EL HATIMI

107

Bases de donnes relationnelles

Dpendances multivalues
En analysant les anomalies dues aux
dpendances multivalues, CODD a dfini
les quatrime (4FN) et cinquime (5FN)
formes normales pour les liminer.

21
6

Dpendances multivalues nontriviales (DMNT)

21
7

B. EL HATIMI

Dfinition :
La DM X
Y de la relation R est une
DM non-triviale si et seulement si X nest pas
un sous-ensemble de Y et si X U Y R.
Exemple : dans la relation PRO_EMPL
(Typrod, Nuprod, Codemp), la DM Typrod
Nuprod est non triviale : cest une
DMNT.

108

Bases de donnes relationnelles

Quatrime forme normale (4FN)


Dfinition :
Une relation est en 4FN si et seulement si
elle est en FNBC et elle ne contient aucune
DM non-triviale (DMNT).

21
8

Quatrime forme normale (4FN)

21
9

B. EL HATIMI

Pour passer de la FNBC la 4FN, on dcompose la


relation initiale en crant une nouvelle relation
comportant la source et les buts de la DMNT. La source
reste dans la relation originelle et les buts en sont
retirs.
La dcomposition se fait sans pertes en appliquant le
thorme de HEATH.
Dans lexemple prcdent la relation PRO_EMPL
(Typrod, Nuprod, Codemp) est dcompose en :
R1 (Typrod, Nuprod) et R2 (Typrod, Codemp)
R1 et R2 sont en 4FN car ils ne contiennent que deux
attributs.

109

Bases de donnes relationnelles

Quatrime forme normale (4FN)


Typrod NuProd
A
3
A
4
A
6
B
B

2
3

Typrod Codemp
A
009
A
023
B
009
B

067

On peut maintenant ajouter lemploy 031 en charge du type

22 A sans redondances.
0

B. EL HATIMI

110

S-ar putea să vă placă și