Vous êtes sur la page 1sur 0

TSDI SGBDR

Farih Said 1
Le Modle Entit Association
I. Introduction
1. Dfinition
Une base de donnes est un ensemble structur de donnes enregistres sur des supports informatiss,
pouvant satisfaire simultanment plusieurs utilisateurs de faon slective, en un dlai raisonnable.
Les Bases de Donnes occupent aujourd'hui une place de plus en plus importante dans les systmes
informatiques. Les Systmes de Gestion de Bases de Donnes (SGBD) remplacent les anciennes organisations
o les donnes, regroupes en fichiers, restaient lies une application particulire. Ils assurent le partage, la
cohrence, la scurit d'informations qui, de plus en plus, constituent le noyau de l'entreprise.
2. Pourquoi des bases de donnes ?
L'organisation des donnes en fichiers telle qu'elle est traditionnellement conue rpond des besoins
prcis : les services utilisent des informations le plus souvent distinctes pour des traitements diffrents. Dans
ce contexte, on constate l'apparition de nombreuses difficults :
Redondance des donnes : La rptition en diffrents endroits de donnes identiques pose de difficiles
problmes lors des mises jour ; chaque modification doit tre rpercute sur toutes les occurrences de
l'objet concern. Par exemple, le changement de nom d'un employ doit tre effectu aussi bien au service
du personnel qu' la comptabilit, etc.
Difficult d'accs aux donnes : les informations sont en effet dcrites de faon trs physique et ne
permettent pas un niveau d'abstraction suffisant pour envisager une interrogation directe et interactive
par un utilisateur final non spcialiste.
Problmes de partage des donnes : Le problme est bien connu des concepteurs de systmes
d'exploitation : comment ragir plusieurs ouvertures simultanes d'un mme fichier. Des problmes
identiques se posent ds que plusieurs utilisateurs dsirent effectuer des modifications sur les mmes
donnes.
Risques d'incohrence : Des liens smantiques existent trs souvent entre les donnes : le poste d'un
employ, figurant dans le fichier du service du personnel, n'est pas sans rapport avec le salaire qui lui est
vers par la comptabilit. Des incohrences apparaissent trop frquemment du fait de la difficult et du
cot qu'implique le contrle de "contraintes d'intgrit" liant les donnes entre elles.
Problmes de scurit : Qu'arrive-t-il si une panne interrompt un programme augmentant tous les
salaires de 3% ? Combien de modifications ont t prises en compte ; o reprendre le travail ? La prsence
de la mme information en plusieurs exemplaires n'est videmment pas de nature faciliter la tche du
SGBD et des programmes de reprise aprs panne. De mme, la confidentialit de l'information est plus
facile assurer avec une seule occurrence de l'information protger.
Une bonne solution ces problmes passe par le regroupement et l'unicit des donnes, ainsi que par la
centralisation des moyens de gestion de ces donnes. L'administration unique et centralise des donnes
l'chelle de l'entreprise garantit la cohrence de l'information et permet l'indpendance des programmes et
des donnes. Elle est mise en pratique par un Systme de Gestion de Bases de Donnes (SGBD). Le systme
logiciel qui met en uvre le modle de donnes (qui stocke les donnes, gre les accs, les droits des
TSDI SGBDR
Farih Said 2
utilisateurs, et plus gnralement traite au mieux l'ensemble des problmes que nous venons d'voquer)
forme vritablement le SGBD
Les outils offerts par le SGBD pour dcrire les donnes qu'il aura stocker repose sur un ensemble de
rgles et de concepts permettant de dcrire le monde rel (en fait une toute petite partie du monde rel : celle
sur laquelle portent les traitements). Ces rgles et concepts constituent un modle de donnes. Le modle
entit-association peut ici tre donn titre d'exemple.
II. Le modle entit-association (MEA)
1. Prsentation
Il est difficile de modliser un domaine sous une forme directement utilisable par un SGBD. Une ou
plusieurs modlisations intermdiaires sont donc utiles (une telle modlisation est appele Modle Conceptuel
de Donnes ou MCD), le modle entit-association constitue l'une des premires et des plus courantes.
Le modle entit-association est un outil (et une technique) d'analyse permettant de construire des
schmas thoriques de raisonnement sur des applications tournant avec les bases de donnes relationnelles.
Autrement dit, c'est un dessin qui reprsente les diffrents lments (entits) et leurs interactions
(associations), dans le systme qui nous intresse.
Bien connatre les rgles simples des schmas EA (aussi appel entits-relations) permet d'affiner petit
petit une application apparemment simple, sans avoir besoin de la programmer, et par consquent
d'conomiser du temps de conception tout en obtenant une plus grande souplesse au niveau de l'analyse.
Il est prsent de manire transparente ou plus visible, dans la plupart des logiciels de construction
d'applications de bases de donnes comme Access, Paradox, Oracle, SQL Server, Informix, Ingres, Sybase
Ce modle de donnes correspond une modlisation assez naturelle du monde rel. Le modle se
compose de trois concepts lmentaires : l'entit, l'association et les contraintes portant sur ces associations.
2. MERISE
La mthode dcrite ici est MERISE, elle est Franaise et a plus de 20 ans. Elle consiste concevoir un
Modle Conceptuel de Donne (MCD), le transposer en Modle Logique de Donnes Relationnelles (MLDR),
puis gnrer le Modle Physique correspondant (MPD). Cest la plus rpandue des techniques danalyse de
Base de Donne. Nous tudierons plus particulirement la construction du Modle Conceptuel de Donne et
de ses 5 caractristiques : Entits, Proprits, Identifiants, Associations, Cardinalits.
La conception dun schma correct est essentielle pour le dveloppement dune application viable. Dans
la mesure o la base de donnes est le fondement de tout le systme, une erreur pendant sa conception est
difficilement rcuprable par la suite. Le modle E/A a pour caractristiques dtre simple et suffisamment
puissant pour reprsenter des structures relationnelles. Surtout, il repose sur une reprsentation graphique
qui facilite considrablement sa comprhension.
3. Reprsentation graphique
Le modle entit-association est constitu de deux lments de base :
Les entits, qui sont des regroupements d'informations, et possdent des attributs (caractristiques);
Les associations qui sont les liens logiques entre les entits (et sont quantifies par des cardinalits).

TSDI SGBDR
Farih Said 3
Ce modle est mis en uvre par un langage de description.
Associ ati on
Forme Signification
Enti te

Reprsente un ensemble d'entit (table).
Ou
ou
Reprsente un ensemble d'associations.
est di ri g
0,1

Reprsente une liaison entre entit et attribut, ou
entre attribut et association
4. Composition du modle
a. Les entits (des ensembles)
Une entit est une population d'individus homognes (regroupements d'informations). Par exemple, les
produits ou les articles vendus par une entreprise peuvent tre regroups dans une mme entit articles.
Car d'un articles l'autre, les informations ne changent pas de nature ( chaque fois, il s'agit de la
dsignation, du prix unitaire, etc.).
Ex: les entits "clients", "produits" ou "fournisseurs", dans une base de donnes de magasin.
Par exemple, les articles et les clients ne peuvent pas tre regroups : leurs informations ne sont
pas homogne (un article ne possde pas d'adresse et un client ne possde pas de prix unitaire). Il faut donc
leur rserver deux entits distinctes : l'entit articles et l'entit client.
Client

Art icle

b. Les attributs (des caractristiques)
Les attributs sont les caractristiques ou les proprits dcrivant les entits et doivent tre reprsents
comme une liste de mots, la plus simple possible, dans le cadre de l'entit correspondante. On devra prciser
le type des donnes attendues pour chaque attribut.
Par exemple, si l'on considre l'entit "Client" les informations communes aux tre humains peuvent :
le nom
Client
Nom
Prenom
Tlphone
Adresse
Lieu du t ravail
Text e
Text e
Numrique
Text e
Text e
le prnom
le tlphone
l'adresse
lieu du travail etc...
Art icle
Numro art icle
Dsignat ion
Prix unit aire
Numrique
Text e
Monnaie
Et l'article peut contenir:
Numro article
Dsignation
Prix unitaire de vente
TSDI SGBDR
Farih Said 4
Les types associs aux attributs sont les suivants :
D Date
Annn Caractres de longueur nnn
BL Boolen (vrai / faux)
T Temps
DT Date Temps
N Nombre
S (Integer) entier
Les attributs peuvent tre:
Atomiques. Ex: Prnom, nom, ...
Composs. Ex: Date de naissance: 12 novembre 1955
Monovalus (une seule valeur pour une entit donne). Ex: Nom, Age.
Multivalus (plusieurs valeurs pour une entit donne).
Ex: Nom: Slimani Alaoui ou Adresse: 15 Rue Lakbir
De prfrence attributs simples et monovalus
c. Les associations (ou relations):
Lassociation sert dfinir laction quexercent les entits entre elles. Cest pour cela quon les dsigne
souvent par un verbe. Que fait le client ? Il passe des commandes. Il existe donc une action que fait le client
sur les commandes, et cette action est dcrite par le verbe passer.
Une association est une liaison logique qui a une signification prcise entre plusieurs entits. Dans
notre exemple, l'association commander est une liaison vidente entre les entits article et clients, tandis que
l'association livrer tablit le lien smantique entre les entits articles et fournisseurs.
Exemple : le fait que la "voiture x" appartienne la "personne y" est une association entre les entits
"Voiture" et "Personne".
Les associations se reprsentent dans une ellipse (ou un rectangle aux extrmits rondes), relie par des
traits aux entits qu'elles lient logiquement.
Exemple :
Cl i ent : 1
Nom
Prenom
Tl phone
Adresse
Li eu du travai l
Texte
Texte
Numri que
Texte
Texte
Arti cl e
Numro arti cl e
Dsi gnati on
Pri x uni tai re
Numri que
Texte
Monnai e
Commander : 1
Quanti t com
Date com
Numri que
Date
Fourni sseur
Numro Four
Adresse
Tl phone
Numri que
Texte
Numri que
Li vrer
Quanti t l i v
Date de l i v
Numri que
Date

Personne
N perso
Nom
Adresse
Numrique
Text e
Text e
Livre
ISBN
Tit re
Aut eur
Numrique
Text e
Text e
Emprunter
DateEmp Date
Exemples dassociation : l'emprunt d'un livre la bibliothque.
TSDI SGBDR
Farih Said 5
d. Cl ou identification d'une entit
C'est un attribut (ou un ensemble d'attributs) qui permet(tent) de distinguer un lment de l'entit de
manire unique et sans aucune ambigut par rapport l'ensemble des autres lments. Il s'agit de
l'identifiant que l'on souligne sur le schma,
Par exemple la cl de l'entit "tre humain" pourrait tre le nom. Mais comme le cas d'homonymie est
assez frquent, alors cet attribut constitue une mauvaise cl en gnral. Il est plus judicieux de crer un
nouvel attribut qui servira clairement de cl l'association.
Par convention. Le numro de client constitue un identifiant classique pour l'entit clients. Pour une
entit de type Voiture il pourrait tre fait usage de limmatriculation du vhicule comme cl de lentit.
Remarque1:
Chaque fois que l'on aura le choix entre la cration d'une cl numrique, et une cl naturelle mais
compose, il sera prfrable de crer une cl numrique, de trs rares exceptions prs. En effet les
SGBDR sont plus laise lorsquils ont manipuler des cls purement numriques (entier) que lon
pourra incrmenter automatiquement. De plus une cl est un concept purement informatique.
De plus une cl a intrt tre la plus courte possible afin que son stockage soit limit quelques
octets dans les fichiers et donc le temps de recherche le plus rapide possible.
On veillera donc prendre une cl totalement indpendante des attributs ordinaires de lentit.
Remarque2: L'association hirarchique ou CIF
Elle ne ressemble pas l'association prsente ci-dessus. C'est un autre type de relation.
i. Dfinition et terminologie
Une association entre deux entits est hirarchique si la ralisation de l'une des entits dtermine la
ralisation de la seconde.
Exemple 1 : La gestion des commandes clients obit une rgle tout fait gnrale qui est : une commande
n'est passe que par un seul client. Une deuxime rgle de gestion est : chaque commande est identifie par
un numro. Il rsulte de ces deux rgles que la connaissance d'un numro de commande permet la
connaissance du client qui a pass cette commande. L'inverse n'est pas possible bien sr. La relation "une
commande est passe par un client" sera donc reprsente par une association hirarchique.
Exemple 2 : Dans les tablissement scolaires on trouve ces deux rgles de gestion : un lve appartient
obligatoirement une classe ; un lve n'appartient qu' une seule classe. L'identification de l'lve entranera
l'identification de sa classe. L'inverse n'est pas possible. La relation "un lve fait partie d'une classe" sera donc
reprsente par une association hirarchique.
La terminologie est connatre. Une "association hirarchique" est aussi appele "Contrainte d'intgrit
fonctionnelle" (CIF). Elle est aussi appele "Relation pre-fils" car, on l'a constat dans les deux exemples ci-
dessus, la relation d'identification ne fonctionne que dans un sens. Un fils n'a qu'un pre ; un pre a plusieurs
fils. Un lve n'appartient qu' une classe ; une classe comporte plusieurs lves
Des caractristiques particulires : L'occurrence de la relation hirarchique est unique. Par exemple, la
relation lve-classe ne peut exister qu'une fois pour chaque lve. Il en rsulte :
que cette relation n'a pas besoin d'tre identifie.
que cette association n'est jamais porteuse de donnes.
TSDI SGBDR
Farih Said 6
ii. Reprsentation
Remarque : les cardinalits (ex : 1,1 ; 1,n) sont expliques ci-dessous.



Cette tape importante tant termine, il faut dterminer COMMENT ces associations sexercent. Il
sagit de dterminer les cardinalits.

Classe
Remarque3: Dpendance fonctionnelle
Un ensemble B dpend fonctionnellement dun ensemble A si la connaissance dun lment a A dtermine
au plus un lment b B. On dit alors que A dtermine B. A dtermine B
Exemple :
Dans une entreprise, chaque salari reoit un numro de matricule et un mme matricule ne peut
tre donn deux employs, donc la connaissance dun numro de matricule dtermine au plus un nom de
salari. De mme ce matricule dterminera au plus un prnom usuel. Il y a dpendance fonctionnelle entre le
matricule et le nom dune part et le matricule et le prnom usuel dautre part. Plusieurs salaris pouvant
porter le mme nom de famille, un nom pourra dterminer plusieurs prnoms : il ny a pas dpendance
fonctionnelle entre le nom de famille et le prnom.
iii. Dpendance fonctionnelle et CIF
Dans MEA, ces deux termes recouvrent globalement la mme notion. Le terme dpendance
fonctionnelle fait rfrence une notion mathmatique entre ensembles.
On dit que, entre deux ensembles A et B, il existe une dpendance fonctionnelle si un lment (a) de A
ne correspond qu'un lment (b) de B. On note cette dpendance A ---> B. On appelle A l'origine, et B la
cible de la dpendance fonctionnelle.
Dans une relation binaire, une cardinalit maxi 1 (0,1 ou 1,1) sur l'une des pattes induit
obligatoirement une dpendance fonctionnelle.
Dans l'exemple suivant, on dit usuellement que la relation "Appartenir" est (porteuse d') une
dpendance fonctionnelle. Il est inutile d'utiliser un symbole explicite.
1,1
0,n
Region
NReg
Nom
Numrique
Text e
Sect eur
NSect
Nom
Numrique
Text e
Appartenir

e. Les cardinalits (ou "combien" ?)
Les cardinalits, au sens arithmtique du terme, permettent de dnombrer les lments de l'entit
d'arrive en relation avec un lment de l'entit de dpart, et vice versa. Autrement dit, elles prcisent le
minimum et le maximum de fois qu'un individu de l'entit peut tre concern par l'association.
Pour cela, on se sert dune petite phrase magique que voici :
Est-ce que un(e) {ENTITE} peut {ACTION} plusieurs {AUTRE ENTITE}
Application : Occupons-nous de la relation passer entre Client et Commande, et posons-nous cette question
de lune des entit vers lautre, puis vice-versa :

lve

Classe
CIF

1,1 1, n
lve
TSDI SGBDR
Farih Said 7
Est-ce que un {Client} peut {passer} plusieurs {Commandes} La rponse est OUI,
Est-ce que une {Commande} peut {tre passe par} plusieurs {Clients} Cette fois la rponse est NON.
Chaque commande nest passe que par un seul client.
Donc cest le nombre de fois minimal et maximal d'intervention d'une entit dans une association. La
cardinalit minimale doit tre infrieure ou gale la cardinalit maximale.
Exemple de cardinalit : une personne peut tre propritaire de 0 n appartements, un appartement peut
avoir de 1 n propritaires. L'expression de la cardinalit est obligatoire pour chaque patte d'une association.
La cardinalit minimale peut-tre :
0 : Cela signifie qu'une entit peut exister tout en tant implique dans aucune association.
1 : Cela signifie qu'une entit ne peut exister que si elle est implique dans au moins une association.
n : Cela signifie qu'une entit ne peut exister que si elle est implique dans plusieurs associations.
Attention, le cas n est rare et pose problme. Il est prudent de l'viter.
La cardinalit maximale peut-tre :
0 : Cela signifie qu'une entit ne peut pas tre implique dans une association.
En toute logique, le cas 0 ne doit pas exister : il dmontre un problme de conception puisque lentit
est inutile lassociation. Il faut alors reconsidrer la cardinalit ou retirer la liaison entre lentit et
lassociation.
1 : Cela signifie qu'une entit peut tre implique dans au maximum une association.
n : Cela signifie qu'une entit peut tre implique dans plusieurs associations.
i. L'entit faible
La dfinition: Une entit a une existence propre, indpendante de celle des autres entits du systme.
Une entit qui ne peut tre identifi par ses seuls attributs propres est appele entit faible
Un constat : Dans la ralit, l'existence de certaines entits dpend de celle d'autres entits. Par
exemple, un secteur ne peut exister qu'au sein d'une rgion.
1,1
0,1
Region
NReg
Nom
Numrique
Text e
Sect eur
NSect
Nom
Numrique
Text e
Appartenir

L'identification de l'entit : L'identifiant d'une entit est absolu. Dans le cas d'une entit faible,
l'identification est relative. Un secteur est identifi par le couple : code rgion, numro secteur.
La smantique du lien entre l'entit faible et son entit forte : Le lien exprime une relation
d'appartenance.
Les cardinalits minimale et maximale qui expriment la participation d'une entit faible l'association
sont obligatoirement gales 1.
Il existe diffrents types d'associations:
Association "1 - 1":
A une occurrence de l'entit E1 peut correspondre au plus une occurrence de l'entit E2, et vice versa.
Ex: l'association "loue" liant deux entits "clients" et "voitures" d'une agence de locations de voitures, si
un client ne peut louer qu'une voiture la fois.
TSDI SGBDR
Farih Said 8
Association "1 - n":
A une occurrence de l'entit E1 peuvent correspondre plusieurs occurrences de l'entit E2, mais une
occurrence de l'entit E2 peut correspondre au plus une occurrence de l'entit E1.
Ex: l'association "possde" liant deux entits "clients" et "comptes" d'une banque.
Lorsque nous sommes en prsence dune relation un plusieurs, il faut reproduire lidentifiant de
lentit ct 1 dans lentit ct plusieurs
Association "n - m":
une occurrence de l'entit E1 peuvent correspondre plusieurs occurrences de l'entit E2, et vice versa.
Ex: l'association "achte" liant deux entits "clients" et "produits" d'un supermarch.
Lorsque nous sommes en prsence dune association plusieurs plusieurs, il convient toujours de se
poser les questions relatives aux donnes complmentaires, et tout particulirement les donnes historiques.
Exemple :
Considrons le cas de l'association "habite" et les deux entits "tre humain" et "appartement", les
cardinalits minimales et maximales sont les suivantes :
Sens "tre humain" vers "appartement" : 1 (minimum) et 1 (maximum);
Sens "appartement" vers "tre humain" : 0 (minimum) et n (maximum)
Ce qui signifie que dans cette modlisation un tre humain rside dans un appartement et un seul la
fois, mais quun appartement peut se trouver vide ou tre pourvu de plusieurs rsidents.
On note les cardinalits de chaque ct de l'association, sur les traits faisant la liaison entre l'association et
l'entit.
1,1
0,n
Appart ement
Numro appart
Bt iment
t age
Rue
Ville
Numrique
Text e
Numrique
Numrique
Text e
Reside
Et re humain
CIN
Lieu du t ravail
Nom
Prenom
Tlphone
Adresse
Numrique
Text e
Text e
Text e
Numrique
Text e

Pour dduire le type dune relation, il suffit de rcuprer les cardinalits maximales des deux cts de
lassociation, sans tenir compte de leur valeur exacte.
Ds cet instant, on peut en dduire le type de relation parmi les types suivants : 1/1, 1/n ou n/1 ou
encore n/m. Ici cest une relation de type 1,n.
ii. Cardinalit de l'association hirarchique
Rgles de gestion : Un ouvrage est publi par un diteur et un seul, un diteur peut diter un ou plusieurs
ouvrages.
Editer
CIF
1,n 1,1
Edit eur
NEdit
Nom
Adresse
Numrique
Text e
Text e
Ouvrage
ISBN
Aut eur
Numrique
Text e

Remarques diverses
Une entit ou une association est souvent nomme occurrence ou instance de son type.
Un attribut ne peut en aucun cas tre partag par plusieurs entits ou associations.
TSDI SGBDR
Farih Said 9
Il est parfois difficile de faire un choix entre une entit et une association. Par exemple, un mariage
peut tre considr comme une association entre deux personnes ou comme une entit pour lequel on
veut conserver un numro, une date, un lieu, ..., et que l'on souhaite manipuler en tant que tel.
Un mme concept du monde rel peut tre reprsent dans certains cas comme un attribut et dans
d'autres cas comme une entit, selon qu'il a ou non une existence propre. Par exemple, la marque d'une
automobile peut tre vue comme un attribut de l'entit vhicule de la base de donnes d'une socit mais
aussi comme une entit constructeur automobile dans la base de donnes dune agence de location de
voiture.
Lorsqu'on ne parvient pas trouver d'identifiant pour une entit, il faut se demander s'il ne s'agit pas
en fait d'une association. Si ce n'est pas le cas, un identifiant arbitraire numrique entier peut faire
l'affaire.
Lorsque toutes les pattes d'une association portent la cardinalit 1,1, il faut se demander si cette
association et les entits lies ne dcrivent pas en fait une seule entit.
Terminologie dattribut :
Simple, Complexe,
Monovalu (x:1), Multivalu (x:n),
Obligatoire(1:x), Facultatif (0:x)
iii. Cardinalit et dpendance fonctionnelle
Dans une relation de dimension > 2 (ternaire ou plus), la notion de dpendance fonctionnelle peut
impliquer tout ou partie des entits de la relation et n'est pas systmatiquement lie aux cardinalits. Elle a
donc une modlisation explicite et prend alors le nom de contrainte d'intgrit fonctionnelle, reprsente par
un rond not CIF, reli la relation porteuse (trait pointill) et aux entits concernes (trait plein) dont l'un
est porteur d'une flche (la cible de la CIF).
Dans l'exemple ci-dessous, qui voque une organisation d'un examen multi sites :
un Candidat est affect un Site,
un Site comporte des Salles,
l'examen comporte des Matires,
un Candidat compose une Matire dans une Salle,
pour une Matire, un Candidat ne compose que dans une Salle (CIF),
Pourtant une Matire peut tre compose par plusieurs Candidats et dans plusieurs Salles (1,n)
une Salle peut tre le lieu de composition de plusieurs Candidats et plusieurs Matires (1,n)
un Candidat peut composer dans plusieurs Matires et plusieurs Salles (1,n)
TSDI SGBDR
Farih Said 10
CIF CIF CIF CIF CIF
1,1
0,n
1,n
1,n
1,n
1,n
1,n
Si te
NSi te
Adresse
Numri que
Texte
Sal l e
NSal l e
Nom
Capaci t
Numri que
Texte
Numri que
Candi dat
NInscri p
Nom
Prenom
Numri que
Texte
Texte
Mati ere
CodeMat
Inti tul e
Numri que
Texte
Comporte
Affect Compose

Attention, ce sont les pattes de la relation qui portent les cardinalits et non celles de CIF. De plus la CIF
doit tre reli la relation laquelle la CIF s'applique.
5. Supplments
a. Associations plurielles
La plupart des associations sont de nature binaire, c'est dire composes de deux entits mises en
relation par une ou plusieurs associations. C'est le cas par exemple de l'association "est propritaire" mettant
en relation "tre humain" et "appartement".
Cependant il arrive qu'une association concerne plus de deux entits (on dit alors qu'il s'agit
d'association "n-aires").
1,n
1,1
0,n
Appart ement
Numro appart
Bt iment
t age
Rue
Ville
Numrique
Text e
Numrique
Numrique
Text e
Numro appart <pi>
Concerne
Et re humain
CIN
Lieu du t ravail
Nom
Prenom
Tlphone
Adresse
<pi> Num
Text e
Text e
Text e
Num
Text e
Agence
Numro cont rat
Dat e chance
Type de cont rat
Prix
Numrique
Dat e
Text e
Monnaie
Numro cont rat <pi>

Exemple :
Mais dans ce cas il y a de grandes difficults pour exprimer les cardinalits. On aura tout intrt
essayer de transformer le schma de manire n'obtenir que des associations binaires.


TSDI SGBDR
Farih Said 11
1,1
0,n
0,1
0,n
0,n
1,1
Appart ement
Numro appart
Bt iment
t age
Rue
Ville
Numrique
Text e
Numrique
Numrique
Text e
Numro appart <pi>
Et re humain
CIN
Lieu du t ravail
Nom
Prenom
Tlphone
Adresse
<pi> Num
Text e
Text e
Text e
Num
Text e
Agence
Numro cont rat
Dat e chance
Type de cont rat
Prix
Numrique
Dat e
Text e
Monnaie
Numro cont rat <pi>
Possede
Negocie
Concerne

b. Attributs d'associations
Il arrive parfois que l'on soit oblig de munir d'attributs des associations. Considrons par exemple, que
nous voulons modliser les relations existantes entre les entits "client", "commande" et "article" :
Exemple :
1,n
1,1
1,n 0,n
Commande
NumroArt
Dat e
Paiment
Messager
Numrique
Dat e
Monnaie
Text e
NumroCom <pi>
est composee
Client
NClient
Nom
Prenom
Tlphone
Adresse
Lieu du t ravail
Numrique
Text e
Text e
Numrique
Text e
Text e
NClient <pi>
Commander
Art icle
NumroArt
Dsignat ion
St ock
Prix unit aire
Numrique
Text e
Numrique
Monnaie
NumroArt <pi>

Mais comment dans ce schma introduire l'attribut "quantit" et plus encore l'attribut "rduction" dont
on voudrait qu'il puisse s'appliquer chacun des articles d'une commande de manire diffrente ?
En effet si l'on introduit l'attribut quantit l'entit Commande, chaque ligne de la commande se verra
dote de la mme quantit...
D'autre part si l'on introduit l'attribut quantit l'entit ARTICLE alors chacun des articles se verra dot
de la mme quantit quelque soit la commande...
1,n
1,1
1,n 0,n
Commande
NumroArt
Dat e
Paiment
Messager
Numrique
Dat e
Monnaie
Text e
NumroCom <pi>
est composee
Quantit
Remise
Numrique
Numrique
Client
N Client
Nom
Prenom
Tlphone
Adresse
Lieu du t ravail
Numrique
Text e
Text e
Numrique
Text e
Text e
N Client <pi>
Commander
Art icle
NumroArt
Dsignat ion
St ock
Prix unit aire
Numrique
Text e
Numrique
Monnaie
NumroArt <pi>

La solution est de pourvoir l'association "Est compose" des attributs "quantit" et "rduction" :




TSDI SGBDR
Farih Said 12
c. Association rflexive
Il est permis une association d'tre branche plusieurs fois la mme entit, comme par exemple :
Un Contrat est lavenant dun Contrat prcdent
Un Projet est la suite dun autre Projet
Un Article de dcompose en Articles
A partir dun Diplme, on peut obtenir dautres Diplmes
Les cardinalits maxi peuvent tre 1 ou n, selon le cas. Les cardinalits mini sont obligatoirement 0
(sinon on cre une boucle sans fin). Pour distinguer chaque patte , on lui affecte un rle.
Exemple 1:
Est compos de Est compos de Est compos de Est compos de Est compos de
Composant Composant Composant Composant Composant
0,n
0,n
Arti cl eX
Ref
Inti tul e
Numri que
Texte
Ref <pi >
Nommer

Exemple 2 :
0,n
0,1
Empl oye
NEmp
Nom
Prenom
Sal ai re
Servi ce
Numri que
Texte
Texte
Monnai e
Texte
NEmp <pi >
Di ri ge

Dans cet exemple, tout employ est dirig par un autre employ (sauf le directeur gnral) et un employ
peut diriger plusieurs autre employs, ce qui explique les cardinalits sur le schma.
d. Spcialisation
Supposons quon ait dans une socit de vente deux types de clients : ceux qui demandent seulement
des informations appels Client prospect et ceux qui achtent quelque chose appels Client
portefeuille , les deux clients sont suivis par un reprsentant.
Sans spcialisation, le schma serait le suivant : (on distingue les deux par un code prospection)
1,1
0,n
0,n
1,1
Client el
NumlCli
Nom
Adresse
CodeProp
<pi> Numrique
Text e
Text e
Boolen
<O>
NumlCli <pi>
Represent ant
NumRep
NomRep
Dat eEmbauche
Commission
Numrique
Text e
Dat e
Rel
NumRep <pi>
Commande
NumCom
Dat eCom
Numrique
Dat e
NumCom <pi>
Passer
Suivre

TSDI SGBDR
Farih Said 13
Rien ne permet la lecture de ce schma de prciser quels sont les clients qui ont pass une commande,
ni de savoir que le code prospection n'a un sens que pour certains d'entre eux.
La spcialisation permet donc d'amliorer la smantique du modle en exprimant :
Le fait que le code prospection est une proprit spcifique des clients prospects.
Que tous les clients portefeuille et eux seuls ont pass une commande (dfinition de leur rle).
0,n
1,1
0,n
0,n
0,n
0,n
Cl i ent portefeui l l e
Numl Cl i
Nom
Adresse
CodeProp
<pi > Numri que
Texte
Texte
Bool en
<O>
Numl Cl i <pi >
Representant
NumRep
NomRep
DateEmbauche
Commi ssi on
Numri que
Texte
Date
Rel
NumRep <pi >
Commande
NumCom
DateCom
Numri que
Date
NumCom <pi >
Passer
Sui vre
Cl i ent prospect
Numl Cl i
Nom
Adresse
CodeProp
<pi > Numri que
Texte
Texte
Bool en
<O>
Numl Cl i <pi >
Sui vre2

Un sous-type peut donc tre cr lorsqu'un sous-ensemble d'occurrences d'une entit ont des proprits
spcifiques et/ou participent des associations spcifiques.
e. Gnralisation (hritage) (ramifier les espces)
Spcialisation : division dun ensemble dentits en sous-classes.
Gnralisation : regroupement dun ensemble dentits en une.
Les clients prospects et les clients portefeuille sont dcrits par un certain nombre de proprits
identiques, communes tous les clients. Les associations qui concernent l'ensemble des clients (ici, "suivre")
sont exprimes au niveau de chaque sous-type de client.
Exemple 1:
Heri tage_1
Voi ture
NbrPassager
Vi tesseMax
Coul eur
Numri que
Enti er
Texte
Cami on
Tare
Attel age
Numri que
Enti er
Vehi cul e
NIdenti f
Immatri cul ati on
Pri x
<Indfi ni >
<Indfi ni >
Monnai e
NIdenti f <pi >

Exemple 2:
Si on prend l'exemple de "Propritaire", les entits "Personne physique" (des tres humains) et "Personne
morale" (des socits, associations, collectivits, organisations) sont gnralises dans l'entit "Propritaire".
TSDI SGBDR
Farih Said 14
On dit aussi que l'entit "Propritaire" est une entit parente et que les entits "Personne morale" et "Personne
physique" sont des entits enfants, car il y a une notion dhritage...
Exemple 3:
Lentit "tre humain" est une gnralisation pour toute entit faisant appel une personne, comme les
entits "tudiant", "Client", "Artiste", "Patient"les appelle aussi "entits-gnriques".
La gnralisation permet de simplifier le modle en mettant en facteur les proprits et les associations
communes toutes les entits. Une entit gnrique peut donc tre cre lorsque des entits ont des
proprits communes et ventuellement participent des associations communes.
f. Les entits encapsuls .
Certains ateliers de modlisation reprsentent les donnes sous la forme dentits encapsuls .
Exemple :
Ani mal
NumAni m
Nom
Coul eur
Numri que
Texte
Texte
Chi en
NumC
Categori e
Age
Race
Numri que
Texte
Enti er
Texte
NumC <pi >
Oi seau
NumO
Ori gi ne
Type
Numri que
Texte
Texte
NumO <pi >

g. Personnalisation (ou les sous-modles)
Une personnalisation est un regroupement dans une super entit de plusieurs entits munies d'une ou
de plusieurs associations.
Par exemple, une compagnie d'aviation proposant des vols peut modliser le planning des pilotes par le
schma suivant :
1,1
0,1
0,n
Vol
NumV
TypeAvi on
<pi > Numri que
Texte
<O>
NumV <pi >
Date
Data <pi > Date <O>
Identi fi ant_1 <pi >
Pi l ote
NumP
Nom
<pi > Numri que
Texte
<O>
NumP <pi >
Ayant l i eu
Est pi l ot par

h. L'agrgation sur les associations (ou associations d'associations)
Le concept d'agrgation sur les associations propos par J.M. Smith et D.C.P. Smith en 1977 permet de
considrer une association comme un objet de plus haut niveau. L'association peut alors tre considre
comme un tout ; cela permet notamment d'exprimer des associations avec cet "objet".
TSDI SGBDR
Farih Said 15
Considrons le schma ci-dessous :
0,1
0,n
0,n
Produi t
Ref
Inti tul e
Numri que
Texte
Ref <pi >
Rayon
NomReg
NumRay
<pi >
<pi >
Texte
Numri que
<O>
<O>
NAuto <pi >
Vendeur
NumVend
NomV
DateEmb
Commi sson
Numri que
Heure
Date
Rel
NumVend <pi >
Avoi r pour responsabl e

Ce schma entit-association est correct ; il ne permet cependant pas de reprsenter qu'un seul
reprsentant est responsable d'un type de produit sur un secteur. Il est donc porteur d'incohrences par
rapport la ralit.
Le modle entit-association a fait l'objet d'extension pour pouvoir exprimer cette contrainte. Nous
donnons ci-aprs diffrentes reprsentations possibles du concept d'agrgation sur les associations.
Le schma propos l'origine est le suivant :
0,1 0,1 0,1 0,1 0,1
0,n
0,1
0,n
Produi t
Ref
Inti tul e
Numri que
Texte
Ref <pi >
Rayon
NomReg
NumRay
<pi >
<pi >
Texte
Numri que
<O>
<O>
NAuto <pi >
Vendeur
NumVend
NomV
DateEmb
Commi sson
Numri que
Heure
Date
Rel
NumVend <pi >
Avoi r pour responsabl e
Commerci al i ser sur

Au sens de MEA, l'association "tre responsable" est une dpendance fonctionnelle ; un schma
quivalent (avec toutefois une perte smantique due la perte du nom de l'association) est le suivant :
0,1 0,1 0,1 0,1 0,1
0,1 0,n
0,n
Produi t
Ref
Inti tul e
Numri que
Texte
Ref <pi >
Rayon
NomReg
NumRay
<pi >
<pi >
Texte
Numri que
<O>
<O>
NAuto <pi >
Vendeur
NumVend
NomV
DateEmb
Commi sson
Numri que
Heure
Date
Rel
NumVend <pi >
Commerci al i ser sur
DF

TSDI SGBDR
Farih Said 16
D'autres auteurs "merisiens" ont propos les reprsentations suivantes et parlent alors d'association
d'associations :
0,1 0,1 0,1 0,1 0,1
0,1 0,n
0,n
Produi t
Ref
Inti tul e
Numri que
Texte
Ref <pi >
Rayon
NomReg
NumRay
<pi >
<pi >
Texte
Numri que
<O>
<O>
NAuto <pi >
Vendeur
NumVend
NomV
DateEmb
Commi sson
Numri que
Heure
Date
Rel
NumVend <pi >
Commerci al i ser sur
Avoi r pour responsabl e

Une autre approche des associations d'associations : Considrons le schma suivant :
0,1
0,n
0,n
0,n
0,1
Produi t
Ref
Inti tul e
Numri que
Texte
Ref <pi >
Rayon
NomReg
NumRay
<pi >
<pi >
Texte
Numri que
<O>
<O>
NAuto <pi >
Vendeur
NumVend
NomV
DateEmb
Commi sson
Numri que
Heure
Date
Rel
NumVend <pi >
Commerci al i ser sur
Avoi r pour responsabl e

i. Regroupement d'entits (pour viter la redondance)
Il arrive parfois que certaines entits apparaissent comme redondantes. Dans ce cas, et pour gagner de
la place en matire de stockage de l'information, il convient de regrouper ces entits dans une seule et mme
table du SGBDR en ajoutant un champ supplmentaire cette table de manire permettre de distinguer les
entits du schma thorique.
Par exemple si l'on dsire modliser une gestion d'une quipe, on peut crer une entit "Joueur" et une
entit "Manager". Mais on constate qu'une grande majorit de joueurs sont leurs propres manager, ce qui
signifie qu'une mme personne peut se trouver prsente dans les deux entits. Pour rsoudre ce problme il
suffit de construire une seule table pour les deux entits (par exemple une table "quipe") et d'y ajouter un
champ permettant de distinguer le type de "quipier" : joueur ou manager ou les deux.


TSDI SGBDR
Farih Said 17
Exemple rcapitulatif :
Dans une socit de service aprs vente, on a les contraintes suivantes :
Tout employ (ou salari) peut se rattacher aux plusieurs services avec ventuellement des suprieurs, et qui
doit travailler dans un seul atelier, dans son travail, il peut intervenir dans des rparations pour diffrents
clients, et pendant ce temps, il peut consommer des matriels composables.
Les cardinalits doivent reflter la ralit le plus touchant possible.


1,n
0,n 0,1
0,n
0,n
1,1
1,1
0,n
1,1
1,n
0,n
0,n 0,n
0,n
0,n
1,1
1,n
0,n
Sal ari
NumSal
Nom
Prenom
Foncti on
Numri que
Texte
Texte
Texte
NumSal <pi >
Atel i er
NumAtl
NomAtl
Numri que
Texte
NumAtl <pi >
Servi ce
NumSrv
NbrEmp
Spci al i t
Numri que
Enti er
Texte
NumSrv <pi >
Rparati on
NumRep
NomRep
Cot
Numri que
Texte
Monnai e
NumRep <pi >
Matri el
NumMat
NomMat
TypeMat
Numri que
Texte
Texte
NumMat <ai 1>
Cl i entel l e
NumCl i
NomCl i
Adresse
Vi l l eCl i
Tl phone
Numri que
Texte
Texte
Texte
Numri que
NumCl i <pi >
Interventi on
NumIntv
NatureIntv
DateArv
DateOk
Numri que
Texte
Date
Date
NumIntv <pi >
Regroupe
Travai l l e
Sup. hi rarchi que
Demande
Composer
Concerne
Uti l i se
Effectue
Respnsabl e

TSDI SGBDR
Farih Said 18

III. La normalisation
1. Dfinition
Normaliser un schma relationnel c'est le remplacer par un schma quivalent o toutes les relations
vrifient certaines proprits. Ces proprits sont bases sur l'analyse des dpendances fonctionnelles
lintrieur de chaque relation.
La normalisation permet de:
viter les redondances (perte de place et incohrences) ;
Minimiser lespace de stockage ;
viter les problmes de mises jour.
Un bon schma entitsassociations doit rpondre 9 rgles de normalisation
2. But et Principe
Parmi les raisons plus spcifiquement lies au relationnel, la normalisation apporte :
Des requtes plus simples crire,
Des donnes plus facilement accessibles ;
Une meilleure intgrit des donnes ;
La diminution des erreurs lors de linsertion ou de la suppression de nouvelles donnes ;
Et une utilisation optimale des ressources.
Une forme normale est une mthode de classification de table qui repose sur les dpendances
fonctionnelles (DF) quelle comprend et La dpendance de plusieurs valeurs (DPV).
Une dpendance fonctionnelle (DF) signifie que si lon connat la valeur dun attribut on peut toujours
dterminer la valeur dun autre attribut. La notation utilise dans la thorie relationnelle est une flche
entre les deux attributs, par exemple A B snonce A dtermine B . Si on connat le numro de
salari dans lentreprise on peut trouver son nom.
La dpendance de plusieurs valeurs (DPV) signifie que si lon connat la valeur dun attribut on peut
toujours dterminer les valeurs dun ensemble dautres attributs. La notation retenue dans la thorie
relationnelle est une flche double pointe entre les deux attributs, par exemple A B snonce A
dtermine plusieurs B . Si on connat le nom dun professeur on peut dterminer la liste de ses tudiants.
La comprhension des DF et les DPV joue un rle essentiel dans celle des formes normales.
a. Normalisation des entits
Toutes les entits qui sont remplaables par une association doivent tre remplaces.
Sur lexemple suivant issu dun cinma, lentit projections est uniquement entoure dassociations dont
les cardinalits maximales sont 1 ct projections et n de lautre ct. De plus, la donne
dun crneau, dun film et dune salle suffit dterminer une projection unique. On peut donc la remplacer
par une association projeter branche aux trois entits salles, crneaux horaires et films. On parle alors
dassociation ternaire.
TSDI SGBDR
Farih Said 19
0,n
1,1
1,1
0,n
1,1
0,n
Horai res
NHor
Date
Heure Deb
<pi > Numri que
Date
Heure
<O>
NHor <pi >
Proj ecti ons
NProj
Tari f
<pi > Numri que
Monnai e
<O>
NProj <pi >
Sal l es
NSal
Capaci t
Numri que
Numri que
<O>
NSal <ai 1>
Fi l ms
NFi l m
Ti tre
Dure
<pi > Numri que
Texte
Numri que
<O>
NFi l m <pi >
Avoi r l i eu dans
Avoi r l i eu pendant
Concerner



0,n
0,n
0,n
Horai res
NHor
Date
Heure Deb
<pi > Numri que
Date
Heure
<O>
NHor <pi >
Sal l es
NSal
Capaci t
Numri que
Numri que
<O>
NSal <ai 1>
Fi l ms
NFi l m
Ti tre
Dure
<pi > Numri que
Texte
Numri que
<O>
NFi l m <pi >
Proj rter
Tari f Monnai e

Entit remplaable par une association ternaire (unicit de la projection dun tel film dans telle salle
tel crneau.
b. Normalisation des noms
Le nom dune entit, dune association ou dun attribut doit tre unique. Conseils:
Pour les entits, utiliser un nom commun au pluriel (par exemple : Clients)
Pour les associations, utiliser un verbe linfinitif (par exemple: Effectuer, Concerner) ventuellement
la forme passive (tre command) et accompagn dun adverbe (avoir lieu dans, pendant, )
Pour les attributs, utiliser un nom commun singulier (par exemple: nom, numro, libell, description)
ventuellement accompagn du nom de lentit ou de lassociation dans laquelle il se trouve
(par exemple: nom de client, numro darticle).
Remarque: lorsquil reste plusieurs fois le mme nom, cest parfois symptomatique dune modlisation qui
nest pas termine ou le signe dune redondance.
Fusi on Fusi on Fusi on Fusi on Fusi on
Etudi ants
NEtud
Nom
Prenom
Adresse
<pi > Numri que
Texte
Texte
Texte
<O>
NEtud <pi >
Ensei gnants
NEns
Nom
Prenom
Adresse
<pi > Numri que
Texte
Texte
Texte
<O>
NEns <pi >
Personnes
NPers
Nom
Prenom
Adresse
<pi > Numri que
Texte
Texte
Texte
<O>
NPers <pi >

Deux entits homognes peuvent tre fusionnes
TSDI SGBDR
Farih Said 20
1,1 0,n
Cl i ents
Numl Cl i
Nom
Tl phone
Adresse Li v
<pi > Numri que
Texte
Numri que
Texte
<O>
Numl Cl i <pi >
Commande3
NumCom
DateCom
Adresse Li v
Numri que
Date
Texte
NumCom <pi >
Passer

Redondance de l attribut Adresse de livraison, donc risque de dincohrence
c. Normalisation des identifiants
Chaque entit doit possder un identifiant. Conseils:
viter les identifiants composs de plusieurs attributs (comme par exemple un identifiant form par les
attributs nom et prnom), car dune part cest mauvais pour les performances et dautres part, lunicit
suppose par une telle dmarche finit tt ou tard par tre dmentie;
Prfrer un identifiant court pour rendre la recherche la plus rapide possible (viter notamment les
chanes de caractres comme un numro de plaque dimmatriculation, un numro de scurit sociale ou
un code postal)
viter galement les identifiants susceptibles de changer au cours du temps (comme les plaques
dimmatriculation ou les numros provisoires).
Conclusion: lidentifiant sur un schma entits-associations (et donc la future cl primaire dans le schma
relationnel) doit tre un entier, de prfrence incrment automatiquement.
d. Normalisation des attributs
Remplacer les attributs en plusieurs exemplaires en une association supplmentaire de cardinalits
maximales n et ne pas ajouter dattribut calculable partir dautres attributs. En effet, dune part, les attributs
en plusieurs exemplaires posent des problmes dvolutivit du modle (sur lexemple suivant comment faire
si un employ a deux tlphones secondaires?)
Cl i ents
NumCl i
NomF
Fi xePortabl e
Tl phone1
Tl phone2
<pi > Numri que
Texte
Bool en
Numri que
Numri que
<O>
Numl Cl i <pi >
1,1
0,n
Cl i ents
NumCl i
NomF
<pi > Numri que
Texte
<O>
Numl Cl i <pi >
Tl phones
NumNPho
NPho
Fi xePortabl e
Numri que
Date
Bool en
NumNPho <pi >
Possder

Attributs en plusieurs exemplaires remplacs par une association supplmentaire.
e. Normalisation des attributs des associations
Les attributs dune association doivent dpendre directement des identifiants de toutes les entits en
association.
Par exemple, la quantit commande dpend la fois du numro de client et du numro darticle, par
contre la date de commande non. Il faut donc faire une entit commandes part, idem pour les livraisons.
TSDI SGBDR
Farih Said 21
1,n 0,n
1,1 1,n
1,n
1,n
1,1
1,n
Commande
NumroCom
Date
Pai ment
Messager
<pi > Numri que
Date
Monnai e
Texte
<O>
NumroCom <pi >
est composee
QtCom Numri que
Cl i ent
NCl i ent
Nom
Prenom
Tl phone1
Fi xxePortabl e
Li eu du travai l
Numri que
Texte
Texte
Numri que
Bool en
Texte
NCl i ent <pi >
Commander
Arti cl e
NumArt
Dsi gnati on
Stock
Pri x uni tai re
<pi > Numri que
Texte
Numri que
Monnai e
<O>
NumroArt <pi >
Li vrai sons
NumLi v
DateLi v
<pi > Numri que
Date
<O>
NumLi v <pi >
Fourni sseurs
NumFour
Nom
Tl phone
<pi > Numri que
Texte
Numri que
<O>
NumFour <pi >
Li vrerProdui ts
NomFour Texte
Li vrer
QtLi v Numri que

Autre consquence de la normalisation des attributs des associations : une entit avec une cardinalit de 1,1
ou 0,1 aspire les attributs de lassociation.
1,1
1,n
Li vrai sons
NumLi v
DateLi v
NomFour
<pi > Numri que
Date
Texte
<O>
NumLi v <pi >
Fourni sseurs
NumFour
Nom
Tl phone
<pi > Numri que
Texte
Numri que
<O>
NumFour <pi >
Li vrerProdui ts

f. Normalisation des associations :
Il faut liminer les associations fantmes, redondantes ou en plusieurs exemplaires.
1,1
1,1
Fourni sseurs
NumFour
NomF
Adresse
<pi > Numri que
Texte
Texte
<O>
NumFour <pi >
Contacts
NumCont
NomC
Tl phoneC
<pi > Numri que
Texte
Numri que
<O>
NumCont <pi >
Travai l l e chez
Fourni sseurs1
NumFour
NomF
NomC
Tl phoneC
Adresse
<pi > Numri que
Texte
Texte
Numri que
Texte
<O>
NumFour <pi >

Fusion
g. Normalisation des cardinalits
Une cardinalit minimale est toujours O ou 1 (et pas 2, 3) et une cardinalit maximale est toujours 1
ou n (et pas 2, 3, ...). Cela signifie que si une cardinalit maximale est connue et vaut 2, 3 ou plus (pour un
nombre limit demprunts dans une bibliothque), alors on considre quand mme quelle est indtermine et
vaut n. Cela se justifie par le fait que mme si on connat n au moment de la conception, il se peut que cette
valeur volue au cours du temps. Il vaut donc mieux considrer comme une inconnue ds le dpart. Cela
signifie galement quon ne modlise pas les cardinalits minimales qui valent plus de 1 car ce genre de
valeur est aussi amen voluer. Par ailleurs, avec une cardinalit maximale de O, lassociation naurait
aucune signification.

TSDI SGBDR
Farih Said 22
3. Les Formes Normales
Normaliser une base consiste appliquer des rgles regroupes sous la dnomination de Formes
normales . Normal Form en anglais, not NF prcd du numro de la forme comme 1NF pour la 1
re
forme
normale.
a. Premire forme normale (1NF)
un instant donn dans une entit, pour un individu, un attribut ne peut prendre quune valeur et non
pas, un ensemble ou une liste de valeurs. Si un attribut prend plusieurs valeurs, alors ces valeurs doivent faire
lobjet dune entit supplment en association avec la premire.
Exemple :
Un livre dans certains cas peut tre crit par plusieurs auteurs :
Ouvrage
ISBN
Ti tre
Anne
NbrPages
Auteur
<pi > Numri que
Texte
Date
Numri que
Texte
<O>
ISBN <pi >

1,n
1,n
Ouvrage
ISBN
Ti tre
Anne
NbrPages
<pi > Numri que
Texte
Date
Numri que
<O>
ISBN <pi >
Auteurs
NumAut
Nom
Adresse
<Indfi ni >
Texte
Texte
NumAut <pi >
Ecri re

Cette rgle stipule que les champs de chaque table doivent tre atomiques et quil ne peut exister de
champs rptitifs. De plus, chaque champ doit avoir une signification prcise constante dans le temps.
Nom Prnom Adresse Ville Indicatif
Hassan Rachidi 21 rue des Saada Casa, 022
Houda Moutie 45 avenue Nachat Fs, 035
Wafae Wafi 123 bis rue Farah Marrakech, 042
Pourquoi cette table nest-elle pas conforme la 1
re
forme normale ?
La raison principale est que les champs ne sont pas tous atomiques. Par exemple le champ Nom
Prnom contient la fois nom et prnom, il est possible de dcouper ce champ sans faire perdre de sens
linformation, ce qui en faciliterait mme laccs et le tri. De la mme faon, le champ ville Indicatif intgre
le numro de lindicatif, ce qui nest pas trs pratique si on dsire sortir, par exemple, la liste de toutes les
personnes de la rgion centre. Dans un tel cas il faudra analyser chaque enregistrement en esprant que la
saisie est homogne (que la virgule est toujours prsente, quil ny a pas de caractres non valides, etc).
En fait, pour faire que cette table rponde la 1
re
forme normale, il faudra la restructurer pour quelle
ressemble celle-ci :

Nom Prnom Adresse Ville Indicatif
Rachidi Hassan 21 rue des Saada Casa 022
Moutie Houda 45 avenue Nachat Fs 035
Wafi Wafae 123 bis rue Farah Marrakech 042



Exemple 2:
Numro Hassan Wafae Houda
01 James Bond Casawa
02 Alice au pays... Ali Zawa Tintin
09 Heat
Cette table ne rpond-t-elle pas la 1
re
forme normale ?
TSDI SGBDR
Farih Said 23
En effet, la 1
re
forme normale stipule que les champs ne peuvent pas tre rptitifs. De fait, on
comprend que chercher qui a emprunt Tintin obligera balayer chaque enregistrement puis rechercher
la prsence de ce titre dans chacune des trois colonnes.
Dans notre exemple, la normalisation nous fera crer deux tables qui ressembleront :

Table Emprunteur
Numro Emprunteur
01 Hassan
02 Wafae
Table Film
Numro Titre
01 James Bond
02 Alice au pays...
09 Heat
01 Casawa
02 Ali Zawa
02 Tintin
09 Houda


Il faut noter quon suppose quici le champ Numro est la cl primaire de la table des emprunteurs et
m est la cl primaire de la table des Films. De ce fait, le champ Numro de la table des
emblera :
que le champ Fil
Films est une cl trangre. Dun point de vue conceptuel, le MCD ress
0,1
Emprunteur
0,n Fi l m
Emprunter
Numro
Nom
Numri que
Texte
Ti tre Texte
Ti tre <pi >
Numro <pi >

Exemple 3:
La table suivante (suivi de production dune ferme):
Animal Date Qt
Poule10 08/01/2007 2
Vache07 08/01/2007 5
Poule09 08/01/2007 1
Vache04 08/01/2007 10
Vache12 08/01/2007 9
Il sera trs difficile de faire des statistiques de production par jour, par exemple, car le champ
Qua bre doeufs, et dautres fois des litres de lait.
b. Seconde forme norm
Une relation respecte la seconde forme normale lorsque toutes ses proprits non-cl sont totalement
dpendantes fonctionnellement de la totalit de la cl primaire.
Si X et Y sont des colonne ue X est ui est un sous-ensemble de X, il ne
peut y avoir Z Y.
ntit reprsente une fois un nom
ale (2NF)
s et q une cl, alors pour tout Z q
Considrons la table suivante :
TSDI SGBDR
Farih Said 24
NumSalari Nom NumProjet NbrHeures
36 Hassan 1 18,5
36 Hassan 2 6,7
30 Ahmed 2 8,5
42 Houda 3 23,5
42 Houda 1 4,8
Bien que cette table respecte la 1
re
forme normale, elle ne respecte par la seconde.
Dans un premier temps on doit dterminer o se trouve la cl primaire. Si on Choisit la premire
solution: Numro de salari + Numro de projet.
Maintenant que la cl primaire a t dfinie, regardons les champs non-cl : Nom et Heures.
Les heures sont en totale dpendance fonctionnelle avec la totalit de la cl puisque cette proprit
co aison permet disoler un compte
dheures unique.
dun autre , ne dpend pas de la totalit de la cl primaire. En fait il ne dpend
que dun morceau de celle-ci, le numro de salari.
ait cho + Num
ncerne la fois un individu et un projet et que seule cette combin
Le nom du salari, ct
Si on isi Nom ro de projet aurait le mme problme avec le
numro de salari qui ne dpendrait que du nom et non de la totalit de cl.
oit tre scinde en deux autres tables qui seront :
pour la cl primaire on
De fait, cette table d



NumSalari NumProjet



Chacune de ces tables rpond maintenant aux exigences de la premire et de la seconde forme normale.
La premire ayant pour cl primaire le numro de salari, la seconde la combinaison numro de salari +
numro de projet.
Ce quon peu ant rim B) et que (B
C), on peut en dd une relation transitive entre A et C et la table nest
pas dans la 3NF.

c. Troisime forme normale (3NF)
Une relation est dite dans la troisime forme normale si aucun champ non-cl nest en dpendance
transitive avec la cl primaire.
t noter aussi : soit trois colonnes (A, B, C), A t la cl p aire, si (A
uire que (A C), dans ce cas il existe
Si la valeur dun champ non-cl peut tre dduite de la valeur dun autre champ non-cl alors sa
relation la cl primaire est, par force, transitive (puisquelle transite par un autre champ) et la table nest
pas dans la troisime forme normale. La table suivante :
Nom Numro Date Naissance NumService Service NumChef
Hassan 5001 15/01/1968 5 Vente 4580
Houda 5002 12/04/1977 6 Informatique 4120
NumSalari Nom
36
NbrHeures
36 1 18,5
Hassan
36 2 6,7
30 Ahmed
42 Houda
30 2 8,5
42 3 23,5
42 1 4,8
TSDI SGBDR
Farih Said 25
sible de dterminer le nom du
servic
r enregistrement
m e temps les informations concernant le servi
son c pellation danomalie de suppression
e la m uveau service dans lentre e nou jouter tant
problme est connu sous le nom danomalie dinsertion.
En d
Le nom du service ainsi que le numro du salari et du chef de service sont lis la cl primaire par
une relation transitive qui passe par le code du service. Il est effectivement pos
e et le code salari de son chef uniquement partir du code service.
Quel problme ltat actuel va-t-il poser ?
Cela se rapproche beaucoup de celui pos dans lexemple fourni pour la seconde forme normale : si
nous supprimons tous les employs dun service donn, lors de la suppression du dernie
nous perdrons irr diablement dans le mm ce lui-mme (son
nom et hef). Cela est connu sous lap .
D me faon, si on cr un no pris s ne pourrons pas la
quil ny aura pas un salari affect ce service. Ce
coupant la table exemple en deux autres tables rpondant chacune au 3 premires formes normales
tudies jusquici, nous rglerons le problmes des anomalies dinsertion et de suppression :
NumSalari Nom Date naissance Service
5001 Hassan 01/15/1948 5
Service Nom NumSalari_Chef
5 Vente 4580
5002 Houda 12/04/1957 6
d. For
6 Informatique 4120
me normale de Boyce-Codd (BCNF)

vue de chacune de ce s tre dans la troisime
forme normale (quel que soit la cl primaire choisie) alors elle est dans la forme normale de Boyce-Codd.
Lexpression de F est dune simplicit redoutable : Une table est dans la BCNF si pour tout X Y,
Cette forme normale est une extension de la troisime forme, elle seule supprime toute dpendance
transitive. Si la table possde plus dun candidat pour la cl primaire, elle doit tre examine selon le point de
s cls potentielles. Si aprs un tel examen elle se trouve toujour
la BCN
X est une cl.
Tous les attributs dune entit doivent dpendre directement de son identifiant et daucun autre attribut. Si ce
nest pas le cas, il faut placer lattribut vicieux dans une entit spare, mais en association avec la premire.
numro avion constructeur modle capacit propritaire
1 Airbus A380 180 Air France
2 Boeing B747 314 British Airways
3 Airbus A380 180 KLM
Il y a redondance (et donc risque dincohrence) dans les colonnes constructeur et capacit.
Par exemple, lentit avions dont les valeurs sont donnes dans le tableau nest pas en troisime forme
constructeur dun avion ne dpendent pas du numro davion
mais

normale de Boyce-Codd, car la capacit et le
de son modle. La solution normalise est donne droite.
1,n
1,n
Avi ons
NumAv
Constructeur
Modl e
<pi >
Modl eAv
Numri que
Texte
Texte
<O>
NumMod Numri que
Capaci t
Propri tai re
Numri que
Texte
NumAv <pi >
Avi ons2
NumAv
Propri tai re
<pi > Numri que
Texte
<O>
NumAv <pi >
Capaci t
Constructeur
Modl e
<pi >
Numri que
Texte
Texte
<O>
Associ ati on_32
NumMod <pi >

une table des dpartements dune entreprise, de leurs projets, et des tches qui leur tombent avec
les dpendances de plusieurs valeurs (DPV) suivantes :
3 NF
e. Quatrime forme normale (4NF)
Elle rsout les problmes de dpendances de plusieurs valeurs, dans les tables qui en comprennent trop.
Supposons
TSDI SGBDR
Farih Said 26

sons
possib ant une tche ou un
perdre mettre jour le nom dune
ou dun t il faudr rpter lopration sur plusieurs lignes.
La solution consiste rpartir les do
s (Dpa ent, Proje ents, Tches).
La table ple ci-de transform ors en :




On va tudier les deux versions avec
1
er
cas : les projets et les tches peuvent tre partags par plusieurs dpartements
Dpartement Projet Tches
D1 P1 T1
D1 P1 T2
D1 P2 T1
D1 P2 T2
D2 P3 T2
D2 P3 T4
D2 P4 T2
D2 P4 T4
D2 P5 T2
D2 P5 T4
D3 P2 T5
D3 P2 T6
Dpartement projets
Dpartement tches
Supposons que le dpartement D1 soccupe des projets P1 et P2 et des
tches sont T1 et T2, le dpartement D2 des projets P3, P4 et P5 et des tches
T2 et T4 et le dpartement D3 du projet P2 et des tches T5 et T6.
Si on veut ajouter une tche un dpartement, il faut crer plusieurs
lignes nouvelles (puisquil faudra gnrer et maintenir toutes les combinai
les avec les projets). On risque ainsi, en supprim
projet dune ligne de des informations. Pour
tche proje a aussi
nnes en deux tables lune tablie
dapr rtem ts) et lautre daprs (Dpartem
exem ssus se e al



leur MCD et leur MPD respectif :
0,n
0,n
0,n
0,n
Departement
NomDep <pi > Texte <O>
NomDep <pi >
Proj et
NomPrj <pi > Texte <O>
NomPrj <pi >
Tche
NomTch <pi > Texte <O>
NomTch <pi >
Travai l l e sur
Doi t ral i ser
FK_TRAVAILL_TRAVAILLE_PROJ ET
FK_TRAVAILL_TRAVAILLE_DEPARTEM
FK_DOIT_REA_DOIT_REAL_DEPARTEM
FK_DOIT_REA_DOIT_REAL_TACHE
Departement
NomDep long varchar <pk>
Projet
NomPrj long varchar <pk>
Tche
NomTch long varchar <pk>
Travaille sur
NomPrj
NomDep
long varchar
long varchar
<pk,fk1>
<pk,fk2>
Doit raliser
NomDep
NomTch
long varchar
long varchar
<pk,fk1>
<pk,fk2>

MCD : MPD :
On note ici lapparition de deux tables supplmentaires charges de maintenir les relations 0,N.
2
me
cas : Les projets et les tches ne peuvent tre affects qu un seul dpartement la fois
Dpartement Projet Dpartement Tche
D1 P1 D1 T1
D1 P2 D1 T2
D2 P3 D2 T2
D2 P4 D2 T4
D2 P5 D3 T5
D3 P2 D3 T6
TSDI SGBDR
Farih Said 27
1,1
Proj et
0,n
0,n
1,1
Departement
NomDep <pi > Texte <O>
N p <pi > omDe
NomPrj <pi > Texte <O>
NomPrj <pi >
Tche
NomTch <pi > Texte <O>
NomTch <pi >
Travai l l e sur
Doi t ral i ser
FK_PROJET_TRAVAILLE_DEPARTEM
FK_TACHE_DOIT_REAL_DEPARTEM
Departement
NomDep l ong varchar <pk>
Proj et
NomPrj
NomDep
l ong varchar
l ong varchar
<pk>
<fk>
Tche
NomTch
NomDep
l ong varchar
l ong varchar
<pk>
<fk>

MPD :
ant dun MCD prcisant ds le dpart les cardinalits (que seule lanalyse
t e de dterminer) on aboutit des reprsentations physiques qui ne ressemblent en
l ple.
F ou forme normale Protection-Join.
lle repose sur la ncessit de se prmunir contre la perte dune jointure ou de pallier une anomalie due
labse
e ntre lorsquon a une relation ers N o ex thode de
vrifi ide a 5NF : regarder si l st en F et si toutes les cls candida
uniqu
MCD :
Il est clair que part
fonctionnelle peu permettr
rien aux tables de exem
f. Cinquime forme normale (5NF)
La 5
me
forme normale est aussi appele join-Protection ou JPN
E
nce de join-Protection.
Ce problm se renco N v N > 2. Il iste une m
cation rap de l a table e 3N tes sont des colonnes
es.
Soit une table enregistrant lacheteur, le vendeur et la banque suivante :
Achteur Vendeur Banque
Hassan Wafae BMCE
Hassan Ahmed BP
Houda Wafae BP
Cette table est une relation triple, on pourrait tre tent de reformuler cette table dans un schma EA sous la
forme de trois relations binaires qui donneront naissance trois tables :

Table Acheteur-Banque

Table Vendeur-Banque

Table Acheteur-Vendeur
Acheteur Banque
Hassan BMCE
Hassan BP
Houda BP


Vendeur Banque
Acheteur Vendeur
Wafae BMCE
Hassan Wafae
Ahmed BP
Hassan Ahmed
Wafae BP
Houda Wafae
Toutefois le rsultat de cette requte comptera des lignes comme (Hassan, Wafae, BP) qui nexistent
absolument pas dans la table dorigine ! Cest ce quon appelle une anomalie de join-protection.
Si nous reprenons le mme exemple et que nous tablissons un MCD correct, nous obtiendrons quelque
chose comme :
TSDI SGBDR
Farih Said 28
0,n
1,1
0,n
1,1
0,n
1,1
Achteurs
NumAcht
NomAcht
<pi > Numri que
Texte
<O>
NumAcht <pi >
Vendeurs
NumVend
NonVend
<pi > Numri que
Texte
<O>
NumVend <pi >
Banques
NumBanq
NomBanq
<pi > Numri que
Texte
<O>
NumBanq <pi >
Transacti ons
NumAct
NomAct
<pi > Numri que
Texte
<O>
NumAct <pi >
Est i mpl i qu dans3
Est i mpl i qu dans2
Est i mpl i qu dans

On voit quici nous avons isols trois entits bien diffrentes : lacheteur, le vendeur et la banque et que
lanalyse du problme nous force crer une quatrime entit qui est la transaction. Une transaction possde
otre exemple et 1,1 du ct de la transaction.
un code (ici squentiel) qui est sa cl primaire, elle entre en relation avec les trois autres entits. On notera les
cardinalits, 0,N du ct des entits de base de n
La transformation automatique en MPD
FK_TRANSACT_EST_IMPLI_BANQUES
FK_TRANSACT_EST_IMPLI_VENDEURS
FK_TRANSACT_EST_IMPLI_ACHTEURS
Achteurs
NumAcht
NomAcht
numeric
long varchar
<pk>
Vendeurs
NumVend
NonVend
numeric
long varchar
<pk>
Banques
NumBanq
NomBanq
numeric
long varchar
<pk>
Transactions
NumAct
NumVend
numeric
numeric
<pk>
NumAcht
NumBanq
NomAct
numeric
numeric
long varchar
<fk2>
nsaction en tant lui-mme la table des transactions...
Conclusion Il faut, par contre, toujours garder prsent lesprit que la normalisation est un travail qui peut
tre entrepris deux instants diffrents : la conception de la base de donnes, ce qui est prfrable, ou sur
une base de donnes existante.
4. Gestion des dates et du caractre historique :
Dan toriques.
Pour
<fk3>
<fk1>

Souvent rpondre la 5NF nest quun problme danalyse. Lexemple original masquait lexistence
dune entit particulire qui tait la tra
s une bibliothque, on peut vouloir stocker les emprunts en cours et/ou les emprunts his
les emprunts en cours, la date de retour prvu est un attribut de lentit livres car un livre ne peut faire
lobjet que dun seul emprunt en cours. Dans ce cas, la modlisation ne pose aucun problme.
TSDI SGBDR
Farih Said 29
0,1
0,n
Li vres
Emprunteur
NLi vre
Ti tre
Numri que
Texte
Emprunter
Numro
Nom
Numri que
Texte
Date d'emprunt
Date retour
Date
Date
NLi vre <pi >
Adresse Texte
Numro <pi >

Par contre, un livre peut faire lobjet de plusieurs emprunts historiques et dans ces conditions, la date
demprunt est dterminante pour connatre la date de retour prvue. Or une date nest pas un identifiant et
une dpendance fonctionnelle ne peut partir que un ou plusieurs identifiant(s). Cest le signe quil manque
un identifiant : le numro demprunt
0,n
1,1
1,1
0,n
Emprunteur
Numro
Nom
Numri que
Texte
Adresse Texte
Numro <pi >
Li vres
NLi vre
Ti tre
Date d'emprunt
Date retour
Numri que
Texte
Date
Date
NLi vre <pi >
Concerner
Emprunts hi stori ques
NumEmp
Date Emp
Date retour prvu
Date retour effecti f
<pi > Numri que
Date
Date
Date
<O>
NumEmp <pi >
Avoi r effectuer

prunts historiques supplmentaire qui apparat aprs traduction ne peut pas
tre t
de membre, mais du numro de livre et de la date demprunt.
Mme pour une entit historise. Il vaut mieux viter que la date nentre dans lidentifiant
On note que lentit em
ransforme en une association comme on pourrait le croire au simple examen des cardinalits qui
lentourent. En effet, les attributs de lassociation qui en rsulterait ne vrifieraient pas la normalisation des
attributs des associations. Notamment, la date de retour effectif ne dpend pas du numro de livre et du
numro
TSDI SGBDR
Farih Said 30
I
donnes relationnelles qui proposent une vision plus concrte pour
modliser la situatio
par des programmes excutables (dvelopps en Basic, Cobol ou Dbase)
Mais la maintenance des programmes (en cas de modification de la structure des donnes, notamment) tait
trs problmatique.
Sont alors apparus les SGBD hirarchiques dans lesquels les donnes sont organises en arbre (IMS-
DL1 dIBM, par exemple), puis les SGBD rseaux dans lesquels les donnes sont organises selon un graphe
formation condition den

linformatio age quasiment naturel (le langage
s plus rpandus nous trouvons Oracle, SQL Server
2. Dfinition
Il s'agit du passage entre le Modle Conceptuel de Donne et l'implmentation physique de la base. Le
MLD est lui aussi indpendant du matriel et du logiciel, il ne fait que prendre en compte l'organisation des
donnes. C'est d'ailleurs le point primordial nelle
(si elles sont "lies" entre elles), alors le MLD est Relationnel et devient le MLDR, ou Modle Logique de
Donne Relationnel. Pour la petite histoire, le MLDR a t invent par Codd en 1970, et repose sur la Thorie
Ensembliste...
c
de ces champs pour chaque enregistrement
NStagiaire
V. Le Modle Logique de Donnes (MLD)
1. Introduction
Aprs la modlisation avec le MCD (Entit- Association), on peut le traduire en diffrents systmes
logiques et notamment les bases de
n.
Avant lapparition des systmes de gestion de base de donnes (SGBD), les donnes staient stockes
dans des fichiers binaires et gres
plus gnral (IDS2 de Bull, par exemple).
Ces deux types de SGBD sont dits navigationnels car on peut retrouver lin
connatre le chemin daccs.
Aujourdhui, ils sont largement remplacs par les SGBD relationnels (SGBDR) avec lesquels
n peut tre obtenue par une requte formule dans un lang
SQL pour Structured Query Langage). Parmi les SGBDR le
et DB2.
de la modlisation : si l'organisation des donnes est relation
a. Tables, lignes et colonnes
Lorsque des donnes ont la mme structure (comme par exemple, les renseignements relatifs aux
lients), on peut les organiser en table dans laquelle les colonnes dcrivent les champs en commun et les
Lignes contiennent les valeurs
Nom Prnom Ville
1 Hassani Wafae Fs
2 Masoudi Ahmed Casa
3 Rami Hassan Rabat
b. Cls primaires et cls trangres
Les lignes dune table doivent tre uniques, cela signifie quune colonne (au moins) doit servir les
identifier. Il sagit de la cl primaire de la table.
autorise. Autrement dit, la valeur vide
Null principe, changer au cours du
Labsence de valeur dans une cl primaire ne doit pas tre
( ). De plus, la valeur de la cl primaire dune ligne ne devrait pas, en
TSDI SGBDR
Farih Said 31
dune table ne doive contenir que des valeurs prises
n dit alors que la Colonne1 est cl trangre et quelle rfrence la Colonne2
Pa
temps. Par ailleurs, il se peut quune colonne Colonne1
par la colonne Colonne2 dune autre table (par exemple, le numro du client). La Colonne2 doit tre sans
doublons. O
r convention, on souligne les cls primaires et on fait prcder les cls trangres dun dise # dans la
c. Schma relationnel
On peut reprsenter les tables dune base de donnes relationnelle par un schma relationnel dans
lequel les tables sont connecteur.
description des colonnes dune table
FK_COMMANDE_COMMANDER_CLIENT
Cl i ent
NumCl i ent
Commander
Nom
Prenom
numeri c
Tl phone
l ong varch
l ong varch
numeri c
NumCl i ent
Numro arti cl e
Quanti t com
Date com
numeri c
numeri c
numeri c
date
<pk>
<pk>

n MLDR
uer cinq rgles.
3. Transformation des entits
Rgle 1
d. Traduction dun MCD en u
Pour traduire un MCD en un MLDR, il suffit dappliq
: toute entit devient une table dans laquelle les attributs deviennent les colonnes. L'identifiant
de l'entit constitue alors la cl primaire de la table.
Par exemple, l'entit articles devient la table :
Articles (Numro article, Dsignation, Prix unitaire)
Et l'entit Client devient :

<==> CLIENT (NumClient, Nom, Prenom, Tlphone,
Adresse
Arti cl e
<pi >
, Lieu de travail)


4. Relation binaire aux cardinalits (X,1) - (X,n), X=0 ou X=1
Rgle2 : une association binaire de type 1:n disparat, au profit d'une cl trangre dans la table ct
0,1 ou 1,1 qui rfrence la cl primaire de l'autre table. Cette cl trangre ne peut pas recevoir la valeur
1,1.
Exemple:
vide si la cardinalit est
1,1
1,n
Arti cl es
NumArt
Dsi gnati on
Pri x uni tai re
<pi > Numri que
Texte
Monnai e
<O>
NumArt <pi >
Fourni sseurs
NumFour
Adresse
Tl phone
<pi > Numri que
Texte
Numri que
<O>
NumFour <pi >
Li vrer

Fournisseurs (NumFour, Adresse, Tlphone)
NumFour (non vide))
ne devrait pas y avoir d'attribut dans une association de type 1:n,
ais sil en reste, alors ils glissent vers la table ct 1.
Articles (NArt, Dsignation, Prix unitaire, #
Il
m
Cl i ent
NumCl i ent
Nom
<pi >
Pr
T
enom
l phone
Adresse
Li eu du travai l
Numri que
Texte
<O>
Texte
Numri que
Texte
Texte
Numro arti cl e
Dsi gnati on
Numri que
Pri x uni tai re
Texte
<O>
Monnai e
Numro arti cl e <pi >
Arti cl es
NumArt
FK_ARTICLES_LIVRER_FOURNISS
NumFour
Dsi gnati on
Pri x uni tai re
numeri c
numeri c
l ong varchar
numeri c(8,2)
<pk>
<fk>
Fourni sseurs
NumFour
Adresse
Tl phone
numeri c
l ong varchar
numeri c
<pk>
TSDI SGBDR
Farih Said 32
a cl primaire de la table la cardinalit (X,n) devient une cl trangre dans la table la cardinalit (X,1) : L
Exemple :
Un employ a une et une seule socit. Une socit a 1 ou n employs.
Modle Conceptuel de Donne (MCD) :
FK_COMPOSEE_COMPOSEE2_COMMANDE
FK_COMPOSEE_COMPOSEE3_PRODUITS
Compose
NumCom
NumProd
Quanti t
numeri c
numeri c
<Non dfi ni >
<pk,fk1>
<pk,fk2>
Commandes
NumCom
DateCom
numeri c
date
<pk>
Produi ts
NumProd
Li bel l
numeri c
l ong varchar
<pk>
1,1
0,n
Empl oys
Soci ts
i dEmp
NomEmp
Adresse
<pi > Numri que
Texte
Texte
<O>
i dEmp <pi >
Avoi r NumSoc
NomSoc
Capi tal
<pi > Numri que
Texte
Numri que
<O>
NumSoc <pi >

Modle Logique de Donne Relationnelle (MLDR) :
idEmp Employs ( , NomEmp, #NumSoc)
Socits (NumSoc, NomSoc, Capital)
Modle Physique de Donne (MPD), ou schma de base :
FK_EMPLOYES_AVOIR_SOCIETES
Empl oys
i dEmp
NumSoc
NomEmp
Soci ts
numeri c
Adresse
numeri c
l ong varchar
<pk>
l ong varchar
<fk>
NumSoc
NomSoc
Capi tal
numeri c
l ong varchar
numeri c
<pk>

(X,n) - (X,n), X=0 ou X=1
gle 3
5. Relation binaire aux cardinalits
R : Une association binaire de type n:m devient une table supplmentaire (parfois appele table de
jonction, table de jointure ou table d'association) dont la cl primaire est compose de deux cls trangres
(qui rfrencent les deux cls primaires des deux tables en association). Les attributs de l'association
deviennent des colonnes de cette nouvelle table.
ration d'une table supplmentaire ayant comme cl primaire une cl compose des identifiants
est la concatnation des cls primaires des deux
utres tables. Si la relation est porteuse de donne, celles ci deviennent des attributs pour la nouvelle table.
xemple: S.I. :
Il y a c
des 2 entits. On dit que la cl Primaire de la nouvelle table
a
E
Une commande est compose de 1 ou n produits distincts en certaine quantit. Un produit est prsent
dans 0 ou n commandes en certaine quantit.
MCD :
1,n
0,n
Compose
Quanti t <Indfi ni >
Commandes
NumCom
DateCom
<pi > Numri que
Date
<O>
Produi ts
NumCom <pi >
NumProd
L
<pi > Numri que
i bel l Texte
<O>
NumProd <pi >

MLDR :
Commandes (NumCom, DateCom)
PRODUIT (NumProd, libell)
Compose (NumCom, NumProd, Quantit)
MPD :


TSDI SGBDR
Farih Said 33
6. Relation binaire aux cardinalits (X,1) - (X,1), X=0 ou X=1
4 Rgle : une association binaire de type 1:1 est traduite comme une association binaire de type 1:n sauf
cl trangre se voit imposer une contrainte d'unicit en plus d'une ventuelle contrainte de non
S'il existe au moins un ct de cardinalit 0,1. Cest alors dans la table du ct oppos que doit aller la
cl trangre. Si les deux cts sont de cardinalit 0,1 alors la cl trangre peut tre place indiffremment
dans l'une des deux tables.
Exemple:
MCD :
que la
vacuit.

0,1
1,1
Empl oys
i dEmp
NomEmp
Adresse
<pi > Numri que
Texte
Texte
<O>
i dEmp <pi >
Servi ces
NumSrv
NomSrv
<pi > Numri que
Texte
<O>
NumSrv <pi >
Di ri ger

MLDR :
Services (Nservice, nom service, #N employ (non vide, unique))
Employs (Nemploys, nom)
MPD :
Doctorants
NumD
NomD
PrnomD
Anne
Thme
DateThse
NumProf
i nteger
l ong varchar
l ong varchar
date
l ong varchar
date
i nteger
<pk>
Profs
NumProf
NomP
PrnomP
Labo
i nteger
l ong varchar
l ong varchar
l ong varchar
<pk>
FK_EMPLOYES_DIRIGER2_SERVICES
Empl oys
i dEmp
NumSrv
numeri c
Servi ces
<pk>
FK_SERVICES_DIRIGER_EMPLOYES
NomEmp
Adresse
numeri c
l ong varchar
l ong varchar
<fk>
NumSrv
i dEmp
numeri c
numeri c
<pk>
NomSrv l ong varchar
<fk>
une seule thse :

Exemple 2 :
Si un professeur ne peut diriger au plus qu


0,1
1,1
Profs
NumProf
NomP
PrnomP
Labo
<pi > Enti er
Texte
Texte
Texte
<O>
NumProf <pi >
Doctorants
NumD
NomD
PrnomD
Anne
<pi > Enti er
Texte
Texte
Date
<O>
Encadrer
NumD <pi >
DateThse
Thme
Date
Texte



Si on a les deux entits 1,1. Alors on aura le choix de crer deux relations que lune contiendra les
cls et les attributs de lassociation, ou on les fusionne pour crer une seule relation qui comprendra tous les
attribut (ceux des entits et de lassociation) en supprimant lautre entit condition de ne pas tre en
relation avec une autre entit.



TSDI SGBDR
Farih Said 34
.I. :
Exemple :
S
tout professeur enseigne un et un seul cours : Si
1,1
1,1
Profs
NumProf
NomP
PrnomP
Labo
<pi > Enti er
Texte
Texte
Texte
<O>
Cours
Ti tre Texte
NumProf <pi >
Domai ne
Ni veau
Dure
<pi >
Texte
Texte
Heure
<O>
Ensei gne
Ti tre <pi >
Sal l e Date

Profs
NumProf
NomP
PrnomP
Labo
Sal l e
Ti treC
i nteger
l ong varchar
l ong varchar
l ong varchar
date
archar
<pk>
l ong v
Cours
Ti tre
Domai ne
Ni veau
Dure
l ong varchar
l ong varchar
l ong varchar
ti me
<pk>

Profs
NumProf
NomP
PrnomP
Labo
Sal l e
Ti treC
Ni veau
Domai ne
Dure
i nteger
l ong varchar
l ong varchar
l ong varchar
date
l ong varchar
l ong varchar
l ong varchar
ti me
<pk>

Ou
7. Les relations n-aire (quelles que soient les cardinalits).
Rgle 5 : Une association non binaire est traduite par une table supplmentaire dont la cl primaire est
compose d'autant de cls trangres que d'entits en association. Les attributs de l'association deviennent des
colonnes de cette nouvelle table.
Il y a cration d'une table supplmentaire ayant comme cl primaire la concatnation des identifiants
des entits participant la relation. Si la relation est porteuse de donne, celles ci deviennent des attributs
pour la nouvelle table.
S.I. :
Un tudiant parle une ou plusieurs langues avec un niveau. Chaque langue est donc parle pa
tudiants avec un niveau. Pour chaque niveau, il y a 0 ou plusieurs tudiants qui parlent une langue.
MCD :
r 0 ou n

1,n
0,n
0,n
El eves
NumEl v
NomEl v
PrenomEl v
<pi > Enti er
Texte
Texte
<O>
Ni veaux
NumEl v <pi >
NumNv
NomNv
<pi > Enti er
Texte
<O>
NumNv <pi >
Parl e
Langues
NumLng
NomLng
<pi > Enti er
Texte
<O>
NumLng <pi >

MLDR :
Eleves (NumElv, NomElv, PrenomElv)
Niveaux (NumNv, NomNv)
Langues (NumLng, NomLng)
Parle (NumElv, NumNv, NumLng)
TSDI SGBDR
Farih Said 35

MPD :
FK_PARLE_PARLE_ELEVES
FK_PARLE_PARLE2_NIVEAUX
FK_PARLE_PARLE3_LANGUES
El eves
NumEl v
No
P
i nteger
mEl v
renomEl v
l ong varchar
l ong varchar
<pk>
Ni veaux
NumNv i nteger
l ong varchar
<pk>
NomNv
Langues
NumLng
NomLng
i nteger
l ong varchar
<pk>
Parl e
NumEl v i nteger <pk,fk1>
NumNv i nteger <pk,fk2>
NumLng i nteger <pk,fk3>

Exemple 2:
Horai res
1,1
0,n
Sal l es Proj rter
Tari f Monnai e
NHor
Date
<pi > Enti er
Date
<O>
<pi > <O> NSal Enti er
1,n
Heure Deb Heure
Capaci t Enti er
NSal <pi >
NHor <pi >
Fi l ms
NFi l m Enti er <pi >
Ti tre
Dure
Texte
Heure
<O>
NFi l m <pi >

FK_PROJRTER_PROJRTER_HORAIRES
FK_PROJRTER_PROJRTER2_SALLES
FK_PROJRTER_PROJRTER3_FILMS
Horai res
NHor
Date
i nteger
Heure Deb
date
<pk>
ti me
Sal l es
NSal
Capaci t
i nteger
i nteger
<pk>
Fi l ms
NFi l m
Ti tre
Dure
i nteger
l ong varchar
ti me
<pk>
Proj rter
NHor i nteger <pk,fk1>
NSal i nteger <pk,fk2>
NFi l m
Tari f
i nteger
numeri c(8,2)
<pk,fk3>

Lassociation projeter:
Projections (#NFilm, #NSalle, #NHor, tarif)
8. Association Rflexive.
Premier cas : cardinalit (X,1) - (X,n), avec X=0 ou X=1.
se ddouble et devient une cl trangre dans la relation du nouvelle table.
lait et tait relie par une relation binaire (X,1) - (X,n).
ire de cette mme table. Il y a alors deux cls
a.
La cl primaire de l'entit
Exactement comme si l'entit se ddoub
Elle devient un attribut cl trangre dans la table transforme, attribut ventuellement suffix par le
rle de la patte 0,1. Cette cl trangre rfre la cl prima
trangres (donc deux liens rfrentiels) nommes sur le principe ci-dessus.
TSDI SGBDR
Farih Said 36
.I. : S
Prenons l'exemple d'une socit organise de manire pyramidale : chaque employ a 0 ou 1 suprieur
irarchique direct. Et, chaque employ est le suprieur hirarchique direct de 0 ou plusieurs employs.

h
MCD : MPD :
0,n
0,1
Empl oye
NEmp
Nom
Prenom
Sal ai re
Servi ce
Numri que
Texte
Texte
Monnai e
Texte
NEmp <pi >
Di ri ge

FK_EMPLOYE_DIRIGE_EMPLOYE
Empl oye
NEmp
Emp_NEmp
Nom
Prenom
Sal ai re
Servi ce
i nteger
i nteger
l ong varchar
l ong varchar
numeri c(8,2)
l ong varchar
<pk>
<fk>

MLDR :
Employe (NEmp, Nom, Prenom, Salaire, Service, #Emp_NEmp)
#Emp_NEmp est l'identifiant (NEmp) du suprieur hirarchique direct de l'employ considr.
b. Deuxime cas : cardinalit (X,n) - (X,n), avec X=0 ou X=1.
doublait et tait relie par une relation
frant respectivement la cl primaire de la table (ex-entit).
) par le rle de chacune des pattes correspondantes (do
De mme, tout se passe exactement comme si l'entit se d
binaire (X,n) - (X,n). Il y a donc cration d'une nouvelle table.
Elle devient une table, avec les ventuels attributs appartenant la relation, dont la cl primaire est
compose des deux attributs cl trangres, r
Ces attributs sont suffixs (ou renomms
limportance de dfinir ces rles dans les outils).
S.I. :
Prenons cette fois l'exemple d'une organisation de type familiale : chaque personne a 0 ou n ascendant
(parents et grands pres) et a aussi 0 ou n descendants directs (enfants).
MCD : MPD :
FK_PARENTER_PARENT_INDIVIDU
Parent
0,n
Indi vi dus
NumInd
NomInd
<pi > Enti er
Texte
<O>
Enfant
0,n
NumInd <pi >
Parenter

Parent
Indi vi dus
NumInd i nteger
FK_PARENTER_ENFANT_INDIVIDU
Enfant
NomInd l ong varchar
<pk>
Parenter
NumInd i nteger <pk,fk1>
Ind_NumInd i nteger <pk,fk2>

MLDR :
Individus (NumInd, NomInd)
Parenter (#NumParent, #NumEnfant)
#NumParent est l'identifiant (NumInd) d'un ascendant direct de la personne. # NumEnfant est
l'identifiant (NumInd) d'un descendant direct de la personne.
La table Parenter sera en fait l'ensemble des couples (parents-enfants) prsent dans cette famille.



TSDI SGBDR
Farih Said 37
9. Transformer l'hritage et les sous-types du MCD dans le MLD
Soit le MCD suivant : Son MPD

FK_ECRAN_HERITAGE__PERIPHER
FK_UNITES_HERITAGE__PERIPHER
Ecran
NumPrp
Marque
Etat
Type
Tai l l e
i nteger
l ong varchar
l ong varchar
l ong varchar
i nteger
<pk,fk>
Pri phri ques
NumPrp
Marque
Etat
i nteger
l ong varchar
l ong varchar
<pk>
Uni ts
NumPrp
Marque
Etat
CPU
HDD
Ram
i nteger
l ong varch
Heri tage_2
Ecran
Type
Tai l l e
Texte
Enti er
Pri phri ques
NumPrp
Type
Etat
<pi > Enti er
Texte
Texte
<O>
NumPrp <pi >
Uni ts
CPU
HDD
Ram
Texte
Enti er
Enti er
ar
ar l ong varch
l ong varchar
i nteger
i nteger
<pk,fk>

2 possibilits de transformation
a. Ne dupliquer dans les tables sous-type que l'identifiant
Cette solution ne pose aucun problme de redondance. Elle est celle qui minimise la place. On peut
"reconstituer" les hritages par des vues SQL.
Le MLD suivant est UNE solution possible :
Priphrique_Ecran (NumPrp
La thorie nous indique qu'il existe
, Marque, Etat, Type, Taille)
Priphrique_Units(NumPrp, Marque, Etat, CPU, HDD, RAM)
b. Tout remonter dans le surtype
Solution facile et viter : une seule table; mais srement un grand nombre de valeurs " vide"; a
dpend comment la base de donnes gre ces vides.
d'application :
besoin dune base de donnes dans laquelle on trouve que
ffectations, et peut hospitaliser plusieurs Patients qui peuvent avoir
Exemple
Afin de grer un cabinet mdical, on a
chaque Mdecin peut avoir plusieurs a
une mutuelle.
Crer le modle entit association ;
Dduire le MLD puis le MPD.
MCD :
0,1 1,n
Mutuel l es
0,n
1,n
1,n
Pati ents
<pi > Enti er <O> Coti ser NumMut
NumPat
NomPat
<pi > Enti er
Texte
<O>
NomMut Texte
NumMut <pi >
NumPat <pi >
Hospi tal i ser
Medeci ns
NumMed
Affectati ons
DateEnt
DateSor
Date
Date
<pi > Enti er
NumAff
NomAff
<pi > Enti er
Texte
<O>
NumAff <pi >
NomMed Texte
<O>
NumMed <pi >



TSDI SGBDR
Farih Said 38
MPD :
FK_PATIENTS_COTISER_MUTUELLE
FK_HOSPITAL_HOSPITALI_AFFECTAT
FK_HOSPITAL_HOSPITALI_MEDECINS
Mutuel l es
Pati ents
NumMut
FK_HOSPITAL_HOSPITALI_PATIENTS
NumPat
NumMut
i nteger
NomPat
i nteger
l ong varchar
<pk>
<fk>
NomMut
i nteger
l ong varchar
<pk>
Affectati ons
NumAff
NomAff
i nteger
l ong varchar
<pk>
Medeci ns
NumMed
NomMed
i nteger
l ong varchar
<pk>
Hospi tal i ser
NumAff
NumMed
NumPat
DateEnt
i nteger
i nteger
i nteger
date
<pk,fk1>
<pk,fk2>
<pk,fk3>
DateSor date

MLDR :
Patients (NumPat, NomPat, #NumMut)
Mutuelles (NumMut, NomMut)
Mdecins (NumMed, NomMed)
Affections (NumAff, NomAff)
Hospitaliser (NumPat, NumAff, NumMed, DateEnt, DateSor)

nombre de liberts prises par rapport aux rgles de normalisation afin d'optimiser les performances du
systme d'information.
ration (par des requtes SQL de
type CREATE TABLE et ADD CONSTRAINT) d'une base
mme modle logique (le schma relationnel) permet la fois la
communica es bases htrognes et la conversion d'une base de donnes d'un SGBDR l'autre.
temps de calcul se fait toujours au dtriment de l'espace mmoire
dnormaliser volontairement le
mes de gestion que cela comporte.
V. Modle physique de donnes (MPD)
Un modle physique de donnes est l'implmentation particulire du modle logique de donnes par un
logiciel.
a. Distinction entre MLD et MPD
La traduction d'un MLD conduit un MPD qui prcise notamment le stockage de chaque donne
travers son type et sa taille (en octets ou en bits). Cette traduction est galement l'occasion d'un certain
La traduction d'un MLD relationnel en un modle physique est la c
de donnes hberge par un SGBD relationnel
particulier. Il peut sagir d'une base Oracle, d'une base SQL Server, d'une base Access, par exemple. Le fait
que tous les SGBDR reposent sur le
tion entre d
b. Optimisations
L'optimisation des performances en
consomm. Dans le pire des cas, rduire les temps de rponse consiste
systme d'information, avec tous les risques d'incohrence et les probl
Pour les bases de donnes relationnelles, l'optimisation qui vise acclrer les requtes peut passer par:
L'ajout d'index aux tables (au minimum sur les colonnes cls primaires et cls trangres); ces index
consomment de l'espace mmoire supplmentaire, mais la base de donnes reste normalise;
TSDI SGBDR
Farih Said 39
clientes du systme d'information;
ou encore de cl trangre (auquel cas,
CD vers MPD
me d'information analys et modlis en Modle Conceptuel de Donne (MCD), et
de
onne (MPD). Il s'agit maintenant de crer la base correspondante l'tude entame. C'est ce stade
Ce que nous venons de voir concerne l'analyse conceptuelle des donnes
l'ajout de colonnes calcules ou de certaines redondances pour viter des jointures coteuses (au- quel
cas la base est dnormalise); il faut alors veiller ce que la cohrence entre les colonnes soit respecte,
soit par l'utilisation de dclencheurs, soit dans les applications
la suppression des contraintes d'unicit, de non vacuit
l'intgrit des donnes doit tre assure par le code client du systme d'information).
1. Du M
a. Utiliser le Modle Physique de Donne :
Une fois le syst
aprs tre pass par le Modle Logique de Donne Relationnel (MLDR), nous arrivons au Modle Physique
D
seulement que la base de donne choisie intervient.
, c'est dire un niveau
tuel des
d'analyse qui s'affranchi de toutes les contraintes de la base de donnes sur laquelle va reposer l'application.
Une fois dcrit sous forme graphique, ce modle est couramment appel MCD pour "Modle Concep
Donnes".
Ds lors, tout MCD peut tre transform en un MPD ("Modle Physique des Donnes") c'est dire un
ut l'intrt de cet outil d'analyse est de permettre de modliser plus aisment les relations existantes
entre les entits et d'automatiser le passage du schma muni d'attributs aux tables de la base de donnes
pourvues de leurs champs.
b. Les rgles
Voici maintenant les rgles de base ncessaire une bonne automatisation du passage du MCD au
MPD:
Transformation des entits (passer de l'entit la table)
Rgle n1 : toute entit doit tre reprsente par une table.
Rgle n2 : Dans le cas d'entits relies par des associations de type 1:1, les tables doivent avoir la mme cl.
Rgle n3 : Dans le cas d'entits relies par des associations de type 1:n, chaque table possde sa propre cl,
mais la cl de l'entit ct 0,n (ou 1,n) migre vers la table ct 0,1 (ou 1,1) et devient une cl trangre
(index secondaire).
Rgle n4 : Dans le cas d'entits relies par des associations de type n:m (plusieurs plusieurs), une table
intermdiaire dite table de jointure, doit tre cre, et doit possder comme cl primaire une
lesquelles elle sert de jointure.
Rgle n5 : Cas des associations pourvues d'au moins un attribut :
Si le type de relation est n:m, alors les attributs de l'association deviennent des attributs de la table de
jointure.
Si le type de relation est 1:n, il convient de faire glisser les attributs vers lentits pourvue des
cardinalits 1:1.
Si le type de relation est 1:1, il convient de faire glisser les attributs vers lune ou lautre des entits.

modle directement exploitable par la base de donnes qu'on veut utiliser.
To
conjonction des
cls primaires des deux tables pour
TSDI SGBDR
Farih Said 40
Application sur un Modle Physique de Donnes concret :
S.I :
On sintresse aux abonns sur un site dInternet, chacun deux peut sinscrire aux plusieurs rubriques
pour recevoir ses newsletters, et pour assurer son inscription, il faut prsenter plusieurs motivations.
Un abonn doit fournir toutes les informations possibles pour le reconnatre.
La rubrique et la motivation sont caractrises par un numro est un intitul.
Une newsletter comportera un sujet et un contenu, et senverra une date.
MCD :
1,n
0,n
1,n
1,1
Abonns
1,1
NumAbn Enti er
0,n
Moti vati ons
NumMot
Inti tul e
<pi > Enti er
Texte
<O>
NumMot <pi >
Nom
Prenom
Age
Sexe
Professi on
<pi >
Adresse
E-Mai l
Texte
Texte
Enti er
Bool en
Texte
<O>
Texte
Texte
Choi si r
NumAbn <pi >
s'i nscri re
NewsLetters
NumNL
Suj et
DateEnv
Contenu
<pi > Enti er
Texte
Date
Mul ti byte
<O>
NumNL <pi >
Rubri ques
NumRbq
NomRbq
<pi > Enti er
Texte
<O>
NumRbq <pi >
Conteni r

Le schma de base (MPD):
FK_ABONNES_CHOISIR_MOTIVATI
FK_NEWSLETT_CONTENIR_RUBRIQUE
FK_S_INSCRI_S_INSCRIR_ABONNES
FK_S_INSCRI_S_INSCRIR_RUBRIQUE
Moti vati ons
NumMot
Inti tul e
i nteger
l ong varchar
<pk>
Abonns
NumAbn
NumMot
Nom
i nteger <pk>
i nteger
l ong varchar
smal l i nt
l ong varchar
l ong varchar
<fk>
Prenom
Age
l ong varchar
i nteger
Sexe
Professi on
E-Mai l
Adresse l ong varchar
NewsLetters
NumNL
NumRbq
Suj et
i nteger
DateEnv
Contenu
i nteger
l ong varchar
<pk>
date
char(1)
<fk>
Rubri ques
NumRbq
NomRbq
i nteger
l ong varchar
<pk>
s'i nscri re
NumAbn i nteger <pk,fk1>
NumRbq i nteger <pk,fk2>

MLDR :
La table Motivations est trs simple crer : elle comporte deux champs, NumMot et Intitul. NumMot
re toujours gale une valeur de
est la cl primaire.
Abonns comporte les 9 champs du schma. NumAbn est la cl primaire. NumMot est une cl
trangre provenant de Motivations, c'est dire que sa valeur doit t
TSDI SGBDR
Farih Said 41

es.
2. Correspondance avec un logiciel SGBDR : les tables
On passe ici du modle logique (en l'occurrence le modle relationnel) au niveau technique ou
physique. Pratiquement, on ralise ce passage sur l'ordinateur.
Une entit est reprsente habituellement par une table.
La table est un objet informatique regroupant ici tous les individus (les occurrences) de l'entit. La
table a une forme de tableau l'cran (lors de l'affichage en mode "feuille de donne" avec Access):
les colonnes ou champs : dans la table de l'entit, chaque colonne correspond un attribut de l'entit.
un attribut particulier est l' "identifiant" de chaque "individu" (occurrence), c'est dire un numro
unique pour chaque individu. C'est la "cl primaire" de la table.
les lignes : chaque ligne correspond une occurrence de l'entit, ou "enregistrement". Une occurrence
est note sur une seule ligne.
La conception de la base est l'tape fondamentale il s'agit tout simplement de la fabrication des plans
pour raliser la conception de la base de donnes, on va devoir prendre des informations auprs des
diffrentes sources concernes, auprs des utilisateurs, des dcideurs, faire des runions rgulires pour
savoir si ce qu'on conoit est bien en adquation avec la ralit. Par exemple, un client est un client. Quel que
soit le client, nous allons systmatiquement avoir besoin dinformations qui sont propres chaque client,
comme l'adresse, le nom, le tlphone, etc. Nous pouvons grer ce client, lenregistrer sur une fiche.
En fait, cette fiche prformate, on pourrait lappeler entit. Tout le jeu va donc tre, maintenant, de
rpartir les donnes que nous avons dans notre tableau de dpart, et de les rassembler par fiche type et de
faire autant de fiche type ou entit que nous avons dlments distincts grer. Cest le point de dpart du
Modle Entit-Association (MEA).
NumMot de Motivations. L'intrt majeur des cls trangres est surtout d'viter les redondances, sources
d'erreurs.
Sinscrire comporte deux champs, NumAbn et NumRbq. NumAbn et NumRbq sont cl primaire de
Sinscrire: Sinscrire a comme cl primaire la concatnation de ces deux champs. C'est dire que tout
couple (NumAbn, NumRbq) de Sinscrire est unique. NumAbn est aussi cl trangre de Abonns dans
Sinscrire, et NumRbq est cl trangre de Rubriques dans Sinscrire.
Une telle table est communment appele "Table de Lien". L'intrt d'une telle table est que pour chaque
NumAbn donn, il est ais de retrouver tous les NumRbq associs, et vice et versa.
Rubriques est elle aussi trs simple crer : elle comporte deux champs, NumRbq et NomRbq.
NumRbq est la cl primaire.
NewsLetters comprend les 5 champs du schma. NumNL est la cl primaire. NumRbq est une cl
trangre provenant de Rubriqu
TSDI SGBDR
Farih Said 42
Les 12 Rgles dintgrit de Codd
Cette introduction sur les SGBD-R ne serait pas complte sans lnonc des principes fondateurs de la
thorie sous-jacente, celle du modle relationnel. Lorsque le Dr Codd dfinit le modle relationnel en 1970,
construction qui sera reprise en suite par de nombreux auteurs, il nona un ensemble de 12 rgles pour la
reprsentation des relations en table.
Cet ensemble de rgles permet de mieux comprendre le cadre dans lequel a t conu le modle
relationnel ainsi que la majorit des particularits du SQL. Et comprendre sur quoi on travaille est toujours
un avantage un moment ou un autre...
Rgle 0
Pour quun systme de gestion de donnes soit considr comme une base de donne relationnelle, il
doit utiliser exclusivement les relations pour grer la base de donnes.
Rgle 1 - Rgle dinformation
Toutes les informations de la base de donnes doivent tre reprsentes dune seule et mme manire,
notamment par des valeurs dans les colonnes lintrieur de lignes.
Rgle 2 - Rgle de garantie daccs
Chaque information stocke dans une base de donnes relationnelle doit pouvoir tre accessible en
prcisant uniquement le nom de la table, le nom de la colonne et la valeur de la cl primaire.
Rgle 3 - Rgle des informations manquantes
Il doit y avoir un moyen dexprimer des valeurs manquantes dans la base de donnes dune faon
homogne non dpendante du type de donne, expression qui doit tre supporte dans les oprations
logiques. La rgle originale prcise quil faut diffrencier valeur manquante et valeur inapplicable, lheure
actuelle les SGBD-R ne proposent majoritairement que le NULL.
Rgle 4 - Catalogue systme
La description de la base au niveau logique doit tre reprsente dynamiquement par un ensemble de
donnes normalis de telle sorte que ce catalogue soit accessible aux utilisateurs autoriss depuis leur langage
de requte. On voit ici que les formats dBase et Paradox ne satisfont pas cette exigence alors que Interbase
ou tout autre serveur SQL ne saurait fonctionner sans tables systme. Ces pour cela quon choisira les seconds
si on doit grer beaucoup dintgrit rfrentielle ou de contraintes.
Rgle 5 - Rgle de sous-langage
Le systme doit mettre la disposition au moins un langage relationnel qui : (1) a une syntaxe linaire,
(2) peut tre utilis la fois de manire interactive et dans des programmes dapplication, et (3) supporte les
oprations de dfinition de donnes (dont les vues), celles de manipulation de donnes (mise jour et accs),
les contraintes de scurit et dintgrit, ainsi que les oprations de pilotage de transactions (dbut,
validation, annulation). Le langage SQL propose tout cela.
Rgle 6 - Rgle de mise jour des vues
Le systme doit supporter la dfinition des vues et les informations des tables sous-jacentes doivent
pouvoir tre mises jour directement depuis la vue. Les vues modifiables ne sont pas gres de la mme faon
par tous les serveurs, et les vues, mme non modifiables nexistent pas en dBase et Paradox.

TSDI SGBDR
Farih Said 43
Rgle 7 - Insertion, mise jour et suppression
Le systme doit permettre aux oprateurs INSERT, UPDATE et DELETE dtre actifs en mme temps. Le
SQL standard supporte cette contrainte.
Rgle 8 - Indpendance des donnes physiques
Les programmes dapplication et les oprations interactives ne doivent pas avoir tre modifis si la
structure physique de la base est modifie. En ce sens SQL est un langage beaucoup plus portable que la
majorit des langages classiques. Delphi et le BDE autorise dailleurs une trs bonne isolation entre
reprsentation physique de la base et application. On peut ce sujet tudier lexemple fourni avec Delphi
(MASTAPP) qui fonctionne aussi bien avec des donnes Paradox que sous Interbase.
Rgle 9 - Indpendance des donnes logiques
Les programmes dapplication et les oprations interactives nont pas tre modifis si la base de donnes
est restructure, du moins tant quil ny a pas de perte dinformation.
Rgle 10 - Indpendance par rapport aux contraintes dintgrit
Les contraintes dintgrit doivent tre spcifies sparment des programmes dapplication et ranges
dans le catalogue. On doit pouvoir les modifier comme on le souhaite, sans avoir toucher aux applications
existantes.
Rgle 11 - Indpendance par rapport la distribution des donnes
Les applications existantes se drouleront normalement (1) quand une version distribue du SGBD est
introduite pour la premire fois et (2) quand les donnes distribues sont redistribues dans le systme. Les
versions distribues de SQL commencent tout juste apparatre et il est difficile aujourdhui de donner des
exemples prcis de respect de cette rgle.
Rgle 12 - Rgle de non-subversion
Si le systme dispose dune interface de bas niveau (traitement dun enregistrement la fois), celle-ci
na pas la possibilit de pervertir le systme, cest dire de passer outre une directive de scurit relationnelle
ou une contrainte dintgrit. SQL-92 rpond ces conditions.






TSDI SGBDR
Farih Said 44
Rsum
Conseils pour la construction dun modle
1 Analyser l'existant et constituer le dictionnaire des donnes
2 Purifier les donnes : synonymes, polysmies
3 Dgager les entits naturelles grce aux identifiants
4 Rattacher les proprits aux entits
5 Recenser les associations entre entits et leur rattacher leurs ventuelles proprits
6 Dterminer les cardinalits de chaque couple entit - association
7 Dcomposer si possible l'aide des contraintes d'intgrit fonctionnelle
8 Vrifier le modle : s'assurer de la conformit aux rgles de construction
9 Normaliser le modle : s'assurer qu'il est au moins en 3
me
Forme Normale
tablir une liste des donnes partir des documents de lentreprise, et plus gnralement des tous les
supports de linformation.
Classer ces donnes par ordre alphabtique afin de balayer tout a priori sur les regroupements de
proprits.
Procder lpuration des polysmies, des synonymes et des redondances.
Reprer les identifiants existants pour dgager les objets naturels.
Rattacher ces objets les proprits en dpendances fonctionnelle de leur identifiant.
Placer les relations et leur rattacher si besoin est les proprits en dpendance fonctionnelle de
plusieurs identifiants.
Considrer les proprits restantes afin de les regrouper en objets pour lesquels on crera les
identifiant non formaliss.
tudier les cardinalits de chaque couple objet-relation.
Simplifier le modle laide des contraintes dintgrit fonctionnelle.
Procder la vrification laide des rgles.
Pourquoi y aurait-il un problme ?
1- Modliser n'est pas faire de la botanique : se promener dans le "champ - information" pour y ramasser des
"fleurs - proprits" qu'il suffirait de cueillir parce qu'elles sont dj l. Cette dmarche repose sur plusieurs
hypothses qui s'avrent errones dans la pratique :
2- Selon la formule: "Les donnes ne sont pas donnes" : il faut les chercher. En gnral on ne sait pas au
dpart le dtail de ce que l'application devra faire. Le modle est le moyen d'en discuter avec les futurs
utilisateurs. On ne peut donc d'emble dresser un inventaire exhaustif des donnes lmentaires (le
dictionnaire).
3- Modliser n'est pas rsoudre un problme dont l'nonc a t pos par ailleurs. Modliser, c'est fabriquer
l'nonc du problme, ce qui est beaucoup plus difficile. Lorsque l'nonc a t correctement tabli, les
solutions sont quasi videntes.
4- Cardinalits, dcomposition, vrification, normalisation ne sont pas des btons que l'on emploie aprs
coup pour mettre de l'ordre dans le maquis. Ce sont des instruments qui aident la construction du modle :
trouver de nouvelles entits, de nouvelles associations ou proprits par vrification immdiate et prcision
de ce que veut dire ce qui a t dessin.
TSDI SGBDR
Farih Said 45
5- Enfin la dmarche n'est pas de nature squentielle, un parcours d'tapes successives. On boucle en
permanence sur les 9 points du tableau ci-dessus chaque pas de conception. C'est une dmarche
incrmentale.
6- Alors comment commencer ? En posant quelques entits et associations gnrales qui nous paraissent trs
importantes pour le domaine. Ne pas dmarrer sur les dtails (ils finiront bien par trouver une solution en
temps utile)
7- Comment continuer ? En examinant soigneusement ( l'aide des cardinalits, identifiants et rgles) ce que
veut dire ce qu'on a crit. En vrifiant que ce que l'on croit avoir compris est bien ce qui est. La seule faon
d'en tre certain est de demander ceux qui font rellement le travail dans l'organisation : les "utilisateurs".
Le bon concepteur est celui qui sait faire parler les gens (et qui sait les couter, videmment). Donc, on
continue en discutant avec son modle et ses utilisateurs.
8- Comment on sait que l'on a fini ? Ce n'est jamais fini. Pour rendre la chose plus concrte, on cre un petit
prototype (base de donnes + requtes) que l'on montre l'utilisateur. S'il dit que a ne va pas, on corrige. S'il
dit que a va, on peut provisoirement s'arrter (tout en sachant bien qu'il faudra srement y revenir).
Relation Un Plusieurs (dpendance fonctionnelle)
Pour chaque entit, une relation (table) ayant les mmes attributs et la mme cl primaire ;
La cl primaire de lentit dpendante est ajoute aux attributs de lentit dont elle dpend (cl
trangre) ;
Les attributs de lassociation sont aussi ajouts comme attributs de lentit dpendante
Relation Plusieurs- Plusieurs
Pour chaque entit, une relation (table) ayant les mmes attributs et la mme cl primaire ;
Pour la relation, une relation (table) ayant pour attributs les ventuels attributs de lassociation ainsi
que les attributs identifiant des deux entits de lassociation. Lensemble de ces attributs identifiant
constitue la cl primaire de la table
Relation Un Un (association binaire)
Pour chaque entit, une relation (table) ayant les mmes attributs et la mme cl primaire ;
Une des deux relations doit inclure les attributs de la cl primaire de lautre (cl trangre) ;
Une alternative est de regrouper les deux entits en une seule relation, regroupant tous les attributs
des deux entits, et ayant pour cl primaire la cl primaire de lune des entits de la relation. Cette
solution nest a priori pas souhaitable dans la mesure o elle ne reflte pas la volont exprime au niveau
conceptuel de voir apparatre les deux entits de faon distincte.
TSDI SGBDR
Farih Said 46
Travaux Pratiques
TP1 :
Normalisation Exercice Agence immobilire
Base de donnes initiale
NumClt NomClt NumApp AdrApp DateDLoc DateFLoc Montant NumProp NomProp
CR76 Hassan
Bachiri
PG4 12, rue de la Gare 01.07.93 31.08.95 3500 CX40 Ahmed
Saidi
PG16 7, av. de la
Renaissance
01.09.95 01.09.96 4500 CX93 Houda
Natiri
CR56 Wafae
Matar
PG4 12, rue de la Gare 01.09.92 10.06.93 3500 CX40 Ahmed
Saidi
PG36 3, Grande Rue 10.10.93 01.12.94 3800 CX93 Houda
Natiri
PG16 7, av. Renaissance 01.01.95 10.08.95 4500 CX93 Houda
Natiri
1. Base de donnes en 1re forme normale (1FN)
NumClt NomClt NumApp AdrApp DateDLoc DateFLoc Montant NumProp NomProp
CR76 Hassan
Bachiri
PG4 12, rue de la Gare 01.07.93 31.08.95 3500 CX40 Ahmed
Saidi
CR76 Hassan
Bachiri
PG16 7, av. de la
Renaissance
01.09.95 01.09.96 4500 CX93 Houda
Natiri
CR56 Wafae
Matar
PG4 12, rue de la Gare 01.09.92 10.06.93 3500 CX40 Ahmed
Saidi
CR56 Wafae
Matar
PG36 3, Grande Rue 10.10.93 01.12.94 3800 CX93 Houda
Natiri
CR56 Wafae
Matar
PG16 7, av. Renaissance 01.01.95 10.08.95 4500 CX93 Houda
Natiri
2. Dpendances fonctionnelles et cl
NumClt -> NomClt ; NumClt
NumApp -> DateDLoc DateFLoc
NumApp -> AdrApp Montant NumProp NomProp ;
NumProp -> Nom_Prop
Cl : (NumClt NumApp) dtermine tous les attributs de la relation
R1 (Clients) R2 (Appartements)
NumClt NomClt
CR76 Hassan Bachiri
CR56 Wafae Matar
NumApp AdrApp Montant NumProp NomProp
PG4 12, rue de la Gare 3500 CX40 Ahmed Saidi
PG16 7, av. Renaissance 4500 CX93 Houda Natiri
PG36 3, Grande Rue 3800 CX93 Houda Natiri
R3 (Locations)
NumClt NumApp DateDLoc DateFLoc
CR76 PG4 01.07.93 31.08.95
CR76 PG16 01.09.95 01.09.96
CR56 PG4 01.09.92 10.06.93
CR56 PG36 10.10.93 01.12.94
CR56 PG16 01.01.95 10.08.95
TSDI SGBDR
Farih Said 47
3. Mise en 3me forme normale (3NF)
Supposons quon veuille modifier ou corriger le nom dun propritaire apparaissant plusieurs fois dans
la table (propritaire de plusieurs appartements) => il faut modifier plusieurs n-uplets !
Ceci est d au fait quil existe une dpendance transitive entre NumApp, NumProp et NomProp.
Il faut donc dcomposer R2 pour obtenir un schma en 3
me
forme normale :
R'2 (Appartements) R4 (Propritaires)
NumApp AdrApp Montant NumProp
PG4 12, rue de la Gare 3500 CX40
PG16 7, av. de la Renaissance 4500 CX93
PG36 3, Grande Rue 3800 CX93
NumProp NomProp
CX40 Ahmed Saidi
CX93 Houda Natiri
TP2 :
Systme d'Information :
L'entreprise "WebCash" de vente par correspondance dsire ajouter son site un systme de
consultation de factures visible en ligne pour ses clients. Chaque client, aprs authentification, pourra
accder toutes les factures le concernant, qu'elles soient anciennes ou en cours de traitement
indiffremment. Voici une copie de cette facture :
WebCash S.A.R.L
24, Avenue des Rves 22008 Casa
FACTURE N 12345
Casa, le 15/10/2007
Nom : Bidwach
Prnom : Hassan
Adresse : 12, rue du centre
Code Postal : 30000
Ville : Fs
N Article Libell Prix Unitaire Quantit Prix
234 Stylo 12.5 Dh 1 12.50 Dh
568 Classeur 75.00 Dh 2 150 Dh
132 Cahier 30.00 Dh 1 30.00 Dh
TOTAL TTC : 192.50 Dh
Dont TVA 19.6% : 37.73 Dh
A PAYER : 192.50 Dh
Avec nos plus cordiaux remerciements
Construire le Modle Conceptuel de Donne (MCD),
Gnrer le Modle Logique de Donnes Relationnelles (MLDR),
Transposer en Modle Physique de Donne (MPD).
Le Modle Conceptuel de Donne (MCD) :
Identifier les entits prsentes,
Lister les proprits des entits,
Identifier de manire unique chaque occurrence,
tablir les relations entre les diffrentes entits,
Et Identifier les cardinalits.


TSDI SGBDR
Farih Said 48
Identifier les entits prsentes :
On relve trois entits : Client, Facture, Article
Client est l'ensemble des clients de la socit WebCash. Une occurrence de cette entit est prsente
par Hassan Bidwach, qui est le client qui cette facture est destine.
Facture est l'ensemble des factures mises par WebCash, dont une occurrence est prsente en
"FACTURE N 12345".
Article est l'ensemble des articles vendus par WebCash, dont trois occurrences sont prsentes,
dnomms Stylo, Classeur et Cahier.
Remarques :
Une facture tant compose de plusieurs lignes, il aurait t possible de relever l'entit
LIGNE_FACTURE : elle n'est utile que si l'on dsire archiver pour chaque ligne son Numro. La base
dduite aurait t sensiblement la mme, dmontrant ainsi que plusieurs solutions sont parfois possibles.
La TVA est ici considre comme constante et unique. Dans le cas contraire, elle aurait reprsent
l'entit TVA.
La socit WebCash ne reprsente pas une occurrence d'une entit, car c'est la seule socit mettrice
de facture de notre analyse.
Lister les proprits des entits :
Un Client est caractris par son Nom, son Prnom, son Adresse, son CodePostal et sa Localit. Afin de
pouvoir s'authentifier, il est aussi caractris par un Login et un Passwd.
Une Facture est caractrise par son Numro, et sa Date d'mission.
Un Article est caractris par son Numro, son libell, et son PrixUnitaire. Le prix total, de par son
PrixUnitaire et sa quantit, peux tre recalcul : ce n'est donc pas une caractristique de lArticle.
Chaque proprit doit avoir une seule valeur possible pour chaque occurrence, ce qui est ici le cas.
Elle doit de plus tre lmentaire et non-dcomposable, ce qui est aussi le cas. D'une manire gnrale,
toute information rsultant d'un calcul n'est pas une caractristique d'une entit.
Identifier de manire unique chaque occurrence :
Chaque occurrence de chaque entit doit pouvoir tre identifie de manire unique : cette proprit
s'appelle l'identifiant.
Un Client sera identifi par un Numro unique, cette caractristique de l'entit tant appel
NumClient.
Une Facture sera identifie par son Numro qui est unique. Cette caractristique sera appele
NumFacture.
Un Article sera identifi par son Numro qui est lui aussi unique. Cette caractristique sera appele
RefArticle.
tablir les relations entre les diffrentes entits :
Un Client obtient une Facture qui contient des Articles en certaine quantit.
Identifier les cardinalits :
Un mme Client obtient 1 ou plusieurs Facture.
TSDI SGBDR
Farih Said 49
Une mme Facture est obtenue par un seul Client.
Une mme Facture contient 1 ou plusieurs Articles.
Un Article est contenu dans 0 ou n Facture.
On en dduit donc le MCD suivant :
1,n
0,n
1,1
1,n
Facture
NumFact
Date
<pi > Enti er
Date
<O>
NumFact <pi >
Conteni r
Quanti t <Indfi ni >
Cl i ent
NumCl i ents
Nom
Prenom
Adresse
CodePos
Vi l l e
Logi n
Password
Enti er
Texte
Texte
Texte
Enti er
Texte
Texte
Texte
NumCl i ents <pi >
Commander
Arti cl es
RefArt
Dsi gnati on
Pri x uni tai re
<pi > Enti er
Texte
Monnai e
<O>
RefArt <pi >

Modle Logique de Donnes Relationnelles (MLDR) :
Relation (X,1)-(X,n) entre Facture et Client:
Client (NumClient, Nom, Prenom, Adresse, CodePostal, Ville, Login, Passwd)
Facture (NumFact, #NumClient, Date)
Relation (X,n)-(X,n) entre Facture et Article:
Contenir (#NumFact, #RefArt, Quantit)
Article (RefArt, Libelle, PrixUnitaire)
Modle Physique de Donne (MPD) :
FK_FACTURE_COMMANDER_CLIENT
FK_CONTENIR_CONTENIR_FACTURE
FK_CONTENIR_CONTENIR2_ARTICLES
Facture
NumFact
NumCl i ents
Date
i nteger
i nteger
date
<pk>
<fk>
Conteni r
NumFact
RefArt
Quanti t
i nteger
i nteger
<Non dfi ni >
<pk,fk1>
<pk,fk2>
Cl i ent
NumCl i ents
Nom
Prenom
Adresse
CodePos
Vi l l e
Logi n
Password
i nteger
l ong varcha
l ong varcha
l ong varcha
i nteger
l ong varcha
l ong varcha
l ong varcha
Arti cl es
RefArt
Dsi gnati on
Pri x uni tai re
i nteger
l ong varchar
numeri c(8,2)
<pk>

Les prix intermdiaires, la somme totale et autres rsultats sont des traitements, c'est dire qu'ils sont
calculs par rapport aux informations contenues dans la base. Ainsi, toute erreur sera forcment une erreur
de calcul, et non pas une erreur de stockage. Il est plus facile de vrifier un programme d'extraction de
donne que de vrifier la cohrence du contenu d'une base.
TSDI SGBDR
Farih Said 50
Exercices
Ralisations des MEA
Exercice 1 : Commandes
En partant de notre modle de prise de commande prcdent, ajouter les entits suivantes :
Messager (il s'agit de la socit qui va s'occuper de faire la livraison)
Employ (il s'agit de l'employ ayant pris la commande)
Fournisseur (il s'agit du fournisseur auprs duquel on peut s'approvisionner en Produit)
Exercice 2 : club sportif
Un club sportif organise chaque semaine des stages d'entranement d'une journe pour ses membres
(nom, prnom, numro, date de naissance, rue, code postal, ville). Des moniteurs professionnels sont
recruts pour l'encadrement : (nom, prnom, numro, adresse). Les stages ont un nom qui change chaque
semaine. Ils ont un niveau, un contenu, une date, un lieu
Un stage n'est encadr que par un seul moniteur. Un adhrent peut suivre plusieurs stages pendant une
journe.
Trouver les entits, les associations, les attributs, les ides de relation
Exercice 3 : Cours
Une base de donnes Cours comprend comme ples les professeurs (Numro, Nom, Prnom, Adresse,
grade), les matires tudies (Refmat, Intitul) et les classes de l'tablissement (Refclasse, Numsalle)
Un cours consiste tudier une matire, et est donn par un professeur une salle.
Raliser ce MEA.
Exercice 4 : Article d'un journal
Concevoir une base de donnes destine conserver des descriptions darticles parus dans les journaux,
en respectant les contraintes suivantes:
(1) Un diteur dite des journaux. Il est caractris par un nom et une adresse.
(2) Un journal est dit par un diteur et publie des articles dans ses numros. On conservera le nom du
journal et le nom de son rdacteur en chef.
(3) Un numro de journal contient une collection darticles.
(4) Chaque article paru dans un numro est sign par un auteur. On dsire conserver le titre et un rsum de
larticle ainsi que le nom de son auteur.
(5) Les auteurs sont connus par leur nom, leur prnom, leur adresse et leur date de naissance.
Raliser ce MEA.
Exercice 5 : Agence de location de films vido :
Une agence de location des films vido veut crer sa base de donnes pour grer sa clientle et son
stock, sa base contiendra :
Les informations sur un film : NFilm, titre, Anne, Type, Dure,
Exemplaire : NExemp, Disponibilit,
Les informations sur le client : NClient, Nom, Prnom, Adresse, Tlphone,
Les informations sur les acteurs : NActeur, Nom, Prnom, Date Naissance, Nationalit, Biographie,
TSDI SGBDR
Farih Said 51
Les informations sur le ralisateur : NRalisateur, Nom, Prnom, Date Naissance, Nationalit,
Biographie,
Un film est mis en scne par un ou plusieurs ralisateurs, on peut y trouv plusieurs acteurs jouant des
rles, ce film pour des raison de gestion est copi dans un ou plusieurs exemplaires lesquels les clients
peuvent emprunts.
Remarques :
Lors de la ralisation de la base de donnes, les entits Ralisateurs et Acteurs peuvent tre regroupes
en une seule table car il y a un nombre non ngligeable de ralisateurs qui sont acteurs, et vice-versa.
Dans ce cas, un champ d'un seul caractre permettra de faire la diffrence entre un ralisateur pur, un
acteur pur et un acteur ralisateur.
Noter aussi les cardinalits entre les entits Acteurs et Films, en effet, un film d'animation ne possde
aucun acteur.
Dans l'entit Exemplaires figure un attribut "disponibilit" permettant de savoir si l'exemplaire nX
d'un film est disponible ou en cours d'emprunt.
Dterminer le modle conceptuel de donnes selon le formalisme Entit Association
Exercice 6 : Socit Informatique
Une socit de prestations de services informatiques veut concevoir une base de donnes permettant le
suivi et la facturation des interventions ralises chez les clients. La socit est susceptible de raliser
n'importe quelle intervention. Il faut imprativement que le modle que vous allez concevoir puisse rpondre
aux questions suivantes, sans en oublier une partie :
1. Quel employ est dans quel service, et qui le dirige ?
2. Quel employ travaille pour quel client et quelles dates ?
3. Quel client a demand quelle intervention ?
4. Quels matriels sont facturer, pour quelles interventions, et en quelles quantits ?
5. Quels matriels composent quels autres matriels ?
Voici quelques informations supplmentaires quon doit connatre :
Un employ ne peut appartenir qu' un seul service mme si chaque service peut contenir une
multitude d'employs.
A aucun moment le client ne peut prendre contact directement avec un employ.
Une intervention peut ncessiter plusieurs jours, et la prsence de plusieurs employs. Il est aussi
possible qu'une intervention ne ncessite la prsence que d'un seul employ pour une seule journe. La
prsence des employs pour une intervention peut-tre discontinue (vacances, week-end,...).
Exercice 7 : Les nageurs
Exprimons avec le modle MEA la ralit suivante : des nageurs, dont les caractristiques sont : un nom,
un prnom et une qualit, prennent des bains d'une certaine dure une certaine date, sur certains bassins
dont les caractristiques sont le nom du bassin, la rgion et la pollution :
Les contraintes dfinir (dont les cardinalits d'association) posent, par exemple, les problmes suivants :
Un baigneur peut-il prendre plusieurs bains? Sur des plages diffrentes?
Une ou plusieurs personnes peuvent-elles se baigner sur une plage trs pollue ?
TSDI SGBDR
Farih Said 52
autorise-t-on les mauvais nageurs se baigner sur une plage X ?
Exercice 8 : dition des livres
Un diteur gre sur systme informatique, son catalogue de livres et leurs auteurs. Beaucoup d'ouvrages
sont labors par plusieurs auteurs. Bien entendu, un ouvrage est labor par au moins un auteur.
Les cardinalits sont les suivantes:
Un livre est crit par 1 plusieurs auteurs
Exercice 9 : La gestion dune bibliothque
Soit le dictionnaire des donnes :
numro de livre : n attribu chaque livre prsent dans la bibliothque
numro ISBN : nattribu chaque ouvrage. Un ouvrage peut exister en plusieurs exemplaires dans la
bibliothque. Chaque exemplaire ou livre a un n de livre, interne la bibliothque
tat du livre : (3 valeurs : bon, moyen, mauvais)
titre de l'ouvrage
nombre de pages de l'ouvrage
nom de ou des auteur(s)
mot-cl : un ouvrage (et un livre) peut tre caractris par plusieurs mots-cls. Un mot-cl est un
libell, dfini en vue de recherches. Exemples : informatique, compilation, musique, rock
numro d'adhrent
nom et prnom d'adhrent
commune de l'adhrent
date de l'emprunt.
Dterminer le modle conceptuel de donnes selon le formalisme Entit Association
Exercice 10 : gestion dcole
tudiant (ntudiant, nom, prnom, date naissance)
Enseignant (no_compte, nom, prnom, statut)
Cours (nomC, cycle, nom_enseignant)
Inscription (ntudiant, nomC, note1, note2)
Dterminer le modle conceptuel de donnes selon le formalisme Entit Association
Traduction des modles
Traduire les modles conceptuels suivant en modle relationnel
Exercice 1:
MCD
1,n
1,1
Coureurs
NumCr
NomCr
PrenomCr
Nati onal i t
<pi > Enti er
Texte
Texte
Texte
<O>
NumCr <pi >
Equi pes
CodeEq
NomEq
Di recteur
<pi > Enti er
Texte
Texte
<O>
CodeEq <pi >
Apparteni r
DateContrat Date


TSDI SGBDR
Farih Said 53
Exercice 2:
MCD
1,n 0,n
Etape
NumEtp
Vi l l eDep
Vi l l eArr
Di stance
<pi > Enti er
Texte
Texte
Enti er
<O>
NumEtp <pi >
Coureurs2
NumCrr
NomCrr
PrenomCrr
Nati onal i t
<pi > <Indfi ni >
Texte
Texte
Texte
<O>
NumCrr <pi >
Parti ci per
TempsRal i s <Indfi ni >

Exercice 3:
MCD
0,1
1,1
Sal ari s
NumSal r
NomS
PrenomS
Sal ai re
<pi > Enti er
Texte
Texte
Monnai e
<O>
NumSal r <pi >
Dpartements
NomDpt
Tl phone
Di recteur
Enti er
Enti er
Texte
<O>
NomDpt <pi >
Di ri ger2

Du MCD vers MLDR et MPD
Exercice 1 :
Une association veut crer une base de donnes qui lui permettra d'enregistrer le contenu de tous les
DVD dont elle dispose.
Ils veulent ensuite pouvoir diter la liste de tous les chanteurs, de tous les titres et le sommaire de
chaque DVD.
Dessiner le modle de donnes correspondant.
Exercice 2 :
Un magasin de sport a besoin de stocker ses informations principales dans une base de donnes. Il s'agit
de stocker toutes les informations relatives ses produits, ses clients et ses fournisseurs.
Il souhaite que l'organisation soit facilite par le regroupement des produits en diffrentes catgories. Et
il souhaite partir de l pouvoir facilement consulter ses stocks, la liste de ses meilleurs clients, le top 10 de
ses produits vendus, ou la facture d'un client donn...
Crer les MCD et MLD correspondants.
Exercice 3 :
Un complexe cinmatographique a besoin d'une base de donnes pour grer la distribution de ses billets
de cinma. Les grants souhaitent ainsi facilement grer le remplissage de leurs salles.
Et ils souhaitent ensuite pouvoir facilement obtenir des informations sur les films qui marchent le
mieux, les acteurs attirant le plus de public, les heures d'affluence des clients, ou la recette d'une sance
prcise...
Crer les MCD et MLD correspondants.
Exercice 4
Une agence immobilire a besoin d'une base de donnes pour grer ses locations.
Il faut entre autres qu'elle soit capable de cibler les logements pouvant convenir un client donn.
TSDI SGBDR
Farih Said 54
Elle souhaite galement pouvoir facilement dresser la facture d'un client donn, savoir ce qu'elle doit
verser un propritaire donn, ou calculer les primes de ses agents.
Crer les MCD et MLD correspondants.
Exercice 5: intervention sur un appareil
Un client demande une intervention sur un appareil, un fonctionnaire peut raliser une intervention en
utilisant des pices lesquelles sont composes par dautres pices.
Chaque employ dirige autres employs et se dirige par dautre dans un service.
Crer les MCD, MPD et MLD correspondants.
Exercice 6: Ltudiant et le sport
Un tudiant rside dans une ville
Un tudiant est inscrit dans une facult
Un tudiant peut pratiquer un ou plusieurs sports sous la direction dun entraneur.
Crer les MCD, MPD et MLD correspondants.
Exercice 7: base de donnes archologiques
Cration dune base de donnes archologiques dans laquelle on veut mettre les informations
suivantes :
1. Un objet est trouv par une quipe donne, dans un site donn. Lquipe est reconnue par le nom de son
directeur, et le site par son numro, sa longueur, et sa largeur. Le site appartient une zone de fouille qui
peut en contenir plusieurs. La zone de fouille porte le nom de la ville la plus proche.
2. Lobjet est identifi par un numro, une dsignation (qui le dcrit), une catgorie (par exemple, meuble,
accessoire, lment darchitecture, manuscrit...), par un tat de compltude (sil est total ou sil est partiel
comme un pied de table, un tesson de bouteille, etc.) et par un tat de conservation (intact, bon, restaurer,
mauvais tat, trs mauvais).
3. Plusieurs quipes peuvent fouiller simultanment la mme zone de fouille, mais pas le mme site. En
revanche les quipes tournent, dun site lautre, chaque jour.
Dfinition des entits
Objet : NumroO, Dsignation, Catgorie, Etatcompltude, Conservation
Equipe : NomDirecteur
Site : NumroS, Longueur, Largeur
ZF (Zone de Fouille) : NumroZF, ville
Exercice 8: centre de vacances
La cl primaire de la table la cardinalit (0,1) devient une cl trangre dans la table la cardinalit (1,1) :
S.I. :
Dans un centre de vacances, Chaque animateur encadre en solo 0 ou 1 groupe, chaque groupe tant
encadr par un et un seul animateur.
Exercice 9: une bibliothque
Un client qui s'inscrit la bibliothque verse une caution. Suivant le montant de cette caution il aura le
droit d'effectuer en mme temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours
TSDI SGBDR
Farih Said 55
Un livre est caractris par son numro dans la bibliothque (identifiant), son titre, son diteur et son
(ses) auteur(s).
On veut pouvoir obtenir, pour chaque client les emprunts qu'il a effectus (nombre, numro et titre du
livre, date de l'emprunt).
Chaque semaine, on liste des emprunteurs en retard : nom et adresse, date de l'emprunt, numro et
titre du livre concern.
On veut enfin pouvoir connatre pour chaque livre sa date d'achat et son tat.
Les formes normales
Exercice 1:
RV Locations
NumClt Date_RV Heure_RV Num_Emp Salle
CR76 13.05.05 10.30 SG5 101
CR56 13.05.05 12.00 SG5 101
CR74 13.05.05 12.00 SG37 102
CR56 01.07.05 10.30 SG5 102
Contraintes
Un client n'est reu qu'une seule fois dans une journe par un employ.
Un employ occupe la mme salle de RV toute la journe.
Exercice 2: Deuxime forme normale
Soit la relation Commandes (article, quantit, prix, fournisseur, adresse du fournisseur)
1 - Dfinir la cl primaire de cette relation
2 Cette relation reprsente une entit ou une association? Prciser.
3 - Cette relation est elle en 2NF ? Pourquoi ?
4 Si non, quelle modification du modle de donnes faut-il envisager?
Exercice Troisime forme normale
Soit la relation Fournisseurs (Fournisseur, Rue, Ville, Code Postal)
1 - Dfinir la cl primaire de cette relation
2 - Cette relation est elle en 3NF ? Pourquoi ?
3 Si non, quelle modification du modle de donnes faut-il envisager?
TSDI SGBDR
Farih Said 56
Interprtation de schmas entit/association
Exercice 1: Centre mdical
On donne un schma E/A ci-dessous reprsentant des visites dans un centre mdical.
Rpondre aux questions suivantes en fonction des caractristiques de ce schma (indiquer si la situation
dcrite est reprsentable, indpendamment de sa vraisemblance).

Question A : Un patient peut-il effectuer plusieurs visites ?
Question B : Un mdecin peut-il recevoir plusieurs patients dans la mme consultation ?
Question C : Peut-on prescrire plusieurs mdicaments dans une mme consultation ?
Question D : Deux mdecins diffrents peuvent-ils prescrire le mme mdicament ?
Exercice - Tournoi de tennis
Le schma E/A ci-dessous reprsente des rencontres dans un tournoi de tennis.
Rpondre aux questions suivantes en fonction des caractristiques de ce schma (indiquer si la situation
dcrite est reprsentable, indpendamment de sa vraisemblance).
TSDI SGBDR
Farih Said 57

Question A : Peut-on jouer des matchs de double ?
Question B : Un joueur peut-il gagner un match sans y a voir particip ?
Question C : Peut-il y avoir deux matchs sur le mme terrain la mme heure.
Exercice - Un journal
Le schma E/A ci-dessous reprsente le systme d'information (trs simplifi) d'un quotidien.
Rpondre aux questions suivantes en fonction des caractristiques de ce schma (indiquer si la situation
dcrite est reprsentable, indpendamment de sa vraisemblance).

Question A : Un article peut-il tre rdig par plusieurs journalistes ?
Question B : Un article peut-il tre publi plusieurs fois dans le mme numro ?
Question C : Peut-il y avoir plusieurs articles sur le mme sujet dans le mme numro ?
TSDI SGBDR
Farih Said 58
Exercices supplmentaires
Exercice 1 : les pannes
Sur des lignes (NLigne, nom) de transports composes de tronons (idTronon, nligne, villeDpart,
villeArrive, km, prix) entre deux villes, roulent des vhicules qui peuvent tomber en panne.
tablir le modle conceptuel de donnes sous format Diagramme Entit-Association.
On indiquera les cardinalits minimales et maximales des couples entit-association.
Dduire le MPD correspondant.
Exercice 2 : Linstitut priv
Il s'agit d'tablir le schma conceptuel d'une base de donnes pour la gestion des formations d'un
institut priv.
Un cours est caractris par un numro de cours (NCOURS), un libell (LIBELLE), une dure en heures
(DUREE) et un type (TYPE).
Un cours peut faire l'objet dans l'anne de plusieurs sessions identiques. Une session est caractrise par
un numro (NSES), une date de dbut (DATE) et un prix (PRIX).
Une session est le plus souvent assure par plusieurs animateurs enseignant le mme cours et est place
sous la responsabilit d'un animateur principal. Un animateur peut intervenir dans plusieurs sessions au
cours de l'anne. On dsire mmoriser le nombre d'heures (NBH) effectu par un animateur pour chaque
session. Un animateur est caractris par un numro (NANM), un nom (NOMANM) et une adresse
(ADRANM).
Chaque session est suivie par un certain nombre de participants. Un participant est caractris par un
numro (NPAR), un nom (NomPar) et une adresse (AdrPar).
tablir le modle conceptuel de donnes sous format Diagramme Entit-Association.
On indiquera les cardinalits minimales et maximales des couples entit-association.
Exercice 3 : Les invitations
Une personne dsire modliser le systme dinformation correspondant aux rceptions quelle organise
(personnes invites, menus, ...). Ce systme dinformation doit lui permettre, en autre chose, de pouvoir
laider organiser une rception en lui offrant la possibilit de construire sa liste dinvits, ainsi que son
menu et les boissons associes.
Une rception a lieu une date donne et y sont invites des personnes dont on connat le nom, le
prnom, leur sexe, leur ge et leur profession (lidentification dune personne se fait par son nom et son
prnom).
Le repas servi lors dune rception comprend un certain nombre de plats identifis par leur nom
("viande hache " par exemple) et leur nature (" entre froide ", " dessert " par exemple).
Pour pouvoir russir un menu, il faut que les boissons servies soient en accord avec les invits. On
dispose donc pour chaque plat dune liste de types de boissons possibles caractrises par leur degr de sucre
("Trop sucr" par exemple) et un nom.
tablir le modle conceptuel de donnes sous format Diagramme Entit-Association.
On indiquera les cardinalits minimales et maximales des couples entit-association.

TSDI SGBDR
Farih Said 59
Exercice 4 - Les Campagnes de chalutage exprimental
On se propose de concevoir une base de donnes pour grer les donnes rcoltes lors de campagnes de
recherche en mer.
Chaque campagne est identifie par un code. Elle regroupe un ensemble d'oprations de pche appeles
stations.
Une campagne est ralise avec un bateau identifi par son nom, sur une priode continue limite par
la date de la premire station et la date de la dernire station de cette campagne. La priode de la campagne
se tient dans une saison. L'information sur la saison est importante pour la prparation de la campagne et
l'analyse de ses rsultats.
Chaque station est ralise dans une strate (couche). Les strates sont issues du dcoupage d'une rgion
selon un systme de stratification choisi pour chaque campagne. Le systme de stratification est identifi par
un code, porte un nom ainsi qu'une description de la rgion prospecte et de son mode de dcoupage en
strates. Au sein d'un systme de stratification, toute strate est identifie par un code, porte un nom et une
description des critres qui ont servis sa dfinition.
Chaque station est identifie par un code interne la campagne. La station est localise dans le temps
(date, heures de dbut et de fin de l'opration de pche) et dans l'espace (position gographique en dbut et
fin d'opration de pche)
L'tat de la mer lors de l'opration de pche est une information importante. Un engin de pche, connu
par son nom, est utilis pour chaque station
La capture ralise par l'opration de pche est quantifie globalement par pese. Le nombre d'espces
captures est aussi identifi.
Enfin, pour chaque espce, identifie par son nom, son genre et sa famille, on dtermine le poids
correspondant dans la capture de la station.
tablir le modle conceptuel de donnes sous format Diagramme Entit-Association.
On indiquera les cardinalits minimales et maximales des couples entit-association.
Exercice 5 : Supermarch
Reprsenter le diagramme Entit Relation ci-dessous dans le modle relationnel.
0,n
0,n
0,n
0,1
est di ri g
0,1
Di ri ge
0,n
1,n
1,n
1,n
Produi ts
CodProd
NomProd
TypeB
<pi > Enti er
Texte
Texte
<O>
CodProd <pi >
Rayons
NomRay
Etage
<pi > Texte
Enti er
<O>
NomRay <pi >
Empl oys
NumE
NomE
Sal ai re
<pi > Enti er
Texte
Monnai e
<O>
Identi fi ant_1 <pi >
Vendre
Quanti t Enti er
Affecter
Di ri ger
Fourni sseurs
NumFour
NomFour
Adresse
<pi > Enti er
Texte
Texte
<O>
NumFour <pi >
Li vrer

Exercice 6 : centre mdical
On donne un schma E/A ci-dessous reprsentant des visites dans un centre mdical.
Construire le schma relationnel correspondant.
TSDI SGBDR
Farih Said 60
Indiquer prcisment :
La cl primaire.
Les cls trangres.
Les contraintes ventuelles.
0,n
0,n
1,1
0,n
1,1
1,n
Medi caments
i dMed
Li bel l
<pi > Texte
Texte
<O>
i dMed <pi >
Consul tati ons
NumCons
Date
<pi > Enti er
Date
<O>
NumCons <pi >
Medeci ns
NumMed
Nom
Prnom
<pi > Enti er
Texte
Texte
<O>
NumMed <pi >
Pati ents
NumPat
NomPat
<pi > Enti er
Texte
<O>
NumPat <pi >
Prescri re
nbrPri ses Enti er
Donner
Assi ster

Exercice 7 : campagnes de chalutage
Reprsenter dans le modle relationnel le diagramme Entit-Relation campagnes de chalutage dj utilis.
TSDI SGBDR
Farih Said 61
Solutions
Ralisations des MEA
Exercice 2 : club sportif
MCD :
0,n
1,1
0,n
0,n
Moni teurs
Stages Membres
Encadrer
Sui vre2

Exercice 3 : Cours
MCD :
1,n
1,n
1,n
Mati res
RefMat
NomMat
<pi > <Indfi ni >
Texte
<O>
RefMat <pi >
Professeurs
IdProf
NomP
PrnomP
AdresseEM
<pi > Enti er
Texte
Texte
Texte
<O>
IdProf <pi >
Cl asses
RefCl s
NomCl s
<pi > Enti er
Texte
<O>
RefCl s <pi >
Cours
Date
Heure
Date
Heure

MPD :
FK_COURS2_COURS_MATIERES
FK_COURS2_COURS2_CLASSES
FK_COURS2_COURS3_PROFESSE
Mati res
RefMat
NomMat
<Non dfi ni >
l ong varchar
<pk>
Professeurs
IdProf
NomP
PrnomP
AdresseEM
i nteger
l ong varchar
l ong varchar
l ong varchar
<pk>
Cl asses
RefCl s
NomCl s
i nteger
l ong varchar
<pk>
Cours2
RefMat
RefCl s
IdProf
Date
Heure
<Non dfi ni >
i nteger
i nteger
date
ti me
<pk,fk1>
<pk,fk2>
<pk,fk3>





TSDI SGBDR
Farih Said 62

Exercice 5 : Agence de location de films vido :
MCD :
1,n
1,n
0,n
1,n
1,n
1,n
1,n
1,1
0,1
0,n
Ral i sateurs
NumRl s
Nom
Prenom
Nati onal i t
Bi ographi e
<pi > Enti er
Texte
Texte
Texte
Mul ti byte
<O>
NumRl s <pi >
Acteurs
NumAct
Nom
Prenom
Nati onal i t
Bi ographi e
<pi > Numri que
Texte
Texte
Texte
Mul ti byte
<O>
NumAct <pi >
Fi l ms
NFi l m
Ti tre
Dure
Anne
Hi stoi re
<pi > Numri que
Texte
Numri que
Date
Texte
<O>
NFi l m <pi >
Genre
RefGen
Inti tul Gen
<pi > Enti er
Texte
<O>
RefGen <pi >
Cl i ent2
NumCl i ent
Nom
Prenom
Adresse
Tl phone
<pi > Numri que
Texte
Texte
Texte
Numri que
<O>
NumCl i ent <pi >
Exempl ai res
NumExp
Di spo
<pi > Enti er
Bool en
<O>
NumExp <pi >
Mettre en scne
j ouer dans
Etre de
Copi er en
Emprunter

MPD :
FK_EXEMPLAI_COPIER_EN_FILMS
FK_EXEMPLAI_EMPRUNTER_CLIENT2
FK_METTRE_E_METTRE_EN_REALISAT
FK_METTRE_E_METTRE_EN_FILMS
FK_JOUER_DA_JOUER_DAN_FILMS
FK_JOUER_DA_JOUER_DAN_ACTEURS
FK_ETRE_DE_ETRE_DE_GENRE
FK_ETRE_DE_ETRE_DE2_FILMS
Ral i sateurs
NumRl s
Nom
Prenom
Nati onal i t
Bi ographi e
i nteger
l ong varchar
l ong varchar
l ong varchar
char(1)
<pk>
Acteurs
NumAct
Nom
Prenom
Nati onal i t
Bi ographi e
numeri c
l ong varchar
l ong varchar
l ong varchar
char(1)
<pk>
Fi l ms
NFi l m
Ti tre
Dure
Anne
Hi stoi re
i nteger
l ong varchar
ti me
date
l ong varchar
<pk>
Genre
RefGen
Inti tul Gen
i nteger
l ong varchar
<pk>
Cl i ent2
NumCl i ent
Nom
Prenom
Adresse
Tl phone
numeri c
l ong varchar
l ong varchar
l ong varchar
i nteger
<pk>
Exempl ai res
NumExp
NumCl i ent
NFi l m
Di spo
i nteger
numeri c
i nteger
smal l i nt
<pk>
<fk2>
<fk1>
Mettre en scne
NumRl s
NFi l m
i nteger
i nteger
<pk,fk1>
<pk,fk2>
j ouer dans
NFi l m
NumAct
i nteger
numeri c
<pk,fk1>
<pk,fk2>
Etre de
RefGen
NFi l m
i nteger
i nteger
<pk,fk1>
<pk,fk2>

Exercice 7 : Les nageurs
MCD :
0,n
0,n
Bai gneurs
NumBgn
NomBgn
PrnomBgn
Qual i t
<pi > Enti er
Texte
Texte
Texte
<O>
NumBgn <pi >
Pl ages
i dPl age
NomPl f
Rgi on
Pol uti on
<pi > Enti er
Texte
Texte
Texte
<O>
i dPl age <pi >
Prendre Bai n
Date
Dure
Date
Enti er



TSDI SGBDR
Farih Said 63
MPD :
FK_PRENDRE__PRENDRE_B_BAIGNEUR
FK_PRENDRE__PRENDRE_B_PLAGES
Bai gneurs
NumBgn
NomBgn
PrnomBgn
Qual i t
i nteger
l ong varchar
l ong varchar
l ong varchar
<pk>
Pl ages
i dPl age
NomPl f
Rgi on
Pol uti on
i nteger
l ong varchar
l ong varchar
l ong varchar
<pk>
Prendre Bai n
NumBgn
i dPl age
Date
Dure
i nteger
i nteger
date
i nteger
<pk,fk1>
<pk,fk2>

Exercice 9 : La gestion dune bibliothque
MCD :
0,n
0,n
0,n
0,n
0,n
0,n
0,n
0,n
Exempl ai re
NumLvr
EtatLvr
<pi > Enti er
Texte
<O>
NumLvr <pi >
Ouvrages
ISBNs
Ti tre
nbrPages
<pi > Enti er
Texte
Enti er
<O>
ISBNs <pi >
Adhrents
NumAdr
NomAdr
Tl phone
<pi > Enti er
Texte
Numri que
<O>
NumAdr <pi >
Auteurs
NumAut
NomAut
<pi > Enti er
Texte
<O>
NumAut <pi >
Mots-Cl s
MotCl <pi > Texte <O>
MotCl <pi >
Copi er en Exmp
Emprunte
DateRet Date
Ecri re
Qual i fi er

MPD :
FK_COPIER_E_COPIER_EN_EXEMPLAI
FK_COPIER_E_COPIER_EN_OUVRAGES
FK_QUALIFIE_QUALIFIER_OUVRAGES
FK_QUALIFIE_QUALIFIER_MOTS_CLE
FK_ECRIRE_ECRIRE_OUVRAGES
FK_ECRIRE_ECRIRE2_AUTEURS
FK_EMPRUNTE_EMPRUNTE_EXEMPLAI
FK_EMPRUNTE_EMPRUNTE2_ADHERENT
Exempl ai re
NumLvr
EtatLvr
i nteger
l ong varchar
<pk>
Ouvrages
ISBNs
Ti tre
nbrPages
i nteger
l ong varchar
i nteger
<pk>
Adhrents
NumAdr
NomAdr
Tl phone
i nteger
l ong varchar
i nteger
<pk>
Auteurs
NumAut
NomAut
i nteger
l ong varchar
<pk>
Mots-Cl s
MotCl l ong varchar <pk>
Copi er en Exmp
NumLvr
ISBNs
i nteger
i nteger
<pk,fk1>
<pk,fk2>
Emprunte
NumLvr
NumAdr
DateRet
i nteger
i nteger
date
<pk,fk1>
<pk,fk2>
Ecri re
ISBNs
NumAut
i nteger
i nteger
<pk,fk1>
<pk,fk2>
Qual i fi er
ISBNs
MotCl
i nteger
l ong varchar
<pk,fk1>
<pk,fk2>






TSDI SGBDR
Farih Said 64
Traduction des modles
Exercice 1:
MPD
FK_COUREURS_APPARTENI_EQUIPES
Coureurs
NumCr
CodeEq
NomCr
PrenomCr
Nati onal i t
DateContrat
i nteger
i nteger
l ong varchar
l ong varchar
l ong varchar
date
<pk>
<fk>
Equi pes
CodeEq
NomEq
Di recteur
i nteger
l ong varchar
l ong varchar
<pk>

MLD
Coureurs (NumCr, PrnomCr, NomCr, Nationalit, #CodeEq, DateContrat)
Equipes (CodeEq, NomEquipe, Directeur)
Exercice 2:
MPD
FK_PARTICIP_PARTICIPE_ETAPE
FK_PARTICIP_PARTICIPE_COUREURS
Etape
NumEtp
Vi l l eDep
Vi l l eArr
Di stance
i nteger
l ong varchar
l ong varchar
i nteger
<pk>
Coureurs2
NumCrr
NomCrr
PrenomCrr
Nati onal i t
<Non dfi ni >
l ong varchar
l ong varchar
l ong varchar
<pk>
Parti ci per
NumEtp
NumCrr
TempsRal i s
i nteger
<Non dfi ni >
<Non dfi ni >
<pk,fk1>
<pk,fk2>

MLD
tape (NumEtp, VilleDep, VilleArr, Distance)
Coureur (NumCrr, NomCrr, PrenomCrr)
Participe (NumCrr, NumEtp, TempsRalis)
Du MCD vers MLDR et MPD
Exercice 5: intervention sur un appareil
MCD :
1,n
1,1
0,n
0,n
Composant
0,n
Compose
0,n
1,1
1,n
Di ri ge 0,n
Est Di ri g
0,1
0,n
1,n
Cl i ents
NumCl t
Rai sonSoci al e
Adresse
Tl phone
<pi > Enti er
Texte
Texte
Numri que
<O>
NumCl t <pi >
Interventi ons
NumInt
DateDbt
DateFi n
Tari f
Type
<pi > Enti er
Date
Date
Monnai e
Texte
<O>
NumInt <pi >
Foncti onnai res
NumFonct
Nom
Prenom
DateEmb
Photo
Sal ai re
Remarques
<pi > Enti er
Texte
Texte
Date
Image
Monnai e
Mul ti byte
<O>
NumFonct <pi >
Materi el s
IdMat
Dsi gnati on
Pri xUHT
QteEnStock
<pi > Enti er
Texte
Texte
Enti er
<O>
IdMat <pi >
Servi ces
IdSrv
NomSrv
Li eu
<pi > Enti er
Texte
Texte
<O>
IdSrv <pi >
Demander
Uti l i ser
Qt
Pri xHT
Remi se
Enti er
Monnai e
Rel
Comprendre
Di ri ger
Travai l l er
Ral i ser
Date Date

TSDI SGBDR
Farih Said 65
MPD :
FK_INTERVEN_DEMANDER_CLIENTS
FK_FONCTION_EST_DIRIG_FONCTION
Est Dir ig
Diri ge
FK_FONCTION_TRAVAILLE_SERVICES
FK_UTILISER_UTILISER_INTERVEN
FK_UTILISER_UTILISER2_MATERIEL
FK_COMPREND_COMPOSANT_MATERIEL
Composant
FK_COMPREND_COMPOSE_MATERIEL
Compose
FK_REALISER_REALISER_FONCTION
FK_REALISER_REALISER2_INTERVEN
Cl i ents
NumCl t
Rai sonSoci al e
Adresse
Tl phone
i nteger
l ong varchar
l ong varchar
numeri c
<pk>
Interventi ons
NumInt
NumCl t
DateDbt
DateFi n
Tari f
Type
i nteger
i nteger
date
date
numeri c(8,2)
l ong varchar
<pk>
<fk>
Foncti onnai res
NumFonct
Fon_NumFonct
IdSrv
Nom
Prenom
DateEmb
Photo
Sal ai re
Remarques
i nteger
i nteger
i nteger
l ong varchar
l ong varchar
date
l ong bi nary
numeri c(8,2)
char(1)
<pk>
<fk2>
<fk1>
Materi el s
IdMat
Dsi gnati on
Pri xUHT
QteEnStock
i nteger
l ong varchar
l ong varchar
i nteger
<pk>
Servi ces
IdSrv
NomSrv
Li eu
i nteger
l ong varchar
l ong varchar
<pk>
Uti l i ser
NumInt
IdMat
Qt
Pri xHT
Remi se
i nteger
i nteger
i nteger
numeri c(8,2)
fl oat
<pk,fk1>
<pk,fk2>
Comprendre
Mat_IdMat
IdMat
i nteger
i nteger
<pk,fk1>
<pk,fk2>
Ral i ser
NumFonct
NumInt
Date
i nteger
i nteger
date
<pk,fk1>
<pk,fk2>

Exercice 6: Ltudiant et le sport
MCD :
1,1
0,n
1,n
1,1
0,n
1,n
1,1
1,n
Facul ts
CodeFac
NomFac
<pi > Enti er
Texte
<O>
CodeFac <pi >
Etudi ant
NumEtd
NomEtd
<pi > Enti er
Texte
<O>
NumEtd <pi >
Vi l l es
CodePostal
NomVi l l e
Prefecture
<pi > Enti er
Texte
Texte
<O>
CodePostal <pi >
Sports
CodeSpt
NomSpt
<pi > Enti er
Texte
<O>
CodeSpt <pi >
Entrai neurs
NumEnt
NomEnt
<pi > Enti er
Texte
<O>
NumEnt <pi >
Inscri re
Rsi de
Prati quer
Entrai ner

MPD :
FK_ETUDIANT_INSCRIRE_FACULTES
FK_ETUDIANT_RESIDE_VILLES
FK_SPORTS_ENTRAINER_ENTRAINE
FK_PRATIQUE_PRATIQUER_ETUDIANT
FK_PRATIQUE_PRATIQUER_SPORTS
Facul ts
CodeFac
NomFac
i nteger
l ong varchar
<pk>
Etudi ant
NumEtd
CodePostal
CodeFac
NomEtd
i nteger
i nteger
i nteger
l ong varchar
<pk>
<fk1>
<fk2>
Vi l l es
CodePostal
NomVi l l e
Prefecture
i nteger
l ong varchar
l ong varchar
<pk>
Sports
CodeSpt
NumEnt
NomSpt
i nteger
i nteger
l ong varchar
<pk>
<fk>
Entrai neurs
NumEnt
NomEnt
i nteger
l ong varchar
<pk>
Prati quer
NumEtd
CodeSpt
i nteger
i nteger
<pk,fk1>
<pk,fk2>



TSDI SGBDR
Farih Said 66
Exercice 7: base de donnes archologiques
MCD :

1,1
0,n
1,n
0,n
1,n
1,1
0,n
0,n
Obj ets
NumObj
Dsi gnati on
Categori e
EtatComp
EtatCons
<pi > Enti er
Texte
Texte
Texte
Texte
<O>
NumObj <pi >
Si tes
NumSi te
Longueur
Largeur
<pi > Enti er
Texte
Texte
<O>
NumSi te <pi >
Equi pe
NomDi recteur <pi > Texte <O>
NomDi recteur <pi >
Dates
DateF <pi > Date <O>
DateF <pi >
ZoneFoui l l e
NumZF
Vi l l e
<pi > Enti er
Texte
<O>
NumZF <pi >
Trouver
Dater
Etre dans

MPD :
FK_SITES_ETRE_DANS_ZONEFOUI
FK_TROUVER_TROUVER_OBJETS
FK_TROUVER_TROUVER2_EQUIPE
FK_DATER_DATER_EQUIPE
FK_DATER_DATER2_DATES
FK_DATER_DATER3_SITES
FK_TROUVER_TROUVER3_SITES
Obj ets
NumObj
Dsi gnati on
Categori e
EtatComp
EtatCons
i nteger
l ong varchar
l ong varchar
l ong varchar
l ong varchar
<pk>
Si tes
NumSi te
NumZF
Longueur
Largeur
i nteger
i nteger
l ong varchar
l ong varchar
<pk>
<fk>
Equi pe
NomDi recteur l ong varcha
Dates
DateF date <pk>
ZoneFoui l l e
NumZF
Vi l l e
i nteger
l ong varchar
<pk>
Trouver
NumObj
NomDi recteur
NumSi te
i nteger
l ong varchar
i nteger
<pk,fk1>
<pk,fk2>
<pk,fk3>
Dater
NomDi recteur
DateF
NumSi te
l ong varchar
date
i nteger
<pk,fk1>
<pk,fk2>
<pk,fk3>

Exercice 8: centre de vacances
MCD :
0,1
1,1
Ani mateurs
NumAni ma
NomAni ma
<pi > Enti er
Texte
<O>
NumAni ma <pi >
Groupes
RefGp
Ni veau
<pi > Enti er
Texte
<O>
RefGp <pi >
Encadrer2

TSDI SGBDR
Farih Said 67
MLDR :
Animateurs (NumAnima, NomAnima)
Groupes (RefGp, Niveau, # NumAnima)
MPD :
FK_ANIMATEU_ENCADRER3_GROUPES
FK_GROUPES_ENCADRER2_ANIMATEU
Ani mateurs
NumAni ma
NomAni ma
i nteger
l ong varchar
<pk>
Groupes
RefGp
NumAni ma
Ni veau
i nteger
i nteger
l ong varchar
<pk>
<fk>

Exercice 9: une bibliothque
0,n 0,n
1,n 1,1
Li vres
NumLi v
Ti tre
Etat
DateAchat
<pi > Enti er
Texte
Texte
Date
<O>
NumLi v <pi >
Cl i ents
NumCl i
NomCl i
PrnomCl i
Adresse
<pi > Enti er
Texte
Texte
Texte
<O>
NumCl i <pi >
Emprunter
DateEmp
DateRet
Date
Date
Ecri re
Auteurs
NumAut
NomAut
PrnomAut
Nati onal i tAut
<pi > Enti er
Texte
Texte
Texte
<O>
NumAut <pi >

Les formes normales
Exercice 1: Dpendances fonctionnelles
NumClt Date_RV Heure_RV Num_Emp
Num_Emp Date_RV Salle
Num_Emp Date_RV Heure_RV NumClt
Date_RV Salle Num_Emp
Date_RV Salle Heure_RV NumClt
R1 R2
NumClt Date_RV Heure_RV Num_Emp
CR76 13.05.05 10.30 SG5
CR56 13.05.05 12.00 SG5
CR74 13.05.05 12.00 SG37
CR56 01.07.05 10.30 SG5
Num_Emp Date_RV Salle
SG5 13.05.05 101
SG37 13.05.05 102
SG5 01.07.05 102
Exercice Troisime forme normale
Il existe une dpendance fonctionnelle ente lattribut ville et lattribut code postal: On peut retrouver
une ville par la connaissance du code postal
DF CodePostal-> Ville
Villes (CodePostal, Nom)
Fournisseurs (Fournisseur, Rue, CodePostal)
Lattribut CodePostal de la relation Fournisseurs est une cl trangre
Exercice 2: Deuxime forme normale
1 - La cl de la relation est compose des attributs article et fournisseur.
2 - Il sagit de la reprsentation logique dune association entre deux entits Article et Fournisseur.
3 - Les attributs Quantit et Prix dpendent des deux attributs de la cl (article, fournisseur)
L'adresse du fournisseur ne dpend que du fournisseur. La relation nest donc pas en 2NF
TSDI SGBDR
Farih Said 68
4 -Il y aura forcment de la redondance. Chaque fois que l'on aura un fournisseur, on aura son adresse.
(Modifier l'adresse de Truc imposerait donc de modifier plusieurs cases. Il faut donc diviser la table en deux
relations :
Commandes (Article, Quantit, Prix, Fournisseur)
Quantit et Prix sont des attributs de lassociation entre une entit Article et une entit Fournisseur
Fournisseurs (Fournisseur, Adresse du fournisseur)
De cette manire, si l'adresse du fournisseur change, on fera la mise jour en modifiant une case seulement !
Interprtation de schmas entit/association Les formes normales
Exercice 1: Centre mdical
A Oui : cardinalit maximale N de lassociation Patient-Consultation
B - Non : cardinalit maximale 1 de lassociation Consultation-Patient : un patient par consultation).
C Oui : cardinalit maximale n de lassociation Consultation-Mdicament
D - Oui : pas dassociation entre un mdecin et un mdicament
Exercice 2: Tournoi de tennis
A Non : cardinalit maximale 2 de lassociation Match - Joueur
B - Oui : les deux associations Gagne et Participe sont distinctes
C A priori, oui, car une occurrence de lentit terrain peut tre associe N occurrence de lentit Match
Exercice 3: Un journal
A Non : cardinalit maximale 1 de lassociation Article - Journaliste
B - Non : lassociation Article-Numro a pour cl primaire lidentifiant dun article + identifiant numro, qui
sera unique par dfinition
C Oui
Exercice 3:
MPD
FK_SALARIES_DIRIGER3_DEPARTEM
FK_DEPARTEM_DIRIGER2_SALARIES
Sal ari s
NumSal r
NomDpt
NomS
PrenomS
Sal ai re
i nteger
i nteger
l ong varchar
l ong varchar
numeri c(8,2)
<pk>
<fk>
Dpartements
NomDpt
NumSal r
Tl phone
Di recteur
i nteger
i nteger
i nteger
l ong varchar
<pk>
<fk>

MLD
Employ (NumSalr, NomS, PrnomS, Salaire)
Dpartement (NomDpt, Tlphone, Directeur)




TSDI SGBDR
Farih Said 69
Exercices supplmentaires
Exercice 1 : les pannes

1,n
1,1
0,n
0,n
1,1
1,n
Li gnes
NumLgn
NomLgn
Val i di t
<pi > Enti er
Texte
Texte
<O>
NumLgn <pi >
Tronons
i dTronc
Vi l l eDep
Vi l l eArv
Km
Pri x
<pi > Enti er
<Indfi ni >
Texte
Enti er
Monnai e
<O>
i dTronc <pi >
Vhi cul es
i dVcl
Km
DateRevi si on
<pi > Enti er
Enti er
Date
<O>
i dVcl <pi >
Composer
Roul er
TomberPanne
Date
Nature
<Indfi ni >
Texte

FK_TRONCONS_COMPOSER_LIGNES
FK_VEHICULE_ROULER_LIGNES
FK_TOMBERPA_TOMBERPAN_TRONCONS
FK_TOMBERPA_TOMBERPAN_VEHICULE
Li gnes
NumLgn
NomLgn
Val i di t
i nteger
l ong varchar
l ong varchar
<pk>
Tronons
i dTronc
NumLgn
Vi l l eDep
Vi l l eArv
Km
Pri x
i nteger
i nteger
<Non dfi ni >
l ong varchar
i nteger
numeri c(8,2)
<pk>
<fk>
Vhi cul es
i dVcl
NumLgn
Km
DateRevi si on
i nteger
i nteger
i nteger
date
<pk>
<fk>
TomberPanne
i dTronc
i dVcl
Date
Nature
i nteger
i nteger
<Non dfi ni >
l ong varchar
<pk,fk1>
<pk,fk2>

Exercice 2 : Linstitut priv
1,n
1,n
1,1
1,n
1,n
1,n
Cours
NumCrs
Li bel l
Dure
Type
<pi > Enti er
Texte
Enti er
Texte
<O>
NumCrs <pi >
Sessi ons
NumSess
Date
Pri x
<pi > Enti er
<Indfi ni >
Monnai e
<O>
NumSess <pi >
Ani mateurs
NumAnm
NomAnm
AdrAnm
<pi > Enti er
Texte
Texte
<O>
NumAnm <pi >
Parti ci pants
NumPrt
NomPrt
AdrPrt
<pi > Enti er
Texte
Texte
<O>
NumPrt <pi >
Apparteni r
Interveni r
nbrHr
Pri nci pal
Enti er
<Indfi ni >
Sui vre

TSDI SGBDR
Farih Said 70
FK_SESSIONS_APPARTENI_COURS
FK_INTERVEN_INTERVENI_ANIMATEU
FK_INTERVEN_INTERVENI_SESSIONS
FK_SUIVRE_SUIVRE_SESSIONS
FK_SUIVRE_SUIVRE2_PARTICIP
Cours
NumCrs
Li bel l
Dure
Type
i nteger
l ong varchar
i nteger
l ong varchar
<pk>
Sessi ons
NumSess
NumCrs
Date
Pri x
i nteger
i nteger
<Non dfi ni >
numeri c(8,2)
<pk>
<fk>
Ani mateurs
NumAnm
NomAnm
AdrAnm
i nteger
l ong varchar
l ong varchar
<pk>
Parti ci pants
NumPrt
NomPrt
AdrPrt
i nteger
l ong varchar
l ong varchar
<pk>
Interveni r
NumAnm
NumSess
nbrHr
Pri nci pal
i nteger
i nteger
i nteger
<Non dfi ni >
<pk,fk1>
<pk,fk2>
Sui vre
NumSess
NumPrt
i nteger
i nteger
<pk,fk1>
<pk,fk2>

Exercice 3 : Les invitations
0,n
1,1
0,1
0,n
0,n
0,n
Personnes
NomPer
PrnomPer
Sexe
Professi on
<pi >
<pi >
Texte
Texte
Bool en
Texte
<O>
<O>
NomPer
PrnomPer
<pi >
<ai >
Pl ats
NomP
Nature
Date
Pri x
<pi > Texte
Texte
Date
Monnai e
<O>
NomP <pi >
Boi ssons
NumB
TypeB
NomB
Enti er
Texte
Texte
NumB <ai 1>
Occasi ons
NumOcc
Date
NomOcc
Li eu
<pi > Enti er
Date
Texte
Texte
<O>
NumOcc <pi >
Associ er
Servi r
Avoi r

Exercice 4 - Les Campagnes de chalutage exprimental
0,n
1,1 1,1 0,n
0,n
0,n
0,n
1,1
1,1 0,n
1,1
0,n
1,n
1,1
1,1
0,1
Bateaux
NomBat <pi > Texte <O>
NomBat <pi >
Campagnes
CodeCamp
DatePreSta
DateDerSta
Sai son
<pi > Enti er
Date
Date
Texte
<O>
CodeCamp <pi >
Systme de Strati fi cati ons
i dSysStr
NomStr
Descri pti on
<pi > Enti er
Texte
Texte
<O>
i dSysStr <pi >
Engi ns de pche
NumEng
NomEng
<pi > Enti er
Texte
<O>
NumEng <pi >
Stati ons
CodeSta
Date
HeureDeb
HeureFi n
Posi ti onDeb
Posi ti onFi n
EtatMer
<pi > Enti er
Date
Heure
Heure
Texte
Texte
Texte
<O>
CodeSta <pi >
Startes
i dStr
Secteur
<pi > Enti er
Texte
<O>
i dStr <pi >
CapturesTotal es
NumCap
Poi dsTot
nbrEsp
<pi > Enti er
Enti er
Enti er
<O>
NumCap <pi >
Espces
i dEsp
NomEsp
Genre
Fami l l e
<pi > Enti er
Texte
Texte
Texte
<O>
i dEsp <pi >
Effectuer par Pl ani fi er sel on
Dcomposer par
Poi dsTot Enti er
Uti l i ser
Apparteni r
Ral i ser sur
se Consti tuer
Dcouper en






TSDI SGBDR
Farih Said 71
Exercice 5 : Supermarch
FK_EMPLOYES_EST_DIRIG_EMPLOYES
est di ri g
Di ri ge
FK_RAYONS_AFFECTER2_EMPLOYES
FK_EMPLOYES_AFFECTER_RAYONS
FK_LIVRER_LIVRER_FOURNISS
FK_LIVRER_LIVRER2_RAYONS FK_LIVRER_LIVRER3_PRODUITS
Produi ts
CodProd
NomProd
TypeB
i nteger
l ong varchar
l ong varchar
<pk>
Rayons
NomRay
Etage
l ong varchar
i nteger
<pk>
Empl oys
NumE
Emp_NumE
NomRay
NomE
Sal ai re
i nteger
i nteger
l ong varchar
l ong varchar
numeri c(8,2)
<pk>
<fk1>
Fourni sseurs
NumFour
NomFour
Adresse
i nteger
l ong varchar
l ong varchar
<pk>
Li vrer
NumFour
NomRay
CodProd
i nteger
l ong varchar
i nteger
<pk,fk1>
<pk,fk2>
<pk,fk3>

Exercice 6 : centre mdical
Mdicaments (idMed, Libell)
Consultation (NomCons, #NumMed, #NumPat, Date). Matricule et NO-SS sont les cls trangres.
Prescrire (idMed, NumCons, Nb-prises)
Mdecin (NumMed, Nom, Prnom).
Patient (NumPat, NomPat).
Les attributs entrant dans la composition de la cl primaire sont indiqus en caractres souligns
Exercice 7 : campagnes de chalutage
Campagne (#CodeCampagne, Date 1re Station, Date dernire Station, Saison, #CodeBateau)
Bateau (#CodeBateau, NomBateau) peut aussi tre intgr la table Campagne
Systme Stratification (#CodeSystmeStratification, Nom, Description)
Strate (#CodeSystmeStratification, #CodeStrate, Secteur, IntervalleBathymtrie))
Station (#Code Campagne, #CodeStation, Date, HeureDbut, HeureFin, PositionDbut, PositionFin, EtatMer,
PoidCaptur, NombreEspces, #CodeEngin)
Engin de pche (#CodeEngin, NomEngin) peut aussi tre intgr la table Station
Espece (#Genre, #Espce, Famille)
Association CaptureEspece (#CodeCampagne, #CodeStation, #Genre, #Espce, PoidsCaptur)

Vous aimerez peut-être aussi