Vous êtes sur la page 1sur 136

Les Bases de donnes relationnelles

de la thorie la pratique

Objectifs
- Comprendre les concepts et techniques sur lesquels reposent les fonctions
principales d'un systme de gestion de bases de donnes.
- Pouvoir reprsenter dans une base de donnes le contenu d'information d'un
domaine d'application.
- Pouvoir utiliser ces fonctions pour mettre en oeuvre une application simple
reposant sur une base de donnes (Analyse, conception, structuration des donnes,
mise en oeuvre dune base de donne relationnelles avec intraction... ).

Contenu
L'approche base de
donnes
Conception d'une base de
donnes
Bases de donnes
relationnelles
Pratique d'un SGBD

Etapes et Dmarche de modlisation


1. Analyse de la situation existante et des besoins

2. Cration d'une srie de modles qui permettent de reprsenter tous les aspects
importants

3. A partir des modles, implmentation d'une base


de donnes

Un modle de base de donnes est un ensemble


dlments qui dcrit les donnes et permet
dexprimer les proprits et les liens entre ces
donnes. Le modle est souvent reprsent de
manire graphique. Il se compose dune
description des donnes et de leurs relations ainsi
que dun ensemble de contraintes concernant la
valeur que peuvent prendre les donnes ou
concernant les liens qui les relient.

Un schma de base de donnes est une


description de la structure des donnes grer
via lutilisation dun langage dtermin.

Dfinitions
Information : Une information est un lment qui permet de complter notre

connaissance sur un objet, un vnement, une personne ... .


Exemple:
Le nom d'une personne est une information concernant cette personne.

Systme d'information : Un systme d'information est constitu par l'ensemble des

informations relatives un domaine bien dfini.


Exemple:

Librairie : stock, commandes, ventes

Un S. I. existe indpendamment des techniques informatiques.


Il contient les donnes et les traitements ncessaires pour assimiler et
stocker les informations entrantes et produire les informations
sortantes.

Dfinitions

Base de donnes :
Une base de donnes (BD) est un ensemble bien structur de donnes relatives
un sujet global. Ces donnes peuvent tre de nature et d'origine diffrentes.

Lesdonnessontdesfaits,connusetquiontunsenspourlutilisateur.Ces
donnesdoiventavoirunerelationentreelles.
collection de donnes enregistres ensemble,
sansredondance pnible ou inutile, pour
servir plusieursapplications,on y enregistre
les donnes de faon ce quelles soient
indpendantesdesprogrammes qui les
utilisent, on utilise une approchecommuneet
contrle pour ajouter, modifier, retrouver des
donnes.
JamesMartin
Collection de donnes persistantes utilises par des systmes dapplication de
certaines entreprises

Dfinitions

Une base de donnes correctement construite permet de partager


les donnes entre plusieurs utilisateurs, de restreindre laccs ou
la modification des donnes, dassurer lintgrit des donnes et
dquilibrer les conflits des besoins tout en rduisant les
redondances et en vitant les incohrences

Exemples: FPMs BD sur tous les tudiants.


Une banque BD sur tous les clients.
Une socit d'assurances BD contrats
d'assurances et sinistres.

Qu'attendre ---- une base de donnes ?


Pourqoui
Lorsquon a besoin dorganiser les donnes en un ensemble structur et :

Contrle centralis des donnes


Redondance rduite
Incohrence vite
Donnes partages
Normes imposes
Restrictions de scurit possibles
Intgrit assure (36/15/2005 est impensable)
Conflits des besoins quilibrs
Et stocker, consulter, modifier des informations

ystme de gestion de bases de donnes:

SGBD

Un systme de gestion de bases de donnes (SGBD) est un


programme qui permet la reprsentation informatique des
donnes, qui nous permet de crer, de modifier et d'exploiter des
bases de donnes. Ce systme constitue donc notre interface pour
accder aux donnes.

SGBD

BD

logiciel grant une BD. Il permet un utilisateur de communiquer


(requtes) avec une base de donnes pour :
- dcrire et organiser les donnes sur les mmoires,
- rechercher, slectionner et modifier les donnes.

Qu'attendre
---- un SGBD?
Pourqoui
Un SGBD assure
- la description des donnes,
- leur recherche et mise jour,
- la sret : vrifier les droits daccs des utilisateurs ; limiter les accs non
autoriss ; crypter les informations sensibles
- la scurit : sauvegarde et restauration des donnes ; limiter les erreurs de
saisie, de manipulation
- lintgrit : dfinir des rgles qui maintiennent lintgrit de la base de
donnes (contraintes dintgrit)
- la concurrence daccs : dtecter et traiter les cas o il y a conflit daccs
entre plusieurs utilisateurs et les traiter correctement.

SGBD

+ieurs MODELES de BASES de DONNEES

SGBD

a) le modle hirarchique: les donnes sont classes hirarchiquement, selon une


arborescence descendante. Ce modle utilise des pointeurs entre les diffrents
enregistrements. Le plus ancien, peu souple.
b) le modle rseau: Comme le modle hirarchique ce modle utilise des
pointeurs vers des enregistrements. Moyennement souple, complexe pour le
dveloppement, performance moyenne.

c) le modle relationnel (SGBDR, Systmedegestiondebasesdedonnes


relationnelles): les donnes sont enregistres dans des tables. La manipulation de
ces donnes se fait selon la thorie mathmatique des relations , thorie ensembliste.
(du mathmaticien CODD). Fort souple, ais dvelopper.
d) le modle objet (SGBDO, Systmedegestiondebasesdedonnesobjet): les
donnes sont stockes sous forme de classes.

a)

b)

fort souple,
ais dvelopper

c)

d)

SGBD

Les caractristiques

L'architecture trois niveaux dfinie par le standard ANSI/SPARC permet d'avoir une indpendance
entre les donnes et les traitements. D'une manire gnrale un SGBD doit avoir les caractristiques
suivantes:
Indpendance physique: Le niveau physique peut tre modifi indpendamment du niveau conceptuel.
Cela signifie que tous les aspects matriels de la base de donnes n'apparaissent pas pour l'utilisateur, il
s'agit simplement d'une structure transparente de reprsentation des informations
Manipulabilit: des personnes ne connaissant pas la base de donnes doivent tre capables de dcrire
leur requtes sans faire rfrence des lments techniques de la base de donnes
Rapidit des accs: le systme doit pouvoir fournir les rponses aux requtes le plus rapidement possible,
cela implique des algorithmes de recherche rapides
Administration centralise: le SGBD doit permettre l'administrateur de pouvoir manipuler les donnes,
insrer des lments, vrifier son intgrit de faon centralise
Limitation de la redondance: le SGBD doit pouvoir viter dans la mesure du possible des informations
redondantes, afin d'viter d'une part un gaspillage d'espace mmoire mais aussi des erreurs
Vrification de l'intgrit: les donnes doivent tre cohrentes entre elles, de plus lorsque des lments
font rfrences d'autres, ces derniers doivent tre prsents
Partageabilit des donnes: le SGBD doit permettre l'accs simultan la base de donnes par plusieurs
utilisateurs
Scurit des donnes: Le SGBD doit prsenter des mcanismes permettant de grer les droits d'accs aux
donnes selon les utilisateurs

Historique

Modle relationnel
Les concepts mis en oeuvre dans le modle relationnel sont fonds sur une
thorie mathmatique directement issue de l'algbre relationnelle, de la thorie
des ensembles et de la logique formelle.
Cette technologie a vu le jour dans les annes 70 avec les travaux de Codd

* Objets simples : table, ligne, colonne


* Bas sur des objets mathmatiques bien connus :
- Relation, n-tuple, ensemble, etc.
* Oprations d'interrogation
- Slection, projection, jointure
Actuellement le modle le plus rpandu (de loin)

1980 : Les systmes de gestion de bases de donnes relationnels


apparaissent sur le march.
1990 : Les systmes de gestion de bases de donnes relationnels dominent
le march.

Les objectifs du modle relationnel :


proposer des schmas de donnes faciles utiliser,
fournir une approche mthodologique dans la construction des
schmas.

amliorer l'indpendance logique et physique,


mettre la disposition des utilisateurs des langages de haut niveau
pouvant ventuellement tre utiliss par des non informaticiens,

optimiser les accs la base de donnes,


amliorer l'intgrit et la confidentialit,
Manipulations relationnelles,en gnral exprimes en SQL, transforment des
tables en une table
Les donnes
sont perues par
lutilisateur
comme des
tables

Algbre
Relationnelle
JOIN: relie 2 tables grce aux valeurs
communes de 2 colonnes communes

Oprations relationnelles
Slection :
Projection
Restriction
Jointure
Division
Agrgation
Opration suppl.

Mise jour
Cration d une vue

Liste non exhaustive de SGBD relationnels :


Adabas de Software AG
Access de Microsoft
DB2 : IBM
Informix : Unix
Ingres : Vax, IBM, Sun, HP, Dos
MS-sql
MySQL (logiciel libre)
Oracle : Oracle (multi plateforme)
Progress : Unix, Dos, VMS, OS/2
PostgreSQL (logiciel libre)
SqlServer de Microsoft
Sybase de Sybase

Mise en oeuvre dun SGBD


On distingue trois niveaux dapprhension dfinis par la norme ANSI/SPARC
(architecture de rfrence d'un SGBD). A chaque niveau correspond un schma de
reprsentation :

- le niveau interne avec le schma physique


Description du stockage des donnes au niveau des units de stockage

- le niveau conceptuel avec le schma conceptuel


Description de la structure des donnes de la base, description de leurs
proprits (relations qui existent entre elles), sans soucis d'implmentation
physique ni de la faon de s'en servir.

le niveau externe avec les vues (comment lutilisateur voit les donnes)
Description pour chaque utilisateur de sa perception des donnes.
ES

ES

CS
IS

ES

ES

ES

CS
IS

ES

ESs : Schmas Externes


CS : Schma Conceptuel
IS : Schma Interne

L'administrateur aura pour rle :


la conception du modle partir du monde
rel reprsenter,
le rglage du schma physique pour certaines
optimisations de performances,
le maintien de la base de donnes physique,
la description des schmas externes l'usage
des utilisateurs finaux.

Schmas Externes (ESs)


Dfinit une vue de la BD
Vues SQL, Vbasic, orients Web notamment (HTML,
XML)
ES

ES

ES

CS
IS

Une BD est en gnral munie de plusieurs diffrentes ESs


Mais tous ont le CS comme racine commune

Schma Interne (IS)

CS

Comment transformer les objets?


Comment ils seront stocks?
Comment y accdes?

Schma Conceptuel

Merise
Merise est une des mthodes de conception et de dveloppement de projets
informatiques. Cette mthode date de 1978-1979, et fait suite une consultation
nationale lance en 1977 par le ministre de lIndustrie franais dans le but de
choisir des socits de conseil en informatique dont la mission tait de dfinir
une mthode de conception de systmes dinformation.
Une des techniques permettant de concevoir une base de donnes relationnelle
est base sur cette mthode. En effet, une des caractristiques principales de la
mthode Merise est la sparation des donnes et des traitements du futur
systme dinformation.

Objets relationnels: domaines et relations


Terme relationnel formelEquivalent informel

relation
n-uplet
cardinalit
attribut
degr
cl primaire
cl trangre
domaine

relation perue entre entits (!!table)


ligne ou enregistrement
nombre de lignes
colonne ou champ
nombre de colonnes
identificateur unique
rfrence = attribut principal ailleurs
Ensemble de valeurs lgales
(ensemble des valeurs dun attribut)

Les composants d'une base de donnes


relationnelle

Quatre types d'objets.


Tables,

Requtes,

Formulaires, Rapports.

1. Les Tables
Une table est une collection de donnes relatives un domaine bien dfini.
Table :
Employs_Di
sney

N Mat

NOM

SALAIRE

Code post.

159

Donald

1500

7000

132

Oblix

1900

5060

1187

Picsou

1134

1000

354

..

Valeurs de lattribut

Enregistrement,
N_Uplet

Un champ de donnes (Attribut)

Cl primaire
Pour identifier de manire unique chaque enregistrement de la table.
La cl primaire, constitue d'un ou de plusieurs champs, nous permet
d'identifier de manire unique chaque enregistrement d'une table.
Pour dfinir des liens entre plusieurs tables la cl primaire est indispensable.

2. Les requtes (angl. Queries)


Les requtes "questions" qu'on pose au SGBD.
Le rsultat est toujours un sous-ensemble d'une ou de plusieurs tables.
Il existe 4 types de requtes:
1. Requtes de slection.
Select
2. Requtes d'insertion.
Insert
3. Requtes de modification. Update
4. Requtes de suppression. Delete

Formuler la requte

Analyser et
Excuter la requte

Pour chaque requte nous retrouvons le cycle suivant:


Rsultat de la requte

3. Les formulaires (angl. Forms)


Les formulaires pour ajouter, modifier ou supprimer des donnes dans les tables.

Les formulaires offrent certains avantages: facilit d'utilisation, scurit des donne

4.

Les rapports (angl. Reports)

Pas de dialogue interactif avec l'utilisateur.


Un rapport se base gnralement sur une ou plusieurs tables ou le rsultat d'une
requte.

Niveaux dabstraction
Cahier des charges en accord avec le client (activit et besoins)
crer une reprsentation virtuelle de la ralit.
produire quatre modles de donnes relatifs quatre niveaux dabstraction.

Le niveau conceptuel identifie et dcrit formellement lensemble des informations du


domaine gr par le futur systme dinformation. Ce niveau amne donc le concepteur
construire une reprsentation formelle de la signification des donnes.

Le niveau organisationnel exprime la rpartition organisationnelle des donnes


informatises, la scurit des donnes par rapport aux acteurs des units organisationnelles et
prcise quelles sont, parmi les donnes dfinies au niveau conceptuel, celles qui seront prises
en compte par le futur systme informatis. On ne dveloppera pas cet aspect vu quil dpend
fortement de lenvironnement dintgration du systme dinformation.

Le niveau logique fournit une description des donnes prenant en compte les moyens
informatiques de mmorisation et limplmentation du systme par un SGBD. Cest
galement ici que lon retrouvera lalgbre relationnelle.

Le niveau physique exprime les choix techniques et dcrit les donnes de la base de
donnes dans la syntaxe du systme de gestion adopt.

Cycle d'abstraction de conception des S.I.


La conception du systme d'information se fait par tapes,
afin d'aboutir un systme d'information fonctionnel
refltant une ralit physique. Il s'agit donc de valider une
une chacune des tapes en prenant en compte les
rsultats de la phase prcdente. D'autre part, les donnes
tant spares des traitements, il faut vrifier la
concordance entre donnes et traitement afin de vrifier
que toutes les donnes ncessaires aux traitements sont
prsentes et qu'il n'y a pas de donnes superflues.
Cette succession d'tapes est appele cycled'abstraction
pourlaconceptiondessystmesd'information:
Niveau

Statique (donnes)

Conceptuel

MCD

Organisationnel
ou logique

MLD

Oprationnel
ou physique

MPD

Dynamique (traitements)
MCT
MOT
(QUI?QUAND?)

MOPT

Donc la dmarche classique d'un projet en BD comprend les tapes suivantes:


1. Analyse de la situation existante et des besoins
2. Cration d'une srie de modles qui permettent de reprsenter tous les aspects importants
3. A partir des modles, implmentation d'une base de donnes

Mthodologie pour traduire un systme d'information naturel en une base de donnes


Univers de
lapplication
Niveaux dabstractions
Elaboration du Modle
E-R
Passage au Modle
Relationnel
Implmentation
Sur SGBD-R

Niveau Conceptuel

Niveau Logique

Niveau Physique

Analyse

MCD

Rel
Peru

Schma
Conceptuel

MLD

MPD

Schma
Logique

Application?
Choix de lapplication / groupe
Univers de
lapplicatio
n
Elaboration du Modle
E-R

Rapport

Niveau Conceptuel

Def. Dom.
C.Chg
Schma
Conceptuel

Passage au Modle
Relationnel

Niveau Logique

Implmentation
Sur SGBD-R

Niveau Physique

Schma
Logique

Implmentation Sur SGBD-R

Schma
Physique

1er rapport :
2me rapport :
3me rapport :

mars 2006
..
..

Cahier de charges.
Cahier de charges et MCD.
Rapport final

Votre rapport doit respecter scrupuleusement la table des matires suivante :


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

Cahier de charges de lapplication


MCD
MLD
MPD (qlq tables et relations)
Implmentation
Conclusion
Explications du fonctionnement de votre base de donnes

Utilisez :
Formulaires, index, requtes, rapport.
Pouvoir faire :
Trier, excuter des requtes en SQL, utiliser des macros en SQL.
Genre de documents diter :
Liste alphabtique des clients,( tudiants, ) par ville (secteur ) ..
Liste par chiffre daffaire des clients (moyenne pour les tudiants)
Lors de la conclusion :
Les besoins futurs !

Quelles seront les volutions possibles de votre base de donnes ?

Noubliez pas de joindre une disquette ou un CD de votre base de donnes.


Indiquez aussi les noms des tudiants qui composent le groupe sur le support informatique et le rapport.

Analyse

Elaboration du Modle
E-R

Niveau Conceptuel

Schma
Conceptuel

1. Le niveau conceptuel, se base directement sur l'analyse, cest une


reprsentation du monde rel par un seul modle. Il dcrit, de faon formelle,
l'ensemble des donnes du systme d'information, sans tenir compte de
l'implmentation informatique de ces donnes. Ce niveau reprsente donc la
signification des donnes, se traduit par un formalisme que nous appelons:
Modle conceptuel des donnes MCD
Permet de dfinir les informations pertinentes pour lapplication et
denvisager leur structure.
Doit reflter le plus fidlement possible la ralit modliser dans la BD,
tout niveau :
donnes, relation, contraintes de cohrence de donnes, ..

La construction du schma conceptuel comporte normalement les


tapes suivantes :
Dfinir les objectifs
Analyser la ralit
Tracer le schma conceptuel
Pour la construction du modle conceptuel, beaucoup de mthodes ont t mises
en place mais aucune ne donne rellement satisfaction. On peut cependant les
rpartir en deux catgories :

modlisation directe :
Elle consiste identifier, partir dune description exprime en langage naturel,
les entits et les associations en appliquant les rgles suivantes :
les noms deviennent des entits
les verbes deviennent des associations
La partie analytique consiste essentiellement transformer des phrases
dcrivant certains aspects de la ralit en entits, relations et cardinalits.

modlisation par analyse des dp. fonctlles


Identifier toutes les proprits du S.I. analyser. Cette tape aboutit
au dictionnaire des donnes pur qui devra comporter ni synonyme,
ni donne calcule ...

Il semble que la bonne approche de construction dun modle


conceptuel des donnes soit un compromis entre la mthode
directe, qui laisse une large part lintuition et la mthode base
sur ltude des dpendances fonctionnelles. Quelle que soit la
technique utilise, le modle doit tre vrifi, normalis et
enrichi de concepts tendus pour reprsenter le plus fidlement
possible lapplication.

Passage au Modle
Relationnel

Niveau Logique

Schma
Logique

2. Le niveau logique se base sur le modle conceptuel des donnes. Ce niveau


introduit la notion des tables logiques, et constitue donc le premier pas vers
les tables des SGBD. Ce niveau est reprsent par le:

Modle logique des donnes : MLD


Implmentation
Sur SGBD-R

Niveau Physique

Schma
Physique

3. Le niveau physique, qui se base sur le modle logique des donnes, contient
finalement toutes les dfinitions et dtails relatifs l'utilisation d'un SGBD
spcifique (p.ex. Access, dBASE, Oracle, Cach ...). A partir de ce niveau, on peut
directement crer la base de donnes. Ce niveau est reprsent par le:

Modle physique des donnes : MPD

Le schma conceptuel
Un des modles possibles pour le schma conceptuel est le modle
entit-association. Propos par Peter Chen en 1976, il est
notamment utilis dans la mthodologie Merise.
Traduire lanalyse du systme rel tablie pralablement en
entit, en relations, en proprits et en cardinalits.
Une entit permet de modliser un
ensemble dobjets de mme nature.
Les relations sont des liens smantiques
qui peuvent exister entre plusieurs
entits.

CLIENT
Numro
Nom

Les cardinalits reprsentent le nombre possible


dinteractions entre les entits et les attributs .

1, N

Passer

1,1

Commande
Numro
Date
Quantit

Le Modle Conceptuel des Donnes


(MCD)
Analyse (MCD) : "Schma Entit-Relation" ou "Schma Entit-Association".

Relation ou Association
ENTIT
Nom Nom de la Relation
E
dentit
COMMANDE
PRODUIT
CONCERNER

No Cde
Date Cde

Quantit Cde

No Prod
Dsignation
Prix Unitaire

Proprit Proprit de la Relation


dentit

ENTITE
Dans l'exemple,
l'entit Produit produits S.I.. et
Nom de lentit
Proprit 1
Proprit 2
Proprit 3
Proprit 4

PRODUIT
No Prod
Dsignation
Prix Unitaire

l'entit Commande commandes S.I.


NOM
Identifiant
Attributs

L'identifiant est une proprit (une ou plusieurs) particulire d'un objet telle qu'il n'existe
pas deux occurrences de cet objet pour lesquelles cette proprit pourrait prendre une
mme valeur.

Un identifiant est une colonne dont les


valeurs permettent de reprer une seule ligne

Le choix d'un identifiant correcte est trs important pour la modlisation:

Choix ?

Choix ?
Comme choix pour l'identifiant d'une entit nous distinguons gnralement
3 possibilits:
1. Une proprit naturelle
Exemple: Le nom d'un pays pour une entit Pays
2. Une proprit artificielle qui est invente par le crateur du MCD
Exemple: Le numro d'un client pour une entit Client, Produit,
Commande,
3. Une proprit compose d'autres proprits naturelles
Exemple: Le nom et la localit pour une entit Entreprise

Le modle conceptuel des donnes propose de souligner les identifiants

Attributs

caractristiques des entits


obligatoires ou facultatives
avec un domaine (type) de valeurs
CLIENT
No
Nom
Adresse

VEHICULE

Personnes

No_Matric.
Marque
Modle
Anne
Cylindre

ID_Personne
Nom
Prnom
Sexe
Email
Adresse

Qu'est ce qu'un bon schma Entit-Relation ( formes normales ) ?


ni perte d'information ni redondance
contraintes (dintgrit) entre les valeurs des attributs
le but: indpendance / applications (vues particulires)

Associations ou Relations
Obtenir

Personnes
ID_Personne
Nom
Prnom
Sexe
Adresse
Tlphone
Email

VEHICULE
No
Marque
Modle
Anne
Cylindre

Anne_d_obtention

Diplmes
Code_diplme
Titre_diplme
Abrviation

CLIENT
APPARTIENT

No
Nom
Adresse

SIGNE

CONTRAT
No
Type
Date

La notion de relation
Une relation dcrit un lien entre deux ou plusieurs entits.
Chaque relation possde un nom, qui est gnralement constitu par un verbe l'infinitif.
Chaque relation a implicitement un identifiant, qui est compos par les identifiants des
entits auxquelles elle est lie.
CLIENT

MCD
Relation binaire

Numro
Nom
Prnom
Adresse
Code_postal
Localit

LAC

Relation ternaire

Passer

Commande
Numro
Date
Quantit

Dverser

RIVIERE

Dcharge

Relation rflexive
(relation rcursive)

EMPLOYE
N Matricule

CONJOINT

Cardinalit
Les cardinalits prcisent la participation de l'entit concerne la
relation.
cardinalit minimale
CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit

cardinalit maximale
1, N

Passer

1,1

Commande
Numro
Date
Quantit

Entre l'entit CLIENT et la relation Passer, nous avons les cardinalits suivantes:
* Cardinalit minimale = 1, ce qui veut dire que chaque client passe au moins une commande.
* Cardinalit maximale= N, ce qui veut dire que chaque client peut passer plusieurs (N) commandes.
Entre l'entit Commande et la relation Passer, nous retrouvons les cardinalits suivantes:
* Cardinalit minimale = 1, donc chaque commande est passe par au moins un client.
* Cardinalit maximale =1, chaque commande est passe au maximum par un seul client.

Autres exemples
COMMANDE

1,N

No Cde
Date Cde

CONCERNER
Quantit Cde

0,N

PRODUIT
No Prod
Dsignation
Prix Unitaire

Une occurrence de commande est concerne au moins 1 fois.


Une occurrence de commande peut tre concerne plusieurs (N) fois.
Une occurrence de produit peut ne pas tre concerne (0).
Une occurrence de produit peut tre concerne plusieurs (N) fois.
Employ

Utiliser
0,N

Ordinateur
1,N

Numro
Nom
Prnom
Adresse
Code_postal

Numro_PC
Type
Configuration

Entre l'entit Employ et la relation Utiliser, nous avons:


Cardinalit minimale = 0
Certains employs n'utilisent pas d'ordinateur
Cardinalit maximale = N

Service
Entre l'entit Ordinateur et la relation Utiliser, nous avons:

Cardinalit minimale = 1

Cardinalit maximale =N

1,1 : Un COUREUR Provient au min d1 PAYS et au max d1 PAYS.


Un COUREUR Provient dun et dun seul PAYS.

un

plusieurs

plusieurs

plusieurs

0,n : Un PAYS est reprsent au


min par 0 COUREUR et au max n.
Un PAYS est reprsent par aucun
ou plusieurs COUREURS.

CONFIGURATIONS POSSIBLES :
0,1
1,1
0,N
1,N

Une occurrence participe au moins 0 fois et au plus 1 fois lassociation


Une occurrence participe exactement 1 fois lassociation
Une occurrence peut ne pas participer ou participer plusieurs fois
Une occurrence participe au moins 1 fois, voire plusieurs

Le fait d'indiquer pour cardinalit minimale '1' implique une contrainte forte : elle
signifie qu'une entit ne peut exister indpendamment d'une autre. De telles entits
sont dites ''faibles'' .

Insistons sur le point suivant : les cardinalits n'expriment pas une vrit
absolue, mais des choix de conception. Ils ne peuvent tre dclars valides
que relativement un besoin. Plus ce besoin sera exprim prcisment, et
plus il sera possible d'apprcier la qualit du modle.

Les cardinalits, du point de vue de l'association, dans une interprtation ensembliste


RELATIONS OBLIGATOIRES
Notation
E-A

1,1 <->
1,1

1,N <->
1,N

Explication

Relation ensembliste

TOUTE occurrence de A a un
homologue UNIQUE parmi les
occurrences de B et rciproquement
????
TOUTE occurrence de A a AU
MOINS un homologue parmi les
occurrences de B et rciproquement

RELATIONS Optionnelles
Notation
E-A

Explication

0,N <->
0,1

UNE occurrence de A peut avoir 0,1,N


vis--vis.
UNE occurrence de B est limite 0
ou 1 homologue

1,N <->
0,N

TOUTE occurrence de A a AU
MOINS un homologue.
Mais UNE occurrence de B peut ne
pas en avoir, en avoir 1 ou plusieurs.

Relation ensembliste

Exercice 0: Cardinalits?

CLIENT
APPARTIENT

0-N

No
Nom
Adresse

SIGNE

0-N

1-1
CONTRAT

1-1

No
Type
Date

VEHICULE
No
Marque
Modle
Anne
Cylindre

1-N

0-N
CONCERNE

ACCIDENT
No
Date
(Montant)

Exercice 1:
CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit

1,N

Laquelle des deux modlisations est correcte ?


Passer

1,1

Commande
Numro
Date
Quantit

CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit

0,N

Passer

1,1

Commande
Numro
Date
Quantit

Une commande est toujours passe par au moins un client. Une commande est
galement passe au maximum par un client. Une commande est donc toujours
passe par un et un seul client.
Un client passe au moins une commande et au maximum plusieurs (N) commandes.
Cette modlisation ne tient pas compte des clients qui ne passent aucune commande.
Un client est uniquement considr comme tel s'il passe au moins une commande
Un client peut passer aucune commande et au maximum plusieurs (N) commandes.
Cette modlisation tient compte des clients qui ne passent aucune commande.

Exemple

CLIENT

Disposer
0,N

Numro
Nom
Prnom
Adresse
Code_postal
Localit

Carte_Membre
1,1
No_Carte
Type_Abonnement

Date_cration

On dit que CLIENT est l'entit

indpendante par rapport l'association


Disposer, tandis que Carte_Membre est l'entit dpendante.
Une occurrence d'un client peut trs bien exister sans carte de membre,
mais une carte de membre ne peut pas exister sans client.

La cardinalit minimale indique donc quelle entit est

indpendante(0) et quelle entit est dpendante(1).


On dit qu'une entit est indpendante par rapport une
relation lorsque sa cardinalit minimale vaut 0.

Une relation ne peut pas tre lie uniquement des entits


dpendantes qui ont une cardinalit maximale de 1.

La modlisation suivante par exemple n'est pas correcte !!!


Carte_Membre

CLIENT
Numro
Nom
Prnom
Adresse
Code_postal
Localit

Disposer

1,1

1,1

No_Carte
Type_Abonnement
Date_cration

Dans ce cas, il faut runir les proprits des


deux entits dans une seule.

Exercice 2

Voici le rsultat simplifi d'une analyse faite auprs d'une compagnie d'assurance qui dsire
informatiser la gestion des contrats auto.

Un client peut assurer plusieurs voitures auprs de la compagnie. Chaque voiture est

En ce qui concerne un client, la compagnie dsire connatre son nom, prnom, adresse
complte, numro de tlphone ainsi qu'un numro de compte bancaire avec indication
de la banque.

Chaque contrat contient un numro de contrat unique, la prime annuelle payer, la date
de paiement annuel, la marque de la voiture, le modle de la voiture, le numro
d'immatriculation de la voiture, la valeur de la voiture et la date d'acquisition de la
voiture.

assure par un seul contrat. Un contrat assure une seule voiture.

Visites dans un centre mdical


Medicament

Medecin

Patient

Marticul
Nom

Code
Libelle

No_SS
Nom
Mutuelle

0,N

0,N

1,N

Donner

Prescrit
Nb Prises

Assister

1,1
0,N

Consultation

1,1

No_Cons
Date

1.
2.
3.
4.

Un patient peut-il effectuer plusieurs visites?


Un mdecin peut-il recevoir plusieurs patients dans la mme consultation?
Peut-on prescrire plusieurs mdicaments dans une mme consultation?
Deux mdecins diffrents peuvents-ils prescrire le mme mdicament.

Oui
Oui
Non
Non
Oui
Oui
Oui
Oui

Exercice 3 " LabDB "CLIENT

Obtenir
1,N

1,1

No_Client
Nom
PARTIE 1
Prnom
LabDB SPRL
Adresse
La socit "LabDB" Code_postal 5, avenue SGBD
7000 FPMs
dsire informatiser son Localit

systme de facturation.
Les factures devraient
se prsenter de la faon
suivante:

Facture
No_Facture
Date
Montant

Facture No. 0001


Mons, le 15.02.2003

Client
Nom :
Nom_Client
Prnom
:
Pre_Client
Adresse
:
Serv. Info, 15
Code_postal :
7000
Localit
:
Mons

Montant de la facture :

3400

Crez un MCD,
qui permet de modliser correctement le systme d'information ncessaire, sachant que:
Un client peut bien sr recevoir plusieurs factures, mais il est uniquement considr
comme tel partir du moment ou il reoit sa premire facture.
Une facture concerne un et un seul client.

PARTIE 2
Le responsable de la facturation de la socit dsire rendre les factures plus
informatives. Comme un client peut acheter plusieurs articles diffrents en
mme temps, la facture devrait indiquer pour chaque article le numro , un
libell, le prix unitaire, la quantit vendue et le prix total pour ce type
d'article.
LabDB SPRL
Facture No. 0002
la facture devrait avoir:
5, avenue SGBD
Voici l'aspect que
7000 FPMs
Mons, le 15.02.2003
la facture devrait avoir:
Client
Proposez un nouveau MCD qui
reflte ces modifications, en
respectant le fait que tous les
articles disponibles sont stocks
(p.ex. No=233 Libell="Analyse"
PU=1000 ). Mme si un article
n'est pas encore considr par une
facture, il existe dans le systme
d'information.

Nom :
Nom_Client Prnom
:
Pre_Client
Adresse
:
Serv. Info, 15
Code_postal :
7000
Localit
:
Mons
No.
Article
233

Libell

Quantit

Prix

Analyse

Prix
unitaire
1000

1000

025

MCD

700

1400

142

MLD

1000

1000

Montant total de la facture :

3400

Solution de lexercice " LabDB "


PARTIE 1
Remarque:
No_Client en + proprit artificielle dfinit
comme identifiant. Sinon il faut dfinir un
identifiant compos de +ieur proprits.

CLIENT

Remarque:
L'entit Facture ne contient plus la proprit
Montant. Il existe une rgle gnrale de conception
qui dit:
Aucune proprit qui peut tre calcule partir
d'autres proprits existantes ne devra tre
stocke dans le MCD.

1,N

No_Client
Nom
Prnom
Adresse
Code_postal
Localit

Facture

1,1

No_Client
Nom
Prnom
Adresse
Code_postal
Localit

CLIENT

PARTIE 2

Obtenir

No_Facture
Date
Montant

Obtenir
1,N

Facture

1,1

No_Facture
Date

1,N
Porter
Quantit

0,N

Article

No_Article
Libell
Prix_Unitaire

Exercice 4 : Structure administrative


On considre un sous-ensemble dune structure administrative.
Dune direction (caractrise par un nom unique et le nom de son
PDG) dpendent plusieurs dpartements (dots chacun dun nom
unique dans sa direction et du nom de son directeur).
Un dpartement est dcoup en services, ayant un nom (unique dans
son dpartement) et un responsable. Un service a la charge dun
certain nombres de dossiers (identifis par un numro et dots dun
titre, dune date et dune description).
Dans chaque service travaillent des employs identifis par un
numro et caractriss par leur nom et leur adresse.

Structure administrative

DIRECTION
dir-dp

1-1
DEPARTEMENT

dp-serv
0-N

Nom_Dep
Directeur

1-1
SERVICE
traite

0-N

Nom_Serv
Responsable

0-N

travaille

1-1

1-1
DOSSIER

No_Dos
Titre
Date
Description

PERSONNE
No_Pers
Nom
Adresse

0-N

Nom
PDG

Peut il devenir comme cela ?

Entit
traite

0-N

Nom
Responsable

0-N

travaille

1-1

1-1
DOSSIER

No_Dos
Titre
Date
Description

PERSONNE
No_Pers
Nom
Adresse

Notion de dpendance fonctionnelle


Une dpendance fonctionnelle (df) existe lorsqu'un ensemble
d'attributs dtermine parfaitement un autre ensemble d'attributs.
Pour une table T(relation R), un attribut Y de T dpend
fonctionnellement dun attribut X de T ssi chaque valeur de X est
associe a une et une seule valeur de Y
XY

Ex:
{Nom, Tel.}
dfinit
{Nom, Prnom}

{ID}
{Adresse,Sexe,Tlphone,Email}

//Vrai sil ny a pas de problme dhomonymie

Les formes normales 2NF, 3NF et BCNF sont bases sur des
contraintes en relation avec la notion de dpendance fonctionnelle.

Notion de dpendance fonctionnelle


Considronslentitsuivanteetquelquesunedesesoccurrences:

Cetteentitestjustemaiselleimpliqueuneredondancedinformationrelative
lacatgorie.Lassociationentrelenumrodelacatgorieetsonlibellesten
effetrptedanschaqueoccurrencedelentitARTICLE.

Normalisation
Le processus de normalisation du modle relationnel pour objectif dtablir une
meilleure reprsentation conceptuelle des donnes dune application par
des tables relationnelles. Cela consiste, essentiellement, dcomposer les tables
(entits, relations) contenant trop dinformations en tables (E/R) plus petites.
Un mauvais schma relationnel pouvant entraner des anomalies lors des
manipulations.

Dfinition: Le processus de Normalisation permet,


par tapes, d'aboutir des relations ayant les bonnes
proprits.
On peut mesurer la qualit dune
relation par son degr de
normalisation. Ainsi, au plus une
relation appartient une forme
normale avance, au plus sa
qualit augmente.

1 FN (Codd, 1971)
2 FN (Codd, 1971)
3 FN (Codd, 1971)
BCFN (Boyce, Codd, 1971)
4 FN (Fagin, 1977)
5 FN (Fagin, 1979)

FN=Forme Normale.

Normalisation

NORMALISATION Programmation plus facile des


applications
Relations plus simples grer

Normaliser un schma relationnel c'est le remplacer par un


schma quivalent o toutes les relations vrifient certaines
proprits. Ces proprites sont bases sur l'analyse des
dpendances fonctionnelles l intrieur 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.

Normalisation

1FN

Dfinition: Une relation est en Premire Forme Normale

(1FN) si et seulement si elle ne contient que des valeurs simples et


lmentaires (si tout attribut est atomique= nondcomposable ).

Personnes

Nom

Adresse

ID_Personne

Picsou

9, rue de Houdain, 7000 Mons

Adresse

Non 1FN

Nom

Rue

CP

Ville

Picsou

Houdain

7000

Mons

Non 1FN

PERE

ENFANT

P1

Enf11

PERE

ENFANT

P1

Enf12

P1

{ Enf11, Enf12, Enf13 }

P1

Enf13

P2

{ Enf21, Enf22, Enf23 }

P2

Enf21

P2

Enf22

En 1FN

En 1FN

Normalisation

Exercice: Normaliser la relation COMMANDE


COMMANDE

PRODUITS

Cd1

{Bureau50,Chaise49,Ecran199}

Cd2

{Ecran199,Souris19}

Solution:

COMMANDE
Cd1
Cd1

PRODUIT
Bureau
Chaise

PRIXen
50
49

Cd1
Cd2
Cd2

Ecran
Ecran
Souris

199
199
19

2FN et 3FN

Normalisation

Une relation est en 2FN si elle est en 1FN et si tout attribut nappartenant pas la cl
dpend totalement et non-partiellement de la cl. On dit alors que chaque attribut est en
dpendance irrductible avec la cl. Cest la phase didentification des cls. Cette tape
est trs importante vu quelle vite de nombreuses redondances.
( 2FN: 1FN + si tous les attributs qui ne participent aucune cl pour
l'entit, sont des attributs d'entits et non pas d'autres entits.)
(2FN: 1FN + toute colonne qui n'appartient pas une cl dpend
pleinement de la cl et ne peut se dduire d'un sous-ensemble de cette
cl. )

Une relation est en 3FN si elle est en 2FN et si tous les attributs qui nappartiennent pas
la cl primaire sont mutuellement indpendants. Ceci correspond la non transitivit
des dpendances fonctionnelles et permet dviter les redondances. La forme 3FN
implique que chaque attribut peut tre mis jour indpendamment des autres.
3FN si:

Elle est en 2FN,


Il nexiste aucune DF entre deux attributs non cl

primaire
(tout attribut n'appartenant pas une cl ne dpend pas d'un
attribut non-cl.)

Normalisation

2e ET 3e FORME NORMALE
Exemple :
Soit la relation concernant des dons de bienfaiteurs pour une association.

Nom
redondance

Ville

Rue

Montant

Date

Picsou
Picsou
Picsou

Disney Pas de sous


Disney Pas de sous
Disney Pas de sous

10
12
30

3/10/99
13/1/01
23/7/03

Donald

Disney

500

15/6/05

Bcp de sous

Supposer Picsouchange d'adresse (VILLE=Mons, RUE =Houdain).


Risque de ne pas corriger toutes les lignes concernes.
D'o BD incohrente

Difficult maintenance intgrit.

Normalisation

Problme dit Anomalies de Mise Jour:

Cause: Les Redondances d'informations sont sources d'Incohrences


Solution: On aurait aim la structure suivante:
PERSONNE

Nom
Picsou

Ville
Disney

Rue
Pas de sous

Donald

Disney

Bcp de sous

L'adresse de Picsou figure une seule fois.


On a spar des informations distinctes
(sur la personne, sur les dons).

DONS

Nom Montant
Date
Picsou
10
3/10/99
Picsou
12
13/1/01
Picsou
30
23/7/03
Donal
d

500

15/6/05

Le Bon Attribut au Bon Endroit

Normalisation

Normalisation du schma - limination des redondances internes


1 fait
1 donne
2FN
EMPLOYE
NumEmp
Nom
DEPARTEMENT
Localisation

DEPARTEMENT
IdDepart
Localisation
0-N
dpend

Localisation ne dpend
que de DEPARTEMENT

1-1
EMPLOYE
NumEmp
Nom

Normalisation

Autre Exemple : Soit la table dcrivant des fournisseurs d'une socit


NOM_FOUR

VILLE

CD_POSTAL

PIECE

QTE_EXP

F1

Mons

7000

Bureau

300

F1

Mons

7000

Ecran

500

F1

Mons

7000

Armoire 20

F2

Charleroi

6000

Bureau

500

F2

Charleroi

6000

Ecran

600

F3

Keumie

5060

Ecran

500

Quelques anomalies:

FOUR1

deux tables distinctes :


fournisseur (info fournisseur)
pices fournies.

Redondances.
Difficult de maintenance.
Mmoriser ladresse fournisseur impossible si pas de pice fournie. e.g.
<F4, Mons, 7000>
Suppression de toutes les pices fournies par F2, fait perdre aussi son adresse.

Normalisation

On dcompose donc (PROJECTION)

FOUR1

NOM_FOUR

VILLE

CD_POSTAL

PIECE

QTE_EXP

F1

Mons

7000

Bureau

300

F1

Mons

7000

Ecran

500

F1

Mons

7000

Armoire

20

F2

Charleroi

6000

Bureau

500

F2

Charleroi

6000

Ecran

600

F3

Keumie

5060

Ecran

500

EXPEDITION

2FN

NOM_FOUR

PIECE

QTE_EXP

F1

Bureau

300

F1

Ecran

500

NOM_FOUR

VILLE

CD_POSTAL

F1

Armoire

20

F1

Mons

7000

F2

Bureau

500

F2

Charleroi

6000

F2

Ecran

600

F3

Keumie

5060

F3

Ecran

500

F4

Mons

7000

FOUR2

Normalisation

Dans la relation FOUR1, des attributs noncl(e.g. VILLE),


dpendaient d'une partiedelacl(NOM_FOUR).
Les anomalies prcdentes ont ainsi t limines, renforant
l'intgrit de la base.

(on a pu insrer F4... par exemple).

En fait, les redondances ont juste t minimises. Car la relation FOUR2 souffre
encore de quelques anoma1ies.
Exercice: Lesquelles?
Considrer toujours le tuple supplmentaire
<F4, ..., Mons, 7000>
NOM_FOUR

FOUR2
VILLE

CD_POSTAL

F1

Mons

7000

F2

Charleroi

6000

F3

Keumie

5060

F4

Mons

7000

Normalisation

On dcompose encore la relation FOUR2


FOUR3
NOM_FOUR

VILLE

F1

3FN

COMMUNE
VILLE

CD_POSTAL

Mons

Mons

7000

F2

Charleroi

Charleroi

6000

F3

Keumie

Keumie

5060

F4

Mons

On dit qu'on est pass la 3e Forme Normale


Dans la relation FOUR2, des attributs non cl (e.g.
CD_POSTAL), dpendaient d'un autre attribut non cl ( ici
VILLE) .
Il n'y a plus de redondances
RSULTAT FINAL:

FOUR3
NOM_FOUR

VILLE

COMMUNE
VILLE

CD_POSTAL

EXPEDITION
NOM_FOUR

PIECE

QTE_EXP

Normalisation

Exces :
Deuxime forme normale (2FN)!!!
Une relation est en 2FN si:
Elle est en 1FN,
Tout attribut, non cl primaire, est dpendant de la cl primaire.
Exemple de relation en 1FN mais pas en 2FN:

Projet

NumProjet

NumEmploy

Pourquoi?
Fonction

NomEmploy

Problmes
- on ne peut enregistrer un employ que s'il participe un projet
- si un employ participe plusieurs projets, on doit rpter les informations sur cet employ
(redondance et problmes de m--j)
Une solution peut tre propose qui consiste extraire la dpendance fonctionnelle:
1. On cr une nouvelle relation contenant l'attribut dtermin par une partie de la cl primaire
2. La cl primaire de la nouvelle relation est cette partie de la cl
Employ

NumEmploy

NomEmploy

Projet

NumProjet

NumEmploy

NumEmploy est la fois cl primaire et cl externe dans Projet

Fonction

Normalisation

On peut aussi tudier d'autres relations comme:


CLIENT

Nclient

nom

prnom

date de naissance

rue

ville

Cette relation est en 2FN


par contre la suivante n'est pas en 2FN.
COMMANDE_PRODUIT Nproduit

quantit

Nfournisseur

ville

Pourquoi?
Pourquoi?

Relation en 2FN mais pas en 3FN


Employ

NumEmploy

NumService

Pourquoi?

Un autre exemple:
COMPAGNIE

NomEmploy

Vol

Avion

Pilote

NomService

Contraintes dintgrit

Aprs MLD

Le modle d'une base de donnes relationnelle implique, par sa


conception, un certain nombre de contraintes d'intgrit (C. I. ) qui
traduisent les proprits smantiques des donnes :

Intgrit de domaine :concerne le contrle des valeurs des attributs, le


contrle entre valeurs des attributs ainsi que le contrle des oprateurs
entre attributs.
Contraintes dintgrit statiques : utilisant le mot rserv CHECK
Le concepteur peut galement dfinir ses propres domaines:
CREATE DOMAIN Domaine_Sexe CHAR(1)
CHECK (VALUE IN (M, F));

Intgrit de cl primaire : la contrainte de cl primaire d'une relation


implique la non duplication des lignes, c'est--dire que chaque objet du
monde rel peut tre enregistr sans ambigut par une seule ligne, un
seul "tuple";

- on peut ajouter une colonne la contrainte de non-nullit qui implique


que cette colonne ne peut pas avoir de valeur nulle, c'est--dire ne peut
pas tre indfinie ou inutilisable;

contraintes de domaine et de non-nullit sont gres en langage SQL, lors de la cration de la tab

Intgrit de rfrence :
Lintgrit de rfrence (ou intgrit rfrentielle) est un
ensemble de contraintes contrlant les dpendances et
indpendances des relations. Elle concerne principalement
lintgrit des cls trangres dont les valeurs sont NULL ou
des valeurs de la cl primaire.

C. I.

Lobjectif des cls trangres tant de reprer un


enregistrement dans diffrents espaces, des contraintes
dintgrit rfrentielle doivent assurer la validit des rfrences
entre tables.
Lintgrit rfrentielle signifie quil ny a pas de valeurs de cls
trangres invalides. Pour cela, il faut donc prendre des
dcisions quant la suppression ou la modification de la cible
que rfrence la cl trangre.
FOREIGN KEY Nom_Cl REFERENCES Nom_Table
[ON DELETE option] [ON UPDATE option]

Intgrit de relationnelle :
Lintgrit relationnelle contrle la smantique et gre les
contraintes de type ifthen Voici lexempledune rgle
dintgrit qui assure la suppression du numro de tlphone
dune personne dcde.
CREATE INTEGRITY RULE Rgle_Dcs
FORALL Personnes (IF Personnes.Dcd= True
THEN Personnes.Tlphone = NULL)
ON ATTEMPTED VIOLATION Reject;

C. I.

Contraintes dintgrit fonctionnelle


Les contraintes dintgrit fonctionnelles (CIF) contrlent la dtermination
absolue dune entit participant une association du modle conceptuel par une
ou plusieurs autres participant la mme association. Ce type de contrainte
permet donc didentifier les dpendances entre entits.
Les CIFs ne doivent pas tre confondues avec les dpendances fonctionnelles, qui
permettent de dterminer les dpendances qui existent entre deux groupes
dattributs au sein dune mme relation
Lidentification des CIFs permet de corriger certaines erreurs de conception de
bases de donnes relationnelles. En effet, si la connaissance dune ou plusieurs
entits dune association conduit la dtermination complte dune autre entit
participant la mme association, on peut considrer quil y a redondance
dinformation dans le modle.

CIF
Personnes

0
N

Obtenir
Anne_d_obtention

ID_Personne
Nom
Prnom
Sexe
Adresse
Tlphone
Email

0
N

Diplmes
Code_diplme
Titre_diplme
Abrviation

0N

CIF

Universits
Code_universit
Nom_universit
Abrviation

Si on imagine re-normaliser les diplmes de telle manire que chaque universit possde
lexclusivit du diplme quelle dlivre, dans ce cas, la connaissance du diplme implique
celle de luniversit. Il y a donc une contrainte dintgrit fonctionnelle entre lentit Diplmes
et lentit Universits.
Personnes 0

Obtenir
Anne_d_obtention

0
N

Diplmes

0
1

Dlivrer

0
N

Universits

CIF

Trouver un MCD quivalent ce MCD :


1,1

Camion

0,N

No_Camion

Activit

Conduire

1,1

Matri_Chauf.

Camion
No_Camion

0,N

0,N

Activit

Conduire
1,N

Chauffeur

Mois
Mois

Cumul Nb H
dactivit

Chauffeur

1,N

0,N

Cumul Nb H
dactivit

0,N

Mois
Mois

Matri_Chauf.

Un camion nayant quun chauffeur,


lactivit du chauffeur par camion est lactivit du camion

CIF

Principe de simplification par les contraintes dintgrit fonctionnelles


Relation binaire non porteuse de donnes avec 1,1 sur lune des pattes
1,1

Entit 1

CIF

Relation
Entit 2

On supprime la patte n3.

CONTRAINTE D'INTEGRITE FONCTIONNELLE


Une Contrainte d'Intgrit Fonctionnelle (en abrg : CIF) se dfinit par le fait
que l'une des entits participant l'association est compltement dtermine
par la connaissance d'une ou plusieurs autres entits participant dans cette
mme association.

CIF
1,1

Camion

1,N

0,N

Type de Client

No_Camion

0,N

Type

Activit
Cumul Nb H
dactivit

Chauffeur

0,N

Matri_Chauf.

1,N

1,1

1,1

Camion

Client

1,N

1,1

0,N

Affecter
1,N

NClient

0,N

Type de Client

No_Camion

0,N

Type

Activit
Cumul Nb H
dactivit

Chauffeur

0,N

Matri_Chauf.

1,1

1,N

Client

1,N

Affecter

NClient

0,N

1,1

Les associations transitives


Considronslemodlesuivant:

CIF

LassociationbinairequirelielentitCONTRATetlentit
PROPRIETAIREdoittretedumodlecaronpeutretrouver
lepropritairepartirdesassociationsConcerneret
Appartenir.Il sagit dune association transitive.

Gestion FPMS_Etudiants
La FPMs veut r-informatiser son systme d'information qui gre les tudiants, Groupes
dtudiants (classes)(1er_A,... , 3eme_IG,) .
Sachant que :
Un tudiant est caractris par [no. matricule, nom, prnom, date de naissance, adresse,
Email ].
Une classe est caractrise par le nom de la classe (p.ex 1er) et par une indication du groupe
ou spcialit (P.ex : 1er_A, 4eme_Elec) ainsi que par le nombre dtudiants qui la frquente.
Un tudiant enregistr dans le systme frquente au moins une classe au cours des annes.
On dsire galement saisir tous les enseignants dans le systme d'information. Un enseignant
est caractris par un code interne (CodeProf) , nom, prnom, Email et la matire qu'il
enseigne.
Une matire (cours) peut tre compose de cours, T.P. et Exercices. Chacun des modules
prsente un poids en pourcentage de la cte globale lexamen. Un module peut tre donn
par un ou plusieurs enseignants.
Une matire est reprsente au moins par un code matire (p.ex. INF_B =
Informatique de base, BD = Base de donnes, etc.) et un libell complet qui exprime
le terme gnral ( p.ex "Informatique" etc.).

Modlisez le fait que chaque classe soit enseigne chaque anne par
un ou plusieurs enseignants. Un enseignant peut bien sr donner des
cours (cours, Labo., Exercices) plusieurs classes, enseigner
plusieurs matires diffrentes pendant une ou plusieurs annes, mais
peut galement ne pas donner de cours pendant une ou plusieurs
annes.
Exprimez aussi le fait que ltudiant puisse suivre des cours en
deux annes diffrentes.
Exprimez la contrainte suivante : connaissant le code postal de
ltudiant, nous pouvons choisir parmi les localits, celle qui
correspond ladresse de ltudiant, ou connaissant la localit le
code postal est capt automatiquement.

Le Modle Logique des Donnes (MLD)


Dfinition

Analyse

Le niveau logique, qui se base sur le


modle conceptuel des donnes,MCD
introduit la notion des tables logiques,
et constitue donc le premier pas vers les
MLD
tables des SGBD.
Passage du MCD au MLD

Rel
Peru

Schma
Conceptuel

Schma
Logique

Le passage du schma conceptuel la structure relationnelle


(MLD) se fait facilement et obit certaines rgles.
Le MLD est toujours bas sur MCD.
Un MLD est essentiellement compos de tables logiques relies
entre elles par des flches

modle conceptuel modle logique


Entit

Toute entit est transforme en table.


Les proprits de l'entit deviennent les attributs de la table.

L'identifiant de l'entit devient la cl primaire de la table.


EMPLOYE
Matricule
Nom
Fonction

Identifant

Cl
primaire
EMPLOYE
(Mat, Nom, Fonc)

Propri
t

Attribut

Association ou relation
Notion Pre_fils ou mre_fille

Les relations du modle conceptuel peuvent, sous


certaines conditions, soit disparatre, soit devenir une
table.

Relation un--plusieurs (participation totale) (1,1)

(1,N) : (1,1)

(0,N)

Porter dans la relation fille la cl primaire de la relation mre.


L'attribut ainsi ajout s'appelle cl trangre. Par convention, nous la
symboliserons au moyen de #.
Une cl trangre est une colonne
constitue de lidentifiant dune autre table
(et joue le rle de rfrence une ligne de cette table)

(contrainte rfrentielle)

(1,1) - (0,N) : se fait comme une relation un--plusieurs normale.

DEPARTEMENT

Nom
Adresse

DEPARTEMENT
Nom

Adresse

0-N
Occupe

1-1
EMPLOYE
Matricule
Nom
Fonction

EMPLOYE
Matricule

Nom Fonction

NomDpt

Relation plusieurs--plusieurs (1,N) - (1,N) : (0,N) - (0,N) :


(0,N) - (1,N)
1,N

CLIENT

COMMANDER
Quantit

Cde
Client
Nom
Adresse

CLIENT(CdCli, Nom, Adresse)

1,N

PRODUIT
Rfrence
Dsignation
Prix Unitaire

PRODUIT(Ref, Des, Prix)

COMMANDER(#CdCli, #Ref, Quant)


Cl primaire

Cls trangres

0,N : La mme rgle s'applique


CLIENT

0,N

COMMANDER

0,N

Rfrence
Dsignation
Prix Unitaire

Quantit

Cde Client
Nom
Adresse

CLIENT

CdCli

Nom

PRODUIT

PRODUIT
Adresse

Ref
COMM

CdCli

Ref

Qu

Des

Prix

Relation un--un (1,1)(1,1) :


L'une des entits devient un attribut de l'autre entit.
Exemple : Client(No_Client, Nom, Adresse)
Carte_Membre(No_Carte,Type_Abonnement)
Deviennent:
Client(No_Client, Nom, Adresse, #No_Carte,Type_Abonnement).

Disposer

CLIENT
0,1

Numro
Nom
Prnom
Adresse
Code_postal
Localit

Carte_membre
1,1

No_Carte
Type_Abonnement

Date_cration

CLIENT
Carte_membre

NoClient
Nom
Prnom
Adresse
Cde_postal
Localit

Disposer

No_Carte
NoClient
Type_Abonnement

Date_cration

Relation (0,1) (0,1) :


Idem que prcdemment avec choix.
Si lassociation contient elle mme des proprits, alors >>>
ajouter avec la cl trangre.

DIMENSION SUPERIEURE A 2:
Si la relation entre chacune des paires d'entits ne peut dterminer la troisime entit.

Une table pour chacune des entits et une table pour la relation. Cette dernire
possdera une cl primaire compose d'au moins trois champs.
Mdecin
Nom-mdecin
Adresse

0-N

Pratiquer 0-N
Lieu

Acte
Code-acte
Dsignation

1-N
Patient
NSec.Soc
Nom

Medecin(Nom-Med, Adr)
Acte(Cd-Acte, Des)
Patient(NSS, Nom-Pat)
Pratiquer(#Nom-Med, #Cd-Acte, #NSS, Lieu)

Rsum :
Relation binaire :

A-B

(1,1) (1,N) et (1,1) - (0,N) :


A ( id_A, a1, a2, , #id_B)
(1,1) - (0,N)
B ( id_B, b1,b2,)
(1,N) - (1,N) , (0,N) - (1,N) :
A ( id_A, a1, a2, ,)
(0,N) - (0,N)
B ( id_B, b1,b2,)
A-B (#id_A, #id_B, a-b,)
(1,1) - (1,1) :
(0,1)- (1,1) :

A ( id_A, a1, a2, , id_B, b1,b2,)


A ( id_A, a1, a2, )
B ( id_B, b1,b2,, #id_A)

(0,1) (0,1) : Idem que (0,1)- (1,1) avec choix du placement de la cl trangre.

Relation ternaire
-N

-N
A-B-C

-N

A ( id_A, a1, a2, ,)


B ( id_B, b1,b2,)
C ( id_B, b1,b2,)
A-B-C (#id_A, #id_B, #id_C, a-b-c,)

EXCE :

Exercice "LabDB"
Transformez le MCD suivant, qui reprsente la facturation de la socit
"LabDB" en un MLD en respectant toutes les rgles du passage MCD MLD.
CLIENT
No_Client
Nom
Prnom
Adresse
Code_postal
Localit

Obtenir
1,N

Facture

CLIENT

No_Facture
Date

No_Client
Nom
Prnom
Adresse
Code_postal
Localit

1,1

1,N
Porter

Obtenir

Facture
N_Facture
NClient
Date

Quantit

0,N

Porter
Article

No_Article
Libell
Prix_Unitaire

N Facture
No_Article
Quantit

Article
No_Article
Libell
Prix_Unitaire

Exercice_Oblix
La socit Oblix et Compagnie fournit des menhirs dans le monde entier et
gre les commandes laide dun micro-ordinateur.
Exemple dune commande:

Oblix et Compagnie
Livreur de menhirs
Village gaulois

Donner :
Le MCD
Les cardinalits et leur
signification.
Le Modle des
donnes.

Date commande: 22.02.2003


N client

012

Nom client:

N commande:

BISCORNUS

Prnom:

M.

Adresse:

BABAORUM

Code Libell

Quantit

12

MENHIR CLASSIC

21

MENHIR SE/30

1500

25

MENHIR II FX

2500

Prix unitaire
500

4711

Rep_Oblix
Schma Entit-Association

0,N
CLIENT

1,1
CLI_COM

COMMANDE
1,N

Signification:
- Une commande est passe par un (1) client.
- Un client peut passer plusieurs (N) commandes.
- Une commande peut concerner plusieurs (N) produits.
- Un produit peut intervenir dans plusieurs (N) commandes.

Lassociation CLI_COM est du type (1,N).


Lassociation COM_PRO est du type (N,N).
Modle des donnes
CLIENT(NUM_CLI, NOM_CLI, PRE_CLI, ADR_CLI)
COMMANDE(NUM_COM, DAT_COM, #NUM_CLI)
PRODUIT(NUM_PRO, LIB_PRO, PRI_UNI)
COM_PRO(#NUM_COM, #NUM_PRO,QTE_COM)

COM_PRO
0,N
PRODUIT

Modlerelationneltextuel:
Client(NoClient,Nom,Prnom)
Commande(NoCde,DateCde,NoClient#)
Produit(RefPdt,Dsignation,Prix)
Ligne(NoCde#,RefPdt#,Qt)
Client
NoClient

Nom

Commande
Prnom

NoCde

DateCde

NoClient#

Lassus

Annick

100

14/04/2001

Mundubeltz

Armelle

101

14/04/2001

Produit Bernadette
Chaulet

RefPdt

Dsignation

Prixen

Ligne
NoCde#

RefPdt#

Qt

VE45

Vlo

150

100

VE45

VE32

Kit2roues

30

100

VE32

CLIENT

NumClient
001
002
003

Nom
Albert
Francois
Brabo

PRODUIT

Ville
Bruxelles
Lige
Anvers

COMMANDE

NumClient NumPiece
001
0002
002
0002
002
0003

NumPiece
0001
0002
0003

Descr.
Table
Chaise
Armoire

Cout
500
300
1.000

Quantite
3
1
5

des relations existent entre les tableaux d une BD, ici: Albert de
Bruxelles a command 3 chaises 300 EUR

CLIENT
APPARTIENT

0-N

NumCli
Nom
Adresse

SIGNE

0-N

1-1

1-1

CONTRAT

VEHICULE

0-1

NumCtr
Type
Date

0-N

ACCIDENT

(1-N)

NumAcc
Date
(Montant)

NumVeh
Marque
Modle
Anne
Cylindre

1-1

0-N

COUVERT

CONCERNE

CLIENT
NumCli

Nom

Adresse

CONTRAT

VEHICULE
NumVeh

...

NumCli

NumCtr

Numcli

NumCtr

Type

Date

ACCIDENT
NumAcc
CONCERNE
NumVeh

NumAcc

Date

(Montant)

Exemple - SQL
create table CLIENT (
NumCli char (12) not null,
Nom
char (38) not null,
Adresse char (60) not null,
primary key
(NumCli) )
create table
CONTRAT (
NumCli char (12)
not null,
NumCtr char (8)
not null,
Type
decimal (4)
not null,
Date
date
not null
primary key
(NumCtr)
Foreign key
(NumCli) references CLIENT )

create table VEHICULE (


NumVeh char (16) not null,
Marque char (30) not null,
Modele char (30) not null,
Annee
decimal (4) not null,
Cylindree
decimal (6) not null,
NumCli
char (12) not null,
Ncli
char (12)
not null,
NumCtr
decimal (8) not null,
primary key (NumVeh),
unique (Numcli, NumCtr),
Foreign key
(Numcli) references CLIENT,
Foreign key
(Numcli, NumCtr) references CONTRAT
)

create table ACCIDENT (


NumAcc char (10)
not null,
Date
date
not null,
Montant decimal (6),
not null,
primary key (NumAcc))

create table CONCERNE (


NumVeh char (16) not null,
NumAcc char (10) not null,
primary key (NumVeh, NumAcc),
foreign key (NumVeh) references VEHICULE,
foreign key (NumAcc) references ACCIDENT)

Access

SQL
S.Q.L. Structured Query Language , "langage structur de
requte" est un langage pour interroger et grer les bases de
donnes relationnelles.
Il permet de crer, modifier et slectionner des donnes.
Le SQL peut se diviser en trois parties:
DDL (data definition language), sert dfinir la structure:
crer, modifier, effacer...
DML (data manipulation language), sert manipuler les donnes:
choisir, ajouter, effacer des tuples.
DCL (data control language), sert contrler l'accs l'information.

On retrouve dans le DDL les commandes principales suivantes:

CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
DROP TABLE

Cration d'une table


Cration d'un index
Cration dune vue
Modification de la structure

Effacement d'une table

On retrouve dans le DML les commandes principales suivantes:

INSERT
UPDATE
DELETE
SELECT

Insrer un tuple
Modifier un tuple
Effacer un tuple
Choisir un ensemble de tuples

Il existe de plus des fonctions:


De tri (ORDER BY) et de regroupement (GROUP BY)
arithmtiques, mathmatiques et statistiques (moyenne, maximum, minimum, etc.)
logiques (UNION, INTERSECTION, etc.)
etc.
Les donnes sont dfinies selon des types (entier,caractres, date,etc.).

Types de donnes
SMALLINT entier (16 bits)
INTEGER entier (32 bits)
DECIMAL (m,n) dcimaux de m chiffres (dont n aprs la virgule)
FLOAT rels flottants
CHAR (n) chane de n caractres
VARCHAR chane variable dau plus n caractres
DATE dates (anne, mois et jour)
TIME instants (heure, minute, seconde)

On peut aussi inclure dans la dfinition des attributs des


mots de contrle pour forcer la saisie.
Par exemple:

NOM CHAR(20) NOT NULL


dfinit une variable "NOM" qui sera constitue d'un
champs de 20 caractres auquel on devra obligatoirement
attribuer une valeur si on dsire ajouter un tuple
contenant cet attribut.

Exercice "LabDB"
CLIENT
No_Client
Nom
Adresse

Obtenir
1,N

Facture

1,1

No_Facture
Date

1,N
Porter
Quantit

0,N

CLIENT
No_Client
Nom
Boite_Post
Rue
Code_postal
Localit

Obtenir
1,N

Facture

1,1

No_Facture
Date

1,N
Porter
Quantit

0,N

Article

Article

No_Article
Libell
Prix_Unitaire

No_Article
Libell
Prix_Unitaire

CLIENT
No_Client
Nom
Boite_Post
Rue
Code_postal
Localit

Obtenir
1,N

Facture

CLIENT

No_Facture
Date

No_Client
Nom
Boite_Post
Rue
Code_postal
Localit

1,1

1,N
Porter

Obtenir

N_Facture
#NClient
Date

Quantit

Porter

0,N

N Facture
No_Article
Quantit

Article
No_Article
Libell
Prix_Unitaire

Facture

Article
No_Article
Libell
Prix_Unitaire

Aperu des oprations les plus courantes


Cration dune table
CREATE TABLE Client ( No_Client CHAR (4),
Nom CHAR (12),
Bte_Post INTEGER,
CLIENT
Rue
CHAR(30),
No_Client
Code_P INTEGER,
Nom
Boite_Post
Localite CHAR (20)
Rue
);
Code_postal
Localit

create
table

Identifiant
CREATE TABLE Client (

not
null

No_Client CHAR (4) NOT NULL,


Nom

CHAR (12),

Code_P

INTEGER,

Localite
CHAR (20),
PRIMARY KEY (No_Client)
);

primary
key

CLIENT

No_Client
Nom
Boite_Post
Rue
Code_postal
Localit

Facture

CREATE TABLE Porter(


No_Facture CHAR (8) NOT NULL,

N_Facture
#NClient
Date

No_Article CHAR (8) NOT NULL,


Quantit

PRIMARY KEY (No_Facture, No_Article),

Porter
N Facture
No_Article
Quantit

Article
No_Article
Libell
Prix_Unitaire

INTEGER,

FOREIGN KEY (No_Facture) REFERENCES


Facture,

);

FOREIGN KEY (No_Article) REFERENCES


Article

foreign
key

Cl trangre

Ajouter une colonne une table


ALTER TABLE Client ADD Prenom CHAR(25);

Dtruire une table


DROP TABLE FOURNISSEUR;

Crer un index
CREATE INDEX PR-Cli1 ON Client (Localite);

Dtruire un index
DROP INDEX PR-Cli1

CLIENT
No_Client
Nom
Prenom
Boite_Post
Rue
Code_postal
Localit

Consultation dune BD
SELECT Nom, Localite
prciselesvaleurs(colonnes,valeurscalcules)
quiconstituentchaquelignedursultat
FROM
Client
indiquelestablesdesquelleslersultattiresesvaleurs
WHERE Localite = Charleroi
donnelaconditiondeslection
quedoiventsatisfaireleslignesquifournissentlersultat

Manipulation des donnes :


Slection de tous les attributs:
SELECT * FROM Client;
Slection de certains attributs:
SELECT Nom, Prenom FROM Client;
Slection de certains attributs et tuples:
SELECT Nom, Code_P FROM Client
WHERE Code_P < 7000 AND ;
Slectionner le nom de tous les Clients qui vivent Mons:
SELECT Nom FROM Client
WHERE VILLE= MONS;

Extraction

SELECT ID_Personnel, Nom, Code_Postal


FROM Client

Extraction

SELECT * FROM Client

Extraction

SELECT ID_Personnel, Nom, Code_Postal


FROM Client
WHERE Nom = Bros

Le DISTINCT permet d'obtenir une liste qui ne contient qu'une fois chaque Localite.

DISTINCT
AVANT

SELECT DISTINCT Localite


FROM Client
WHERE Categorie = 1
APRES
SANS
DISTINCT

APRES
AVEC
DISTINCT

Conditions de slection

and

or

not
()

SELECT Nom, Compte


FROM Client
WHERE Localite = Charleroi
AND Compte >= 0

SELECT TableClient.Nom,
TableClient.compte
FROM TableClient

Access

WHERE
(((TableClient.Localite)='Charleroi')
AND ((TableClient.compte)>=0));

Trouver les N_Com avec leur date de


tous les Clients de Charleroi.
EXCE :

Facture
N_Facture
#NClient
Date

Sous-requtes

SELECT No, Date


AVANT
FROM Commande
WHERE NoClient in
(SELECT No
FROM Client
WHERE Localite = Charleroi)

Facture
N_Facture
#NClient
Date

EXCE :

Trouver les noms de tous les fournisseurs qui vendent


la pice numro 2.
Rep :

SELECT NOM FROM FOURNISSEUR WHERE NOFOUR IN


(SELECT NOFOUR FROM ASSOCIATION WHERE NOPCE=2);

Le IN signifie inclus dans. Il existe une autre mthode : JOIN


Pour comprendre les requtes (ou query) imbriques, il faut excuter
d'abord la requte entre parenthses.

Lesclientsquihabitentdanslammelocalitqueleclientn2
SELECT *
FROM Client
WHERE Localite IN (
SELECT
Localite
FROM Client
WHEREClient.No = 3)

Diffrents oprateurs
=
IN
NOT IN
CONTAIN
DOES NOT
CONTAIN

Diffrentes fonctions
COUNT
SUM

AVG
MIN
MAX

COUNT(*) nombre de lignes trouves


AVG(colonne) moyenne des valeurs de la colonne
SUM(colonne) somme des valeurs de la colonne
MIN(colonne) minimum des valeurs de la colonne
MAX(colonne) maximum des valeurs de la colonne

On peut galement se servir de mots de contrle tels:


BETWEEN, NULL, LIKE, EXISTS, IN, ALL, SOME, etc..

Donnes calcules et duplication de lignes


distinct

nombredecommandes???

SELECT COUNT (NoClient)


FROM Commande
nombredecommandes!!!

APRES

SELECT COUNT (DISTINCT NoClient)


FROM Commande
nombredecommandes!!!

APRES

Mise jour :
UPDATE ASSOCIATION
SET PRIX=23 WHERE NOPCE=5 AND NOFOUR="ZZ";

Dans la table ASSOCIATION pour tous les enregistrements dont le


NOPCE=5 et NOFOUR=ZZ, la colonne PRIX sera mise 23.

Suppression :
DELETE FOURNISSEUR WHERE NOFOUR="ZZ";
Dans la table FOURNISSEUR supprime l'enregistrement dont NOFOUR=ZZ.
Il faut s'assurer que ce fournisseur n'est pas utilis dans la table
ASSOCIATION.

Cration :
INSERT INTO ASSOCIATION
(NOPCE,NOFOUR,PRIX) VALUES(1,"KK",10);
Cre dans la table ASSOCIATION un enregistrement en
assignant des valeurs aux colonnes.

Vous aimerez peut-être aussi