Vous êtes sur la page 1sur 140

Cours de Bases de Donnes

1.
2.
3.
4.

Introduction aux BD et aux SGBD


Modle Entits - Relations
Modle Relationnel
Conception et intgrit du schma Relationnel

Bibliographie
Connolly T., Begg C.: Database systems, A practical approach to
design, Implementation and Management, Addison Wesley, 2005

Elmasri R., Navathe S.: Fundamentals of Database Systems,


Fourth Edition, Pearson, Addison Wesley, 2003
Garcia-Molina H, Ullman JD, Widom J: Database Systems the
Complete Book, Prentice Hall, 2002
Gardarin G.: Bases de donnes, Eyrolles, 2003
Miranda S.: Bases de donnes, Architectures, modles
relationnels et objets, SQL3 Dunod/01 Informatique , 2002
Ullmann J.D., Widom J.: A First Course in Database Systems,
Prentice Hall, 1997

1 Introduction aux BD et aux SGBD

1 Introduction aux BD et aux SGBD

Contenu

Motivation et Exemples
Dfinitions
Historique
Architecture

Supports en ligne
Rfrence principale
J. Ullman, CS 145 Slides Automn 2004
http://www-db.stanford.edu/~ullman/dscb/pslides/pslides.html

1 Introduction aux BD et aux SGBD

Partons d'un exemple


Sites de vente en ligne (e-commerce) gre
diffrentes informations : Article, prix, disponibilit,

1 Introduction aux BD et aux SGBD

Les trois dimensions d'une application

Stations de travail
Interface

Langages de programmation /
manipulation de donnes
Traitements

SGBD
Donnes

Bases de Donnes

1 Introduction aux BD et aux SGBD

Qu'est-ce une BD ? Et un SGBD ?


Base de Donnes (BD)
Dfinition "classique":
un ensemble de donnes structures et intercorrles,
enregistres avec le minimum de redondance et pouvant tre
traites par une ou plusieurs applications, de faon optimale.
La BD contient galement la description de ses donnes.
Aujourdhui : concept plus large (donnes semi - structures,
XML)

Systme de Gestion de Bases de Donnes (SGBD)


un ensemble de logiciels permettant aux utilisateurs de
dfinir, crer, maintenir, contrler et accder la BD

1 Introduction aux BD et aux SGBD

Depuis quand ?

Depuis les annes '60, avec :


les BD hirarchiques (ex : IMS, Information Management
Systems)
BD rseaux ou CODASYL (Committee on Data Systems and
Languages; ex : IDS, Integrated Data Store)

BD relationnelles (E.F. Codd, 1970)


BD objets (ex : o2, Versant, 1990)
BD hybrides objets-relationnel (ex : Oracle V8 en
1998)
BD natives XML (ex: Tamino de Software AG, 2000)

1 Introduction aux BD et aux SGBD

Contexte

Les Bases de Donnes sont ncessaires tous les domaines


d'activit
industrie, commerce, services, recherche scientifique,

Leur succs est li aux avances scientifiques et technologiques


en gestion de l'information et des communications
Les Systmes de Gestion des Bases de Donnes (SGBD) sont
parmi les systmes logiciels les plus complexes
Poids conomique: par exemple le SGBD Oracle a un CA 14,4
Milliards de $ et 65000 collaborateurs (1) , utilis par 98
entreprises du classement Fortune 100

(1) http://www.oracle.com/global/fr/corporate/index.html, dcembre 2005

1 Introduction aux BD et aux SGBD

Exemples de grandes applications

Systmes de compagnies ariennes


Systmes bancaires, d'assurance, commerciaux
Bases de donnes scientifiques, techniques
Biologie
Astronomie
Produits industriels

Bases de donnes bibliographiques


et, de plus en plus, interactions entre applications de
divers domaines
sant, transports, tourisme,
9

1 Introduction aux BD et aux SGBD

Exemples (2)

Pour une BD pour une compagnie arienne.


Pour supporter les rservations:
quelles informations doivent tre stockes ?
quels types d'interrogations sont souhaits ?

10

1 Introduction aux BD et aux SGBD

Exemples (3)
Les donnes

les
les
les
les
les

appareils
vols
aroports
rservations
achats

Les types d'interrogations


quels sont les vols au dpart de X et arrivant Y le 15 mars
2014 ?
quels sont les prix de ces vols ?
combien de passagers ont voyag sur le vol 1234 du 15 mars
2014 ?

11

1 Introduction aux BD et aux SGBD

Exemples (4)
SGBD relationnel: les donnes sont stockes dans des tables
Exemple :
Vols

nvol
123
234

compagnie
Air France
Alitalia
.

type_avion
Boeing 747
Airbus A340

Requte SQL: Donner le type d'avion du vol 123


SELECT type_avion
FROM
Vols
WHERE nvol = 123 ;

12

1 Introduction aux BD et aux SGBD

Les fonctions d'un SGBD

A partir des exemples des systmes prcdents,


quelles fonctions doit-on exiger pour un SGBD ?

13

1 Introduction aux BD et aux SGBD

Les principales fonctions dun SGBD


Stockage de donnes persistantes, trs grands volumes
(plusieurs Go (109), Tera-o (1012)), avec des structures flexibles
Langages de dfinition de donnes, d'interrogation et de
manipulation
Catalogue accessible aux utilisateurs
Gestion des autorisations, des transactions et des accs
concurrents
Gestion de l'intgrit des donnes
Outils divers
programmation, dveloppement, administration, communication,
aide la dcision,

Les vrais SGBD sont rares


Avances significatives / systmes de fichiers
14

1 Introduction aux BD et aux SGBD

Les principales composantes d'un SGBD


Administrateur
DDL
(langage de description
de donnes)

Utilisateurs
Utilisateurs
Utilisateur

Utilisateurs
Utilisateurs
Application

Processeur de
requtes
Moteur d'excution
Gestionnaire
d'index, relations, tuples

Gestionnaire de
transactions
Journalisation

Gestion des accs


concurrents

Gestionnaire
de stockage

Mtadonnes
Donnes
15

1 Introduction aux BD et aux SGBD

Approche oriente Bases de Donnes

Ensemble de programmes ayant des interactions


avec la (les) base(s) de donnes grce des
requtes appropries vers le SGBD

Application A1

Programmes
pour A1
SGBD

Application An

BD

Programmes
pour An

16

1 Introduction aux BD et aux SGBD

Les niveaux des BD


Vues externes
chaque vue reprsente
la partie de la bd relative
chaque utilisateur / application
Schma conceptuel
vue globale de la base :
les donnes stockes
et les relations parmi les donnes

R1(A number(10), B string, , primary key (A), ...)


.
Rn (X number(15), Y string, , primary key (X), )

Schma logique
Reprsente un modle de donnes
conforme au modle cibl de SGBD
(par ex. SGBDR)
Schma physique
dcrit comment les donnes
sont stockes dans la bd +
les index
17

1 Introduction aux BD et aux SGBD

Caractristiques de lArchitecture
Schma externe

Indpendance logique :
Schma conceptuel

Un changement du schma conceptuel


(nouvel attribut, nouvelle relation, ),
n'entrane pas de changement dans les vues
existantes

R1(A number(10), B string, , primary key (A), ...)


Schma logique .
Rn (X number(15), Y string, , primary key (X), )

Indpendance physique :
Schma physique

Cfr. ANSI / SPARC 1975

Les changements du schma interne


ne sont pas visibles aux niveaux des
schmas conceptuels et logiques;
consquences sur les performances
18

1 Introduction aux BD et aux SGBD

Quels types d'tudes dans les BD et les SGBD ?

Conception de BD
partir de l'analyse du contexte, recueillir les besoins :
Quelles informations stocker ? Comment les organiser ?
Quelles contraintes prendre en compte ? Comment les reprsenter ?
Quels types d'usages de ces donnes ?

Programmation
Dveloppement et optimisation de requtes et programmes
Interfaces avec d'autres applications

Implmentation de SGBD
support de nouveaux types de donnes, optimiseurs, intgration de donnes
et d'applications, interfaces utilisateurs, langages

19

1 Introduction aux BD et aux SGBD

Conception (design) de la BD

Analyse
du contexte

langage de modlisation

famille de SGBD

Entits - Relations

Hirarchiques
Rseaux

UML

Relationnels
Orients-objets
XML

SGBD

Oracle
Sybase
.
PostgreSQL
...

Modle conceptuel
de donnes

Modle logique
de donnes

Modle physique
de donnes

indpendant
de toute considration technique

indpendant
d un SGBD particulier

dcrit les tables,


l organisation des fichiers,
les index,
les contraintes d intgrit

temps

20

1 Introduction aux BD et aux SGBD

Le grand dfi: l'interoprabilit


Interface
Interface
Application
Application

Rseau
SGBD

SGBD
BD
BD

Client
Interface

Exemple
Application
SGBD

BD

les applications GPS:


Mto
Voirie
Ressources administratives,
touristiques, .
21

1 Introduction aux BD et aux SGBD

Difficults de la dmarche oriente BD


mise en place de lorganisation
complexit de la dmarche et des outils
architecture et taille des systmes
cots
matriels, logiciels, personnel spcialis, formation
projets, conversion des applications existantes

Informatique
Matriel

Logiciel

Humain
Donnes

Organisation

Personnes

Rles
22

2 - Modle Entits - Relations


Contenu
Concepts de base

Entits, attributs
Relations
Cls
Multiplicits, cardinalits

Concepts avancs
Hritage
Agrgation, Composition
Entits faibles

Supports en ligne
Rfrence principale
J. Ullman, CS 145 Slides Automn 2004
http://www-db.stanford.edu/~ullman/dscb/pslides/pslides.html

23

2 - Modle Entits - Relations

Objectif du modle de donnes


Apporter une interprtation du contexte applicatif
en soulignant les aspects fondamentaux
en ngligeant les dtails

Identifier les donnes gres par la base de donnes


et leur relations
Produire un diagramme, suivant un formalisme,
en vue de convertir le modle de donnes en schma
de base relationnelle
RALIT
modeling

Systmes
Relationnels

Modle
Entit-Relation
mapping

24

2 - Modle Entits - Relations

Entits et ensembles d'entits


Entit
"une chose" qui existe et qui peut tre distingue de faon unique.

Ex.: un tudiant, une voiture, une banque


abstraite ou concrte

Ensemble d'entits
Une collection d'entits similaires, ayant les mmes proprits,
identifies par l "organisation" ("entreprise" en sens large) comme
ayant une vie propre

Ex.: les tudiants d'une universit, les comptes d'une banque, les
entreprises d'un pays, les voitures d'une socit de location

Remarque: s'il n'y a pas d'ambigut, on utilise le terme "entit"


pour indiquer un ensemble d'entits.

25

2 - Modle Entits - Relations

Attributs
Attribut
proprit dune entit
prend des valeurs simples, par exemple entiers ou chanes
de caractres (domaine d'attribut)
Ensemble d'Entits
Voitures

Attributs
nsrie
marque
type

Domaines
entier (12)
chane de car. (8)
chane de car. (10)

type
nsrie

marque
voitures

Reprsentation
sous forme de
diagramme
26

2 - Modle Entits - Relations

Cl des ensembles d'entits


cl candidate: un ensemble minimal dattributs qui
identifie de faon unique une occurrence dentit
cl primaire: une cl candidate choisie pour identifier
de faon unique chaque occurrence dentit
cl compose: une cl candidate compose de deux
ou plusieurs attributs
nd

type
nsrie

marque
voitures
Cl primaire
K = nsrie

nom_d
dpartement

Cls candidates Cl primaire


K1 = nd
K = nd
K2 = nom_d
27

2 - Modle Entits - Relations

Relations

Une relation relie deux ou plusieurs ensembles d'entits


Ex.:
Des universits dlivrent des diplmes
Des tudiants sont inscrits dans des universits

nu

nom_u

nd

universit

dlivre

titre
diplme

inscription
nom_e

ne
tudiant

prnom_e
28

2 - Modle Entits - Relations

Ensemble de relations
La "valeur" d'une relation est l'ensemble des listes
des entits rellement associes par la relation.
Chaque liste est obtenue en correspondance des
ensembles d'entits en relation.

Exemple: valeur de la relation "dlivre"


nu
u1
u1
u1
.
u100
u100

nd
d2
d3
d5

d1
d2

- l'universit identifie par u1


dlivre les diplmes identifis
par d2, d3 et d5,

l'universit identifie par u100


dlivre les diplmes identifis
par d1 et d2
29

2 - Modle Entits - Relations

Ensemble de relations (2)

Soit r une relation entre k ensembles d'entits E1, E2, , Ek. Un


ensemble d'entits peut apparatre plus d'une fois dans la liste.
Soit un k-uplet (e1, ... ek) r
e1 E1, ... ek Ek sont associs par la relation r
e1, ... ek est dit tuple de r
k est le degr de la relation

K=
K=
K=

K=

1 : relation unaire (ou rcursive, sur un mme ensemble d'entits)


2 : relation binaire
3 : relation ternaire
n : relation n-aire

30

2 - Modle Entits - Relations

Relations n-aires
Une relation connectant plus de 2 ensembles
d'entits permet de restreindre les combinatoires
entre les valeurs des entits en relation
Ex.: des employs participent des projets avec des rles

np

nom_p
projet

nr

rle

participe
ne
employ
nom_e

descr_r

prnom_e

np
p1
p1
p1

p2
p2

ne
e2
e3
e5

e2
e3

nr
r1
r2
r3

r2
r1

31

2 - Modle Entits - Relations

Exercices

Donner des exemples de relations de type (1), (2) et (3)

A
r

B
C

(1)

(2)

(3)

32

2 - Modle Entits - Relations

Type des relations binaires

Soit r une relation binaire


Le type de r est li au nombre doccurrences dune
entit qui peuvent tre associes avec une
occurrence de l'autre entit

E1

E2

33

2 - Modle Entits - Relations

Relations de type m-n


Dans une relation "plusieurs plusieurs" ("many-many", m-n),
une entit de chaque ensemble peut tre connecte plusieurs
entits de l'autre ensemble

ne

nom_e
employs

np
participe

titre
projets

(n-m)

employs

projets

34

2 - Modle Entits - Relations

Relations de type 1-n


Dans une relation "un plusieurs" ("one-many", 1-n),
une entit d'un ensemble peut tre connecte au plus une
entit du second ensemble
mais une entit du second ensemble peut ne pas tre connect
aucune entit du premier ensemble, ou tre connecte une
ou plusieurs entit de cet ensemble
nf

nom_f
fabriquants

nsrie
produit
(1-n)

type
voitures
fabriquants

voitures

35

2 - Modle Entits - Relations

Relations de type 1-1


Dans une relation "un un" ("one-one", 1-1),
une entit de chaque ensemble peut tre connecte au plus
une entit de l'autre ensemble
Exemple: une BD pour l'administration d'un pays
une personne possde au plus un passeport
et un passeport a un seul titulaire

np

nom_p
personnes

npass
possde
(1-1)

date_emission
passeport
personnes

passeports

36

2 - Modle Entits - Relations

Synthse sur les types des relations

1-n

n-m

1-1

37

2 - Modle Entits - Relations

Exercice

Trouver des exemples de relations de type 1-n, n-m,


1-1. Pour chaque exemple, spcifier les entits A et
B, en indiquant leurs attributs et cls, ainsi que la
relation r.

38

2 - Modle Entits - Relations

Attributs de relation

Proprits dont la valeur dpend des tuples dans


l'ensemble de relations.

nc

date_c
commande

np
concerne

nom_p
produit

quantit

39

2 - Modle Entits - Relations

Exercice

Trouver un exemple de relation binaire r: r associe


les entits A et B, et est munie d'un attribut C.
Comparer les diagrammes (3) et (4).

C
(4)
40

2 - Modle Entits - Relations

Cardinalits
Les BD sont conues dans l'hypothse du "monde ferm"
Les ensembles d'entits sont FINIS !!

Cardinalits
Couples (min, max) associs chaque ensemble d'entit reli par
une relation r
Si r est binaire, entre E1 et E2:
le min (resp. max) associ Ei (i=1,2) reprsente le nombre minimum
(resp. max) d'entits de Ej (j=2,1) associes un lment quelconque de
Ei.

Si r est n-aire:
le nombre doccurrences possibles dentits associes dans cette relation
quand les autres (n-1) valeurs sont fixes

Min

Max

0
1

1
n
41

2 - Modle Entits - Relations

Exemples

type

nom_f

nf

fabriquant

1,n

produit

1,1

nsrie

voitures

(1-n)

ne

titre

nom_e
0,n
employ

np

1,n
participe

projet

(n-m)

42

2 - Modle Entits - Relations

Exemples

nom_p

np

personne

0,1

date_emission
npass
1,1
passeport
possde
(1-1)

est compose de
npice
0,n

quantit
nom_p

pice
0,n

compose
43

2 - Modle Entits - Relations

Exemple

np

nom_p
projet
1,n
participe

ne

0,n
employ

nr

descr_r

0,n rle

prnom_e

nom_e

44

2 - Modle Entits - Relations

Exercice
nom_p

np
np

projet
1,n
participe

ne

0,n
employ

nom_p

projet
nr

descr_r

0,n rle

nr
rle

participe

prnom_e

nom_e

0,n
1,n
employ
prnom_e

projet
nom_p

0,n

1,n
ncessite

participe

nom_e

nom_e

np

ne

0,n

ne

Comparer les modles


A, B et C

descr_r

1,n

0,n
employ

0,n rle
prnom_e

descr_r

nr
45

2 - Modle Entits - Relations

Question

A partir des cardinalits d'une relation binaire, on


peut dduire le type de la relation. Comment ?

46

2 - Modle Entits - Relations

Choix des entits et des relations


Une base de donnes est valable dans un contexte
d'application
Le choix des entits et relations reprsentes dans
un modle de donnes dpend de la "perspective" du
modle et de ses objectifs
des entits peuvent tre relies par plusieurs
relations, non redondantes entre elles.
ns

1,1
segments
orients

1,1

arrive
part

0,n
0,n

x
points

47

2 - Modle Entits - Relations

Hritage
Relation entre une entit (classe) et une sous-classe
qui ncessite dtre reprsente dans un modle de
donnes
Par rapport l'ensemble d'entits plus gnral, la
sous-classe
contient moins d'lments
ses lments ont des proprits supplmentaires ou
participent de relations supplmentaires

employs
vhicules
motos

pilotes

avions

voitures
camions
48

2 - Modle Entits - Relations

Relations is-a

Relation Is-a ou Est-un: relation binaire


Induit une relation d'ordre entre les entits
Gnralisation / Spcialisation

Reprsentations graphiques
A gnralisation de B et C ; B et C spcialisations de A

A
is a

Multiplicit ?
Cardinalits ?
is a

is a

is a

C
49

2 - Modle Entits - Relations

Exemple

domaine d'activit

nc

industriel

raison_sociale

client

adresse

particulier

nom
prnom

profession

50

2 - Modle Entits - Relations

Participation

Totale ou Partielle
dtermine si toutes ou seulement quelques occurrences dun
ensemble d'entits participent une relation

A partir des cardinalits:


min = 0 participation partielle
min > 0 participation totale

51

2 - Modle Entits - Relations

Participation (2)

Tous les lments du modle (entits, relations,


cardinalits, ) refltent des choix pour reprsenter le
contexte applicatifs.
En particulier, les cardinalits dpendent des
"domaines" des ensembles d'entits.
Etudiant

Stagiaire

0,1

1,1

Encadre

Encadre

0,n

1,n

Enseignant

Encadreur
52

2 - Modle Entits - Relations

Exercice

Trouver des exemples dentits et de relations


correspondant au modle (5).
Modifier le modle, afin de rendre les participations
"totales".
0,n

0,n

(5)

53

2 - Modle Entits - Relations

Exercice
nd
1,1

Modifier le modle ci-contre


pour gnrer des
participations totales
grce des relations
dhritage

0,1

ne

budget

dpartement
1,n

dirige
nom

sigle

appartient
1,1

employ
0,1
0,1

travaille
est
responsable

1,n
1,n

projet

np
libell

budget

54

2 - Modle Entits - Relations

Relation "Est-de-type"

code_type
nc

contrat

1,1

Est de type

1,n Type_contrat
libell_type

date_signature

contrats

Type_contrats

55

2 - Modle Entits - Relations

Utilit des classifications

Spcifier des proprits applicables tous les


lments d'un sous-ensemble d'entits
Exercice: complter le modle ci-dessous, pour reprsenter le

fait que tous les contrats d'un mme type sont soumis aux
mmes rgles.
code_type
nc

contrat

1,1

Est de type

1,n Type_contrat
libell_type

date_signature

56

2 - Modle Entits - Relations

Relation "Est-un" et relation "Est-de-type"


Les deux relations peuvent tre prsentes dans le
mme modle

Exercice:
Esquisser un modle E-R pour l'exemple ci-dessous

clients
particuliers

industriels

type_clients

57

2 - Modle Entits - Relations

Exemple

activit
code_type_client
nc
type_client

Est de type

remise_type_client

raison_sociale

industriel
client
adresse

particulier

nom
prnom

profession
La remise accorde aux clients dpend du type de client,
par exemple: 10% tous les particuliers, 20% tous les industriels
58

2 - Modle Entits - Relations

Agrgation / Composition
Agrgation
une relation a-un ou fait-part-de entre deux
ensembles dentits, dont un reprsente le tout
et lautre une partie

Composition
une forme particulire dagrgation entre deux entits,
avec un lien trs fort entre le tout et la partie
(en terme de proprit et de dure de vie)

59

2 - Modle Entits - Relations

Exemple d'agrgation

nmodle_v

nmodle_moteur

marque

voiture

1,1

comprend

0,n moteur

1,n
descr_modle_moteur
comprend
nmodle_ph

1,n
phares

descr_modle_ph

60

2 - Modle Entits - Relations

Entits faibles
Un ensemble d'entits E est dit "faible" si pour
identifier ses entits on doit suivre une ou plusieurs
relations de type 1-n partir de E et considrer
simultanment les cls des entits parcourues.
La cl d'un ensemble d'entits faible est obtenue en
compltant sa propre cl par les cls des ensembles
d'entits qui le supportent
Nb lits

nC

nH

1,1

CHAMBRE

1,n

Situer

nom_H

HOTEL
61

2 - Modle Entits - Relations

Synthse
Un modle Entit-Relation contient les lments
suivants:
Entits
Proprits (ou attributs)
Cls primaires

Relations
ventuellement munies de proprits (ou attributs)

Cardinalits

Ces lments sont TOUS OBLIGATOIRES

62

2 - Modle Entits - Relations

Exercice

Complter le modle ci-dessous

nc

date_c
commande

np
concerne

nom_p
produit

quantit

63

2 - Modle Entits - Relations

Exercice

nom
ne

prnom
employ

0,n

nm
appartient

adresse

1,1
magasin

1,0
nm

is a
1,1
type-salari

salaire
mensuel

cot
journalier

taux
heures
de base

Analyser ce modle et
le corriger, si
ncessaire
taux heures
supplmentaires

64

2 - Modle Entits - Relations

Exercice

nom-v
Ville
Aroport
na
nom-a

np

nom-c
Compagnie

nom_p

Pilote

Vol

Passager

date
heure
nde vol

nom
prnom
adresse

- Ci-dessus des entits d'un modle ER pour un systme de transport


arien. Le complter, en introduisant les relations, les identifiants, les
cardinalits.
- Modifier ensuite le modle pour prendre en compte le n de sige
occup par un passager sur un vol bien prcis.
65

3 Le Modle Relationnel

Contenu
Concepts de base relatifs aux schmas relationnels
Passage du modle entit-relation au modle
relationnel

Supports en ligne
Rfrence principale
J. Ullman, CS 145 Slides Automn 2004
http://www-db.stanford.edu/~ullman/dscb/pslides/pslides.html

66

3 - Modle Relationnel

Positionnement du Modle Relationnel

RALIT

modeling

Systmes
Relationnels

Modle
Entit-Relation

mapping

R1(A, B, ...)
.
Rn (X , Y , )

67

3 - Modle Relationnel

Concepts de base
tuple

relation

une ligne dune relation


les tuples sont tous diffrents

une table, avec des lignes et des


colonnes

degr dune relation

attribut
une colonne dune relation.
un attribut a un nom
dans une relation, les noms d'attributs
sont tous diffrents

le nombre de ses colonnes

cardinalit dune relation


le nombre de ses lignes

domaine
ensemble des valeurs possibles
pour un ou plusieurs attributs

Employs

ne
1
2
3
12

nom_e
Dupont
Durant
Villier
Fornier
68

3 - Modle Relationnel

Concepts de base (2)

Schma relationnel
nom de la relation
noms et types des attributs, dans leur ordre
les contraintes sur la relation (cls primaires, )
Example: Employs (ne number(5), nom_e varchar2 (20))

Base de donnes
Ensemble de relations "normalises"
Les relations ont des noms diffrents

Schma de la base de donnes


Ensemble de tous les schmas relationnels de la base

69

3 - Modle Relationnel

Pourquoi le succs du modle relationnel ?

Facilit de la reprsentation tabulaire


Correspond une "premire" interprtation des
donnes
Modle ensembliste
Support du SQL (Structured Query Language)

70

3 - Modle Relationnel

Vision tabulaire des relations


personne

np
1000
2000

nom
DUPONT
DURAND

prnom
JACQUES
PIERRE

vhicule

nvh
10-R-92
30-Q-75
25-S-74

marque
Renault
Peugeot
Citron

type
R21
205
BX

possde

np
1000
2000
2000

nvh
10-R-92
30-Q-75
25-S-74

date
01/01/92
15/02/89
05/08/93

couleur
rouge
bleu
blanche

71

3 - Modle Relationnel

Proprits dune relation


Le modle relationnel gre seulement des relations
dites en "1re Forme Normale"
tous les tuples sont distincts
lordre des tuples na pas dimportance (sauf / performances)
pour un tuple donn et un attribut donn, la valeur est
atomique (simple, pas compose)
Un attribut est assimilable une fonction, qui prend des valeurs
sur un domaine donn
Employs

ne
1
2
3
12

nom_e
Dupont
Durant
Villier
Fornier

ns_tlphone
{0123456, 061111}
{0234567, 062222}
{0345678, 063333}
{0456789, 064444}

Correction ?

72

3 - Modle Relationnel

Cls
Supercl
un attribut, ou un ensemble dattributs, qui identifie de faon
unique les tuples dans la relation

Cl candidate
une supercl telle que aucun de ses sous-ensembles n'est
une supercl de la relation

Cl primaire
la cl candidate slectionne pour identifier de faon unique
les tuples dune relation

73

3 - Modle Relationnel

Exemple

Table Centres
CENTRE_NB

1
2
3
4
5
6
7
8

NOM

PARIS1
PARIS2
LYON1
LYON2
LILLE1
MARSEILLE1
BORDEAUX1
BORDEAUX2

Table Produits
PRODUIT LIBELLE
1
QUINCAILLERIE
2
BOIS
3
PEINTURE
4
JARDINAGE

CA

PRODUIT

BENEFICE DATEOUV

500
100
250
120
200
430
300

1
2
1
3
2
4
2

2.0
0.5
1.0
0.1
0.3
0.1
0.6

01-JAN-80
01-FEB-85
05-MAY-86
01-DEC-88
01-OCT-91
20-DEC-87
01-JAN-86
01-JAN-94

SIEGE

1
1
1
2
1
1
1
7

Identifier dans ces deux relations


les cls, les attributs et leurs domaines

74

3 - Modle Relationnel

Du modle E/R au modle relationnel

Le passage du modle E-R aux schmas relationnels se fait en


suivant des rgles.

Schma relationnel brut


1) Pour chaque entit E du modle E/R,
crer une relation qui comprend tous les attributs de lentit.
PK de la relation = PK de lentit E

2) Pour chaque relation r du modle E/R,


crer une relation ayant pour colonnes les PK des entits en
relation, plus les attributs de la relation, s'il y en a.
La PK de la relation dpend des multiplicits de la relation, des
attributs de relation et des contraintes dintgrit

75

3 - Modle Relationnel

Exemple

ne

nom_e

Employs

np

1,n

1,n
participe

nom_p

Projets

Employs (ne, nom_e)


Projets (np, nomp)
Participe (ne, np)
76

3 - Modle Relationnel

Du modle E/R au modle relationnel (2)

Schma relationnel optimis


1) & 2) pour les relations de multiplicit (n-m)
&

2) Pour chaque relation binaire r du modle E/R, de multiplicit (1-n)


on ajoute dans la relation correspondante lentit ayant la
cardinalit maximale = 1 une copie du (des) attribut(s)
constituant la PK de lentit ayant la cardinalit maximale = n
on supprime la relation correspondante r.
PK des relations associes aux entits en correspondance ?

77

3 - Modle Relationnel

Exemple

ne

nom_e

Employs

1,1

nd

1,n

nom_d

Dpartements

Employs (ne, nom_e, nd)


Dpartements (nd, nomd)
(ne, nd)

78

3 - Modle Relationnel

Exemple
0,n

a2

a1

Schma relationnel brut


A (A1, A 2)

PK = {A1}

B (B1, B2)

PK = {B1}

r (A1, B1)

PK = {B1}

1,1

b2

b1

(6)

Schma relationnel optimis OK

Schma relationnel optimis FAUX

A (A1, A2)

PK = {A1}

A (A1, A2, B1)

PK = {A1}

B (B1, B2, A1)

PK = {B1}

B (B1, B2)

PK = {B1}

r (A1, B1)

PK = {B1}

r (A1, B1)

PK = {B1}
79

3 - Modle Relationnel

Cl trangre

Un attribut, ou un ensemble dattributs, dans une relation E1,


qui correspond une cl candidate dans une autre relation E2
(ventuellement la mme)
Dans le modle E/R, E1 et E2 correspondent deux entits
entre lesquelles existe une relation de type (1-n), o la
cardinalit maximale = 1 concerne l'entit E1
Employs (ne, nom_e, nd)
Dpartements (nd, nomd)

nd dans Employs est cl trangre


faisant rfrence
nd, cl primaire de Dpartement

(ne, nd)
80

3 - Modle Relationnel

Exercice
npr

produit
ncl

libell
0,n

n om _cl

client

1,n

concerne

quantit

adresse

passe

1,1

1,n

commande

SCHMA RELATIONNEL BRUT

Noter les cls des relations

ncde
date

produit (npr, libell)


commande (ncde, date)
clients (ncl, nom_cl, adresse)
concerne (ncde, npr, quantit)
passe (ncde, ncl)

SCHMA RELATIONNEL OPTIMIS ?


81

3 - Modle Relationnel

Exercice

np

marque

nvh

personne
nom

prnom

possde
vhicule
date_achat

type

couleur

date

- Dans ce modle, ajouter les cardinalits.


Celles-ci doivent tre le plus ralistes possible
- Dterminer les schmas relationnels (brut et optimis)
- Prciser les PK
82

3 - Modle Relationnel

Exemple

Relations
unaires

0,n

est compose de

pice

nom_p

quantit

compose

0,n

Nom pice
Compose
voiture
voiture
voiture
voiture
moteur
moteur
moteur
roue
roue

Nom Pice
Composante
chssis
moteur
essieu
roue
culasse
piston
bielle
pneu
jante

Est_compose

Quantit

Nom Pice
Composante
chssis
moteur
essieu
roue
culasse
piston
bielle
pneu
jante

1
1
2
5
1
4
4
1
1

ou

Nom pice
Compose
voiture
voiture
voiture
voiture
moteur
moteur
moteur
roue
roue

Compose

Quantit
1
1
2
5
1
4
4
1
1

PK ?
83

3 - Modle Relationnel

Exercice

0,1

r
(7)

1,1

1,1

1,1

(8)

Avec :
- A (A1, A2, A3)
PK = {A1}
- B (B1, B2, B3)
PK = {B1}
Dterminer le schma relationnel brut
Dterminer le schma relationnel optimis
Remplacer A, B, r par des entits et relations plus explicites

84

3 - Modle Relationnel

Relations en correspondances des hritages

Classe "mre" :
rgle habituelle pour chaque entit E du modle E/R: crer une
relation qui comprend tous les attributs de lentit
+ un attribut indiquant le "type" (par rapport la spcialisation)
PK de la relation = PK de lentit "mre"

Classe "fille" :
crer une relation qui comprend tous les attributs de cette classe
+ les attributs qui forment la PK de la classe "mre"
PK de la relation = PK de lentit "mre"

a2

b1

a1

A (a1, a2, typeA)


B (a1, b1, b2)
b2
85

3 - Modle Relationnel

Exemple
activit

nc

industriel

raison_sociale

client

adresse

particulier

nom_c
prnom_c

Client (nc, adresse, type_client)


Particulier (nc, nom_c, prnom_c)
Industriel (nc, raison_sociale, activit)
86

3 - Modle Relationnel

Relations en correspondance
de la relation Est-de-type
code_type_client
nc
type_client

Est de type

remise_type_client

client

Relation de type 1-n

adresse

Schma relationnel brut


Client (nc, adresse)
Type_client (code_type_client, remise_type_client)
Est_de_type (nc, code_type_client)

Schma relationnel optimis


Client (nc, adresse, code_type_client)
Type_client (code_type_client, remise_type_client)
87

3 - Modle Relationnel

Relations pour les ensembles d'entits faibles

Elles comprennent:
tous leurs attributs (cls et non cls)
+
les attributs qui forment la PK des ensembles
d'entits qui les supportent
Les relations du modle E/R qui supportent
l'ensemble d'entits faible ne donnent pas lieu des
relations dans le modle relationnel, car elles sont de
type (1-n).

88

3 - Modle Relationnel

Exemple

nom

nlve

Elves

necole nom_ecole

1,1

1,n

Inscrit

coles

lves (nlve, nom, ncole)


coles (ncole, nom_cole)
Inscrit (nlve, ncole) redondante

89

3 - Modle Relationnel

Exemple

nb-lits

nc

nH

1,1
CHAMBRE

nom_H

1,n

Situer

HOTEL

CHAMBRE (nC, nH, nb-lits)


HOTEL (nH, nom_H)
Situer (nC, nH) redondante

90

3 - Modle Relationnel

Exercice
Pour construire un guide des programmes de tlvision, on utilise une base de
donnes relationnelle.
Grce cette base, on doit pouvoir indiquer sur quelles chanes, quels jours et
quelles heures, vont tre diffuses les diffrentes missions. Le guide indique
aussi la catgorie de programmes (thtre, film, documentaire, sport,)
laquelle appartient chaque mission.
En plus de ces informations, on connat :
- dune chane de tlvision: le sigle, ladresse du sige social, le nom et le
numro de tlphone dun correspondant
- dune mission: un numro didentification, le titre, la dure, ventuellement le
code CSA (indiquant s'il y a des restrictions concernant le public)
- dune catgorie de programmes: un numro didentification, un libell
Pour ce contexte, tablir un modle entit - relation et les schmas relationnels
associs, brut et optimis.

91

4. Conception et intgrit du
schma relationnel

92

4 Conception et intgrit

La normalisation

La conception dun M E-A reprsente la vision de la


ralit de lanalyste. Le formalisme obtenu, tabli
avec une mthode, ne garantit pas justesse et
optimisation.
La justesse dpend de la comptence et de
lexprience de lanalyste.
Loptimisation est obtenue par les mcanismes de la
normalisation.

93

4 Conception et intgrit

Normalisation

Cest vrifier que la structure devant


recevoir des donnes est organise pour
viter :
des redondances dinformations et
des anomalies de conception (sources
invitables dincohrence court ou long
terme).

94

4 Conception et intgrit

Normalisation

Dfinition:
Le processus de restructurer le modle de donnes
logiques pour :
Eliminer les redondances,
Organiser les donnes efficacement,
Rduire le potentiel d'anomalies pendant les oprations sur
les donnes.

95

4 Conception et intgrit

La normalisation
Les besoins de normalisation :

3 problmes de cohrence lors de mises jours de la


BD:

anomalie d'insertion (si on rajoute une commande il faut que


l'article existe)
anomalie de suppression (si on enlve un fournisseur il faut
enlever toutes les commandes de ce fournisseur)
anomalie de modification (si on modifie le numro d'un article
il faut modifier toutes les commandes avec ce numro d'article

96

4 Conception et intgrit

La normalisation

La thorie de la normalisation repose sur l'analyse de


dpendances entre attributs qui sont l'origine de
phnomnes de redondance.
La normalisation consiste en des mthodes de
dcomposition des relations.

Dans certains situations, pour des raisons d'efficacit,


on dnormalise.

97

4 Conception et intgrit

Normalisation

Les classifications formelles utilises pour dcrire le


niveau de normalisation d'une base de donnes
relationnelle sont appeles les formes normales (FN)
Il existe 04 formes normales, sont les plus pratiques
et sont connatre.

98

4 Conception et intgrit

Normalisation

Chaque nouvelle forme normale marque une tape


supplmentaire de progression vers des relations
prsentant de moins en moins de redondance
Le but :
est d'obtenir une reprsentation des donnes
prsentant un minimum de redondance
l'intrieur de chaque relation et un maximum
d'indpendance entre les diffrentes relations

99

4 Conception et intgrit

Formes normales

Premire forme normale


Deuxime forme normale
Troisime forme normale
Forme normale de Boyce-Codd
Edgar Codd est lorigine de la dfinition des
formes normales 1FN, 2FN, 3FN, BCFN.

100

4 Conception et intgrit

La normalisation

La thorie de la normalisation est base


sur les "dpendances fonctionnelles"
(DF).
c.--d. Dpendance entre les informations
Par exemple, le salaire dpend de la
qualification

101

4 Conception et intgrit

Les dpendances fonctionnelles traduisent des


contraintes sur les donnes
Par exemple, on dcide que deux individus diffrents
peuvent avoir mme nom et prnom mais jamais le mme
numro de scurit sociale.
Ces contraintes sont reprsentatives d'une perception de la
ralit et imposent des limites la base

102

4 Conception et intgrit

Dpendance fonctionnelle
Rappel:
Dfinition : Dpendance fonctionnelle
On dit qu'un attribut B dpend fonctionnellement d'un
attribut A si, tant donn une valeur de A, il lui correspond
une unique valeur de B.
Notation : A --> B
Exemple :
La dpendance fonctionnelle SS NOM signifie qu' un
numro est associ un nom seulement.
Remarquons qu'une dpendance fonctionnelle n'est

gnralement pas symtrique, c'est--dire que SS NOM


n'interdit pas que deux personnes distinctes (correspondant
deux SS diffrents) portent le mme nom.
103

4 Conception et intgrit

Proprits des dpendances fonctionnelles (1)


Les dpendances fonctionnelles possdent trois proprits
fondamentales quon appelle couramment les axiomes
dArmstrong car mises en vidence par W. Armstrong. En
supposant que X, Y , Z, sont trois ensembles dattributs, il est
utile de faire les remarques suivantes avant dnoncer les
proprits :
Lcriture X , Z est une criture simplifie de lunion
ensembliste des deux ensembles dattributs X et Z. Ceci veut
dire que lcriture X , Z devra tre interprte comme X Z .
Il faut souligner aussi que lunion ensembliste est un oprateur
associatif et commutatif :
((X Y) Z ) = (X (Y Z))
XZ=ZX
104

4 Conception et intgrit

Proprits des dpendances fonctionnelles (2)


Rflexivit
Si X Y Y X
Ex : A A,B A,B A et A,B B

Transitivit
Si X Y et Y Z X Z
Ex : A,B C et C D A,B D

Augmentation
Si X Y Z
X , Z Y, Z
Ex : A,B C A,B,D C,D

A partir de ces trois axiomes de base, on peut dduire facilement


dautres proprits trs utiles en pratiques. Les plus remarquables
sont :
105

4 Conception et intgrit

Proprits des dpendances fonctionnelles (3)


Union des parties droites
Si X Y et X Z X Y, Z
Ex : A C et A D A C,D

Dcomposition
Si X Y, Z X Y et X Z
Ex : A C,D A C et A D

Pseudo Transitivit
Si X Y et Y , W Z X , W Z
Ex : A C et B,C D A,B D

Distributivit par rapport lunion


Si X U ui U
X ui (cest une gnralisation de la
dcomposition)
Ex : A C,D,E,F A C et A D et A E et A F

A,B C,D,E A,B C et A,B D et A,B E


106

4 Conception et intgrit

Proprits des dpendances fonctionnelles (4)


Dpendance fonctionnelle lmentaire
On appelle dpendance fonctionnelle lmentaire une
dpendance de la forme : X A , ou A est un attribut
unique non inclus dans X ( A X), tel que X X, il
nexiste pas de dpendance fonctionnelle X A.
En dautres termes, une dpendance fonctionnelle est
lmentaire si elle nest pas obtenue par augmentation
de sa partie gauche.

107

4 Conception et intgrit

Proprits des dpendances fonctionnelles (5)


Exemple :
Si on considre les deux D.F. :
(NUMERO, NOM ) ADRESSE (1)
NUMERO ADRESSE (2)

la D.F. (1) est une D.F. non lmentaire car NUMERO


(NUMERO,NOM) et il existe la D.F. NUMERO ADRESSE.
Par contre la D.F. (2) est une D.F. lmentaire car elle
vrifie les proprits dune D.F. lmentaire

108

4 Conception et intgrit

Proprits des dpendances fonctionnelles (6)


Dpendance fonctionnelle transitive

On appelle dpendance fonctionnelle transitive


une dpendance de la forme : X A , ou A
est un attribut unique non inclus dans X ( A
X), tel que :
Y X, X Y et Y A et Y /
/ X
Dans ce cas, on dit aussi que A est
transitivement dpendant de X.
Dans le cas o A nest pas transitivement
dpendant de X, on dit que A est
directement dpendant de X
109

4 Conception et intgrit

Proprits des dpendances fonctionnelles (7)


Exemple :
Si on considre les D.F. :
1- A B 2- B C 3- A C
4- D B 5- D C 6- B D

La D.F. A C est transitive car B A tel que :


A B et B C et B / A

Par contre la D.F. D C nest pas transitive


puisque B D tel que :
D B et B C mais B D

110

4 Conception et intgrit

Proprits des dpendances fonctionnelles (8)


Dpendance fonctionnelle directe

On appelle dpendance fonctionnelle directe une


dpendance de la forme X A , ou A est un
attribut unique non inclus dans X ( A X), tel
que :
Y X, si X Y et Y A alors la d.f. Y X
existe aussi

111

4 Conception et intgrit

Proprits des dpendances fonctionnelles (9)

Exemple :
Si on considre les D.F. :
1- A B 2-B C 3- A C
4- D B 5-D C 6-B D
La D.F. A C nest pas directe car pour B A
on a : A B et B C =/=> B A
La D.F. D C est directe puisque pour B D on
a : D B et B C B D existe

112

4 Conception et intgrit

Proprits des dpendances fonctionnelles (10)


La D.F. A B est directe puisque il nexiste
pas dattribut Y A tel quon a en mme
temps les d.f. A Y et Y B pour vrifier sil y
a ou non contradiction avec la dfinition. Dans
ces cas l , la d.f. est forcment directe.
Dans le cas o A nest pas directement
dpendant de X (i.e. la d.f. Y X nexiste
pas), on dit que A est transitivement
dpendant de X.
113

4 Conception et intgrit

Proprits des dpendances fonctionnelles (11)


Dpendance fonctionnelle totale, pleine ou complte
On appelle dpendance fonctionnelle totale , pleine ou
complte une dpendance fonctionnelle de la forme
X A , ou A est un attribut unique non inclus dans X
( A X), telle que X X , il nexiste pas de
dpendance fonctionnelle
X A . En dautres
termes, la dpendance X A est lmentaire.
Dans ce cas on dit aussi que A est pleinement ou
totalement ou compltement dpendant de X.
Dans le cas contraire, on dit aussi que A est partiellement
dpendant de X (i.e. A dpend dune partie de X et
donc forcment de X aussi par augmentation)
114

4 Conception et intgrit

Proprits des dpendances fonctionnelles (12)


Exemple :
Si on considre les D.F. :
1- A ,B C 2- B C 3- B,C D
dans la d.f. 1 C nest pas totalement
dpendant de A ,B car on a B A,B tel
que B C. On peut dire que C est
partiellement dpendant de A,B.
dans la d.f. 3- D est totalement
dpendant de B,C car il nexiste pas de
X B ,C et tel que X D.
115

4 Conception et intgrit

Proprits des dpendances fonctionnelles (13)


Dpendance fonctionnelle triviale

On appelle dpendance fonctionnelle triviale une


dpendance fonctionnelle de la forme X Y , tel que
Y X. En dautres termes, une dpendance
fonctionnelle est triviale si elle est obtenue grce la
proprit de rflexivit.
exemple : Si on considre les D.F. :
1- A ,B B 2-B,C C 3- A ,C D
la d.f. 1 est triviale car on a B A ,B
la d.f. 2 est triviale car on a C B ,C
la d.f. 3 nest pas triviale car on a D A ,C
116

4 Conception et intgrit

Proprits des dpendances fonctionnelles (14)

les notions de dpendance fonctionnelle


lmentaire, de dpendance fonctionnelle
totale, de dpendance fonctionnelle directe
vont intervenir dans la dfinition des formes
normales dune relation et principalement la
deuxime et la troisime formes normales.

117

4 Conception et intgrit

Normalisation : 1FN
1FN (rubrique lmentaire) :
Un MR est dit en premire forme normale, si toutes les entits

sont composes dattributs lmentaires ou atomiques (hors


clefs concatnes).
IP

Role

192.168.0.1

client

192.168.0.2

serveur

192.168.0.4

client et serveur

Consquences :
un attribut reprsente une donne lmentaire du monde
rel ;
Un attribut ne peut dsigner, ni une donne compose
d'entits de natures diffrentes, ni une liste de donnes de
mme nature.
118

4 Conception et intgrit

Normalisation : 1FN
Si on veut avoir les notes d'un tudiant :
Nom

Nom

N o te s

E in s te in

8 ,1 2 .5

F re u d

2 .5 , 0 , 1 8

E in s te in

N o te
1
8

N o te
2
1 2 .5

N o te
3
N U LL

F re u d

2 .5

18

Nom

Note

Einstein
Eintein
Freud
Freud
Freud

8
12.5
2.5
0
18

Nest pas en 1FN. Pour y remdier, on peut soit crer un


attribut par note si le nombre maximal de notes est connu et
si le nombre moyen de notes par personne est proche de ce
maximum, Soit fabrique autant de tuples que de couples
(nom, note)
119

4 Conception et intgrit

Normalisation : 2FN
2FN (dpendance fonctionnelle
lmentaire) :
Un MR est dit en deuxime forme normale,

si:
- il remplit les conditions de la 1FN et si,
- tout attribut n'appartenant pas une cl ne
dpend pas d'une partie de cette cl.

A,B -> C
B->C

C
120

4 Conception et intgrit

Normalisation : 2FN

La 2FN est base sur le concept de dpendance


fonctionnelle totale
Dfinition de la dpendance fonctionnelle totale x y: si la

suppression d'un attribut A de x signifie que la dpendance


n'existe plus

121

4 Conception et intgrit

Normalisation : 2FN
Exemple:
Considrons une table Membres du Departement"
dont les attributs sont :

ID departement,
ID employe,
Date de naissance employe;
et supposons quun employ travaille dans un ou
plusieurs dpartements.
La combinaison de ID departement et de ID employe
identifie de manire unique un enregistrement de la
table.
Est-ce que cette table est en 2FN?
Comme Date de naissance employe ne dpend que dun
seul de ces attributs lID employe la table nest pas
2NF.
122

4 Conception et intgrit

Normalisation : 2FN
Autre exemple :
Considrons la relation PLAGE de schma suivant :
PLAGE (NOMP, REGION, TYPE, POLLUTION)
o la cl est (NOMP, REGION). Supposons que la
pollution est bien dpendante de la plage (identifie
par (NOMP, REGION)) mais que le type est, quant
lui, dpendant de la rgion seule.
Que pouvons nous faire?:
La deuxime forme normale nous impose de distinguer
deux relations R1 et R2 de schmas respectifs :
R1 (NOMP, REGION, POLLUTION) ;
R2 (REGION, TYPE).
123

4 Conception et intgrit

Normalisation : 3FN

Dfinition : troisime forme normale:


Une relation est en troisime forme normale si :
- elle est en deuxime forme normale ;
- tout attribut n'appartenant pas une cl ne dpend pas
d'un attribut non cl.
- C..d. toute DF dont la partie droite nest pas une cl doit
avoir une partie gauche qui est une cl :

B, C OK

A, B, C
124

4 Conception et intgrit

Normalisation : 3FN
Exemple :
Considrons une table "Departements" dont les attributs sont

ID departement,
Nom departement,
ID manager,
Date embauche manager
et supposons que chaque manager peut grer un ou plusieurs
dpartements.
ID departement est une cl candidate.
Bien que Date embauche manager est fonctionnellement dpendante
de {ID departement}, elle est aussi fonctionnellement dpendante de
lattribut ID manager.

ID departement Date embauche manager


ID manager Date embauche manager X
Ceci signifie que la table nest pas 3FN.
Departements (ID department, Nom departement, ID manager
Information Manager (ID manager, date embauche manager)

125

4 Conception et intgrit

Normalisation : 3FN

Autre exemple:
Considrons maintenant la relation PLAGE de schma
PLAGE (NP, REGION, TYPE, POLLUTION)

o la cl est NP.
Supposons maintenant comme dans l'exemple
prcdent que le type est dpendant de la rgion.
La troisime forme normale nous impose de distinguer
deux relations R1 et R2 de schmas respectifs :
R1 (NP, REGION, POLLUTION) ;
R2 (REGION, TYPE).
126

4 Conception et intgrit

Normalisation : 3FN
Autre Exemple :
Enseignant (Nom, Bureau, Batiment, Discipline, telephone)
Avec des contraintes dintgrit : Un btiment hberge des
enseignants d'une mme discipline; un bureau donn
possde un numro d'appel unique.

Avec les DF: Batiment Discipline


Batiment, Bureau Telephone
Telephone Bureau, Batiment
Note: la deuxime contrainte dfinit une relation 1-1, donc
une DF reflexive.

127

4 Conception et intgrit

Enseignant (Nom, Bureau, Batiment, Discipline,


telephone)
La dpendance Batiment->Discipline ne concerne pas la
cl. La relation Enseignant n'est pas 3FN.
On sort donc lattribut Discipline de la relation Enseignant
(dpendant dun attribut non-cl) et on cr une nouvelle
relation Affectation:
Affectation(Batiment,Discipline)
Les dpendances
Batiment, Bureau->Telephone
Telephone->Bureau, Batiment
ne concernent pas la cl. On cr la nouvelle relation:
Annuaire(Bureau, Batiment, telephone)
La relation Enseignant dorigine peut tre renomme
Sige, avec les attributs restant:
Siege(Nom,Bureau,Batiment)

128

4 Conception et intgrit

Normalisation : Boyce-Codd

La BCNF tait propose comme une forme plus


simple de la 3FN, mais elle est finalement plus stricte
que la 3FN.

129

4 Conception et intgrit

Normalisation : BCNF
Dfinition : Boyce-Codd Normal forme :
Une relation est en BCNF si :
- elle est en 3me forme normale ;
- aucun attribut ne dpend d'un attribut non cl.
Toute relation qui est en BCNF est forcement en 3 FN

C..d. toute DF a pour partie gauche (origine de la


flche) une cl candidate ou primaire entire.
Une relation en BCNF si quelle que soit la DF, le
membre gauche est une cl.

A, B, C
130

4 Conception et intgrit

Normalisation : Exemple 1 BCNF

Considrons la relation suivante: Cours (Matiere, Classe, Professeur)


complte par les rgles de gestion suivantes:
un professeur n'enseigne qu'une seule matire,
une classe n'a qu'un seul enseignant par matire
desquelles on dduit les DF suivantes:
Matire, Classe Professeur
Professeur Matire
Cette relation est en 3FN, nanmoins il est impossible d'enregistrer un
professeur sans classe affecte (puisque classe est une partie de la
cl primaire de la table Cours), et la disparition d'une classe peut
entraner la disparition de professeur.
Ceci est du au fait qu'une DF n'ait pas comme origine une cl de la
relation.
131

4 Conception et intgrit

Normalisation : Exemple BCNF

On pourrait alors dcomposer la table Cours en 2 tables:


Spcialit (Professeur, Matire)
Enseignant (Classe, Professeur)
Mais la premire DF serait alors perdue

132

4 Conception et intgrit

Normalisation : Exemple 2 - BCNF

Considrons la relation suivante:


Fournisseur (nom, adresse, produit, prix)
avec les DF suivantes :
DF1: nom adresse
DF2: nom, produit prix
Alors la cl de la relation Fournisseur est [nom, produit].
Cette relation n'est pas en BCNF, car dans la DF1, la partie
gauche "nom" n'est pas une cl entire.

133

4 Conception et intgrit

Algorithme de synthse (1)


En appliquant les tapes de cet algorithme, vous pourrez
dduire un schma de relation en 3 FN.
Relation
universelle

Ensemble
de DF

Algorithme de
synthse

Relation
en 3 FN
134

4 Conception et intgrit

Algorithme de synthse (2)


Une relation universelle : est une relation qui contient
tous les attributs du domaine dtude.
Couverture minimale (irrductible): est un sous
ensemble minimum de DF lmentaires permettant
de gnrer toutes les autres.
Thorme: Tout ensemble de DF admet une couverture
minimale, en gnral non unique

135

4 Conception et intgrit

Algorithme de synthse (3)


Exemple :
1- code_mod cod_filire
2- cod_filire libl_filire
3- Code_mod libl_filire
Transitivit de 1 et 2
4- Jour, heure, local num_ens
5- Jour, heure, local cod_filire Transitivit de 1 et 9
6- Jour, heure, local section
7- Jour, heure, local groupe
8- Jour, heure, local an_tude
9- Jour, heure, local cod_mod
10 - Jour, heure, local , num_ens cod-filire
Augmentation de 5
136

4 Conception et intgrit

Algorithme de synthse (4)


La couverture minimale est la suivante :
1- code_mod cod_filire
2- cod_filire libl_filire
3- Jour, heure, local num_ens
4- Jour, heure, local section
5- Jour, heure, local groupe
6- Jour, heure, local an_tude
7- Jour, heure, local cod_mod

137

4 Conception et intgrit

Algorithme de synthse (5)


Etapes de lalgorithme de synthse
Trouver lensemble IRR(F) contenant la couverture
irrductible (minimale) de F;
Partitionner lensemble IRR(F) en sous ensemble de Fi,
tels que toutes les DFs de Fi ont la mme partie gauche;
Pour chaque ensemble Fi de DFs, construire une relation
compose de tous les attributs formant les DFs de Fi, la
cl de la relation sera la partie gauche commune ces
DFs;
Traiter les attributs isols

138

4 Conception et intgrit

Algorithme de synthse (7)


Exercice

1- Code_mod libell_mod
2- Code_mod an_etude
3- Code_mod libell_filire
4- code_filire libell_filire
5- matricule nom_et
6- matricule adresse-et
7- matricule dat_nai_et
8- num_ens nom_ens
9- num_ens dat_nai_ens
10- num_ens grade
11-num_enssituation_familiale
12- num_ens salaire
13- grade nbre_heures

14- grade salaire


15- cod_mod coef
16- cod_mod cod_filire
17- matricule prenom_et
18- num_ens prenom_ens
19- num_ens adresse_ens
20- num_ens, gradenbre_heures
21- num_ens, grade salaire
22- num_ens nbre_heures
23- matricule section
24- matricule groupe
25-cod_mod,matriculecod_filire
139

4 Conception et intgrit

Algorithme de synthse (8)


Concevoir un schma relationnel en 3FN, partir de
cet ensemble de DFs en appliquant lalgorithme de
synthse.

140

Vous aimerez peut-être aussi