Vous êtes sur la page 1sur 38

Dpartement dinformatique

420 KED-LG, conception de bases de donnes

Introduction,
Conception du
modle E/R (oracle)
et
Normalisation

1 Prpar par Saliha Yacoub

Table des matires


Bref historique .................................................................................................................... 3
Concepts de base ................................................................................................................. 3
1. Dfinition dune base de donnes ....................................................................... 3
2. Objectifs des SGBD. : ......................................................................................... 4
3. Types de SGBD .................................................................................................. 4
4. Modlisation des donnes ................................................................................... 4
5. Le modle Entit/Relation (E/R ): Le formalisme MERISE .............................. 5
Le modle Entit association : Formalisme doracle. ....................................................... 10
Caractristiques ......................................................................................................... 10
Reprsentation des cardinalits ................................................................................. 10
Autres concepts ......................................................................................................... 13
Vrification et normalisation du modle entit/relation ................................................... 15
La vrification ........................................................................................................... 15
La normalisation du modle Entit/Relation ............................................................ 15
Premire forme normale : La cl (nonc 1) ............................................................ 15
Deuxime forme normale Dpendance totale de la Cl (nonc 2)....................... 17
Troisime forme normale : Et rien que la cl (aucune dpendance transitive.)
(nonc 3).................................................................................................................. 18
Le Modle Relationnel ...................................................................................................... 20
Introduction : ............................................................................................................. 20
Dfinitions................................................................................................................. 21
Passage du modle Entit/Association au modle relationnel : ................................ 22
Rgle 1 : Entit excluant les entits surtype et sous-type : ....................................... 22
Rgle 2 : Relation binaire avec participation multiple : ........................................... 23
Rgle 3 : Relation binaire avec participation multiple dun ct et unique de lautre
ct ............................................................................................................................ 25
Rgle 4 : Relation binaire avec participation un ct et unique des deux cts ...... 27
Rgle 5: relation rcursive avec participation multiple. ........................................... 30
Rgle 6: relation rcursive avec participation unique dun ct ............................... 31
Rgle7: relation entit surtype et sous-type. ............................................................. 31
Normalisation du modle relationnel ................................................................................ 33

2 Prpar par Saliha Yacoub

Bref historique
Les donnes reprsentent une ressource organisationnelle et informationnelle cruciale
que lentreprise se doit de matriser. La majorit des organisations ne saurait russir sans
connatre les donnes exactes de leur entreprise et de leur environnement externe
Pendant trs longtemps, les systmes dinformation des entreprises structuraient leurs
donnes sous forme de fichiers, chaque application utilisait donc son propre fichier.
Beaucoup de problmes taient connus de cette faon de grer les donnes dune
entreprise : la redondance dinformation, la dpendance des donnes des traitements, et
le manque dintgration de donnes en font partie.
Devant le volume dinformation grandissant et la complexit des traitements, le stockage
des donnes dans de simples fichiers nest plus la solution pour le stockage du
patrimoine informationnel de lentreprise. Un moyen de palier aux problmes de la
gestion des fichiers est le SGBD. (Systmes de Gestion de Bases de Donnes).
Vers la fin des annes 60 et le dbut des annes 70, sont apparus les premiers SGBDs
hirarchiques et rseaux. Vers le milieu des annes 70, nous avons vu natre les SGBDs
relationnels, qui utilisent le modle relationnel de Edgar Frank Ted

Codd pour la

modlisation des donnes. Aujourdhui les SGBD relationnels sont prsents dans la
majorit des entreprises.

Concepts de base
1. Dfinition dune base de donnes
Une base de donnes est un ensemble de donnes modlisant les objets dune partie du
monde rel et se servant de support une application informatique.
Un SGBD (systme de gestion de base de donnes) peut-tre peru comme un ensemble
de logiciels systme permettant aux utilisateurs dinsrer, de modifier et de rechercher
efficacement des donnes spcifiques dans une grande masse dinformation partage par
de multiples utilisateurs.

3 Prpar par Saliha Yacoub

2. Objectifs des SGBD. :

Non redondance des donnes : permet de rduire le risque dincohrence lors des
mises jour, de rduire les mises jour et les saisies.

Partage des donnes : ce qui permet de partager les donnes dune base de
donnes entre diffrentes applications et diffrents usagers.

Cohrence des donnes : ce qui permet dassurer que les rgles auxquelles sont
soumises les donnes sont contrles surtout lors de la modification des donnes.

Scurit des donnes : ce qui permet de contrler les accs non autoriss ou mal
intentionns. Il existe des mcanismes adquat pour autoriser, contrler ou
denlever des droits nimporte quel usager tout ensemble de donnes de la
base de donnes.

Indpendance physique : assurer lindpendance des structures de stockage au


structure des donnes du monde rel.

Indpendance logique : possibilit de modifier un schma externe sans modifier


le conceptuel. Cette indpendance assure chaque groupe les donnes comme il
le souhaite travers son schma externe appel encore une VUE.

3. Types de SGBD
Relationnel
Rseau
Hirarchique

4. Modlisation des donnes


Un modle de donnes est un ensemble de concepts utiliss pour dcrire la structure
dune base de donnes Par structure de base de donnes, nous entendons, les types de
donnes, les relations, et les contraintes qui dfinissent le gabarit de la base de donnes.
Tout modle peut tre exprim divers niveaux de prcision, conceptuel, logique
physique et externe. Cette dfinition sera retenue lorsque nous prsenterons la partie
Prsentation des approches traditionnelles pour lintgration des donnes

4 Prpar par Saliha Yacoub

Les techniques de modlisation de donnes permettent dune part de comprendre le


fonctionnement dun systme te la faon dont les donnes sont organises et dautres
part de construire un systme dinformation qui reflte la ralit.
Il existe plusieurs niveaux de reprsentation (ou de modlisation des donnes).
4.1.

Niveau conceptuel : le niveau conceptuel ou le schma conceptuel de la base

de donnes dcrit la ralit du systme dinformation dune organisation


indpendamment du SGBD dimplantation. Le modle utilis ce niveau peut-tre le
modle dEntit/Association (modle dEntit/Relation). Ce niveau est de la
responsabilit de lanalyste concepteur ou de ladministrateur de la base de donnes
4.2.

Niveau interne (logique et physique) : le niveau interne spcifie comment

les donnes sont reprsentes ou stockes sur les supports de stockage. Ce niveau est
compltement pris en charge par les SGBD. (SGBDR Oracle)
4.3.

Niveau externe :ce niveau correspond la vision de tout ou une partie du

schma conceptuel par un groupe dutilisateurs concerns par une application ou une
partie de lapplication. Il sagit de dcrire laide de schmas externes (vues) la faon
dont seront perues les donnes par les programmes.

5. Le modle Entit/Relation (E/R ): Le formalisme MERISE


Ce modle appel encore le MCD (Modle Conceptuel de Donnes) permet de
reprsenter les donnes dun systme sans se proccuper du SGBDR (Systme de
Gestion de Base de Donnes Relationnel) qui sera utilis ultrieurement. Cest le
modle qui se rapproche le plus du formalisme (modle) doracle
5.1.

Rle du modle E/A

Reprsente le niveau conceptuel dune base de donnes

Permet dobtenir les caractristiques logiques dune base de donnes

Utilise 3 (trois) concepts fondamentaux pour modliser les donnes : Entit.


Relation et Attributs.

5 Prpar par Saliha Yacoub

5.2.

concepts du modle E/A : dfinitions

Entit : Collection dobjets de mme type concrets ou abstraits ayant une existence
propre dans le systme. Une entit doit avoir plus dune occurrence et elle doit tre
dcrite par au moins un attribut, sinon il faudra se questionner sur son existence.
Exemple : Etudiant peut tre une entit dans le systme de la gestion des tudiants. En
effet un tudiant est reprsent par plusieurs attributs comme le nom et le prnom. Et
nous avons plusieurs occurrences de Etudiant. Deux occurrences de Etudiant sont
Lefebvre Martin, Yacoub Saliha
Personnages est galement une entit le jeu vido Warcraft
Dans le formalisme de MERISE, une entit est reprsente par un rectangle.
Etudiant
NoEtudiant
Nom
Prnom

Cours
CodeCours
Titre

Occurrence dun attribut : loccurrence dun attribut reprsente la valeur de cet


attribut. Une occurrence pour lattribut Prnom peut tre Yanick
Occurrence dune entit : une occurrence dune entit est une instance de cette
entit.
Exemple
Soit lentit Etudiant dfinie prcdemment. Les attributs de lentit sont :
NoEtudiant
Nom
Prnom
Une occurrence de lentit peut-tre 23462007 Courtey Yanick
Relation : (association) : Les entits elles mmes sont porteuses de peu
dinformation, mais si celles-ci sont associes dautres entitsalors linformation
devient plus pertinente et plus consquente.
En effet lentit Etudiant est porteuse de deux informations Nom et Prnom, nous
sommes renseigns sur lidentit de ltudiant. Par contre si lentit Etudiant est associe
lentit Cours, alors nous pouvons tre renseigns sur les cours que suit un tudiant.

6 Prpar par Saliha Yacoub

Une relation reprsente une association entre deux ou plusieurs entits traduisant un fait
ou un vnement dont le systme voudra garder trace. Le nom choisi pour une relation
est un verbe daction permettant de dcrire la relation.
Dans le formalisme de Merise, une relation est reprsente par un cercle ou un ovale.

Cours

Etudiant
NoEtudiant
Nom
Prnom

CodeCours
Titre

inscrit

Remarque :
Dans le formalisme de Merise les relations peuvent contenir des attributs.
Dans lexemple prcdent, on peut inclure la date dinscription un cours dans la
relation (plus loin, lors de la normalisation, nous expliquerons ce choix)

Etudiant
NoEtudiant
Nom
Prnom

Cours
inscrit
DateInscription

CodeCours
Titre

Attributs (proprits) :Un attribut est la plus petite information que lon conserve
dans le systme.. un attribut permet didentifier, de dcrire, ou de quantifier une entit
ou une relation. Un attribut est obligatoirement rattach une relation ou une entit et
doit avoir une signification UNIQUE dans le modle conceptuel et ne peut tre rattach
qua un seul concept (entit ou relation)
La valeur dun attribut est une donne dans le systme.
5.3.

Types dattributs Il existe deux types dattributs :

a. Attributs descripteurs : lattribut descripteur dune entit sert qualifier ,


quantifier ou encore dcrire ltat dune entit de sorte que plusieurs
occurrences de la mme entit peuvent se rpter

7 Prpar par Saliha Yacoub

Exemple : NomEtudiant est un attribut descripteur pour lentit Etuduiant.


Plusieurs occurrences de lentit Etudiant peuvent avoir le mme nom.
Pour la mme raison lattribut ville est un attribut descripteur pour lentit Clients.
b. Attributs identificateur ou identifiant : il sert identifier les occurrences
dune entit de manire unique
Exemple :
Lattribut Code_Permanent est un attribut identificateur pour lentit Etudiant.
Chaque occurrence de lentit Etudiant est identifie de manire unique par le
Code_Permanent. Il nexiste pas d eux tudiants ayant le mme code permanent.
Une entit ou une relation doit toujours avoir un identifiant.
Gnralement lidentifiant est le premier attribut dune entit ou dune relation et il
est soulign
5.4.

Types de relation :

Il existe plusieurs types de relation


Les relations binaires simples : ce sont des relations qui lient deux entits pas
plus.
Les relations n-aires, plus de deux entits participent la relation
Les relations rflexives, cest une relation sur la mme entit
5.5.

Notion de cardinalits (multiplicit) : une cardinalit est le nombre de fois

minimum et maximum quune occurrence dune entit participe une relation.

Entit A

Entit B

relation
(x,1)
ou
(x,n)

8 Prpar par Saliha Yacoub

(x,1)
ou
(x,n)

La valeur de gauche (loptionalit) indique si les occurrences des lentit sont obliges
de participer la relation. Les valeurs possibles sont : 0 pour optionnel et 1 pour
obligatoire.
La valeur de droite le degr ou la multiplicit) indique le nombre maximum de fois
quune occurrence de lentit participe la relation. Les valeurs possibles sont 1 pour une
seule participation et N pour plusieurs participation.
Exemple

Employ

Entreprise

travaille
(1,1)

(1,n)

Un employ travaille pour 1 et 1 seule entreprise et une entreprise contient plusieurs


employs.

9 Prpar par Saliha Yacoub

Le modle Entit association : Formalisme doracle.


Dans le formalisme doracle on met en vidence les entits avec leurs proprits et les
identifiant en respectant le formalisme suivant :

Caractristiques
Les relations ne sont pas porteuses de proprits (contrairement au
modle Merise)
Les relations ont des noms indiquant leurs rles dans le systme.
Dans une entit lidentifiant est prcd du symbole #
Dans une entit les attributs obligatoires sont prcd du symbole *
Dans une entit, les attributs optionnels sont prcds du symbole o
Les cardinalits sont reprsentes par des lignes avec les terminaisons possibles
suivantes :

Reprsentation des cardinalits


Optionnelle

signification

Obligatoire

signification

Unique

(0,1)

(1,1)

Multiple

0,n)

(1,n)

Pour une entit dans le modle, la ligne prs de lentit indique loptionalit et la
ligne au bout indique la multiplicit.
Exemple 1 et explication

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse

PROGRAMME
#Code_prog
*description

inscrit
contient
Ce qui veut dire
(1,n)

10 Prpar par Saliha Yacoub

(1,1)

Pour la relation inscrit


La ligne tant continue du ct de lentit Etudiant, donc il sagit dune obligation.
Comme il n y a pad de patte doie du ct de lentit Programme, alors il sagit de
lunicit. On peut lire alors la relation :Un tudiant est inscrit (le nom de la relation)
un seul programme.
Pour la relation contient
Du ct de lentit Programme, la ligne et continue, il sagit dune obligation. Du ct
de lentit Etudiant, la terminaison de la relation est une patte doie, donc il sagit de
la multiplicit. On lira la relation de la faon suivante. Un programme contient 1
plusieurs tudiants.
Exemple 2

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse

STAGE
#Num_Stage
*description
a

affect

appartient

propose

ENTREPRISE
#Num_Entreprise
*Adresse

Pour la relation a, on peut la lire de la faon suivante : un tudiant a 0 ou 1 stage.


La relation affect se lie de la mme manire. En effet un stage est affect 0 ou 1
tudiant.
Une entreprise propose 0 ou plusieurs stages, cest ainsi que nous pouvons lire la
relation propose. Par contre, un stage appartient 1 et une seule entreprise.

11 Prpar par Saliha Yacoub

Exemple 3

FOURNISSEUR
#NoFournisseur
+AdresseFournisseur

PRODUIT
#NoProduit
+Description

vend

vendu

Attention : dans le formalisme doracle, les cardinalits signifient la mme


chose que dans le modle MERISE. MAIS elles sont places de lautre ct
de lentit.
Remarque : Toutes les relations dcrites plus haut sont des relations binaires
simples.
Sauf cas contraire (si le systme lexige), il est fortement recommand de modliser
notre base de donnes en utilisant des relations binaires
Exemple dune relation rflexive :
Il existe des systmes qui exige quune relation soit reli la mme entit. par
exemple dans une entreprise si nous voulons reprsenter les employs avec leur
responsable immdiat il est claire que nous avons besoin dune relation sur lentit
EMPLOYE avec lentit e EMPLOYE. La reprsentation sera la suivante

Est responsable

EMPLOYE
#empno
*nom
*prenom
oadresse

12 Prpar par Saliha Yacoub

A pour responsable

Autres concepts
Gnralisation dentit.
La gnralisation dentit consiste regrouper sous la mme entit plusieurs entits
ayant les mmes caractristiques.(un peu comme le concept dhritage en POO.).
On appelle entit surtype, lentit qui englobe plusieurs entits.
On appelle entit sous-type une entit lintrieur de lentit surtype.
Exemple

EMPLOYES
#empno
*nom
*prenom
oadresse

EMPLOYES_A_CONTRAT
*NoContrat
*Taux_Horraire

EMPLOYES_PERMANENTS
*Salaire_Annuel
*Echelon

Dans le modle prcdent, lentit EMPLOYS est lentit surtype . Les entits
EMPLOYES_PERMANENTS et EMPLOYE_A_CONTRAT sont des entits sous-type.
Chacune delles possdent ses propres proprits et les proprits de lentit surtype
EMPLOYS.
Ce type de modle fait penser au concept dhritage dans la POO.

13 Prpar par Saliha Yacoub

Identifiant Relatif
Il existe des entits dont les occurrences ne peuvent tre identifies par lidentifiant
de lentit en question, on dit alors que lentit a un identifiant faible. Pour
identifier parfaitement les occurrences, nous devons utiliser lidentifiant dune autre
entit.
Exemple 1

EMPLOYE
#empno
*nom
*prenom
oadresse

ENFANT
#noenfant
*prenom

Lidentifiant de lentit ENFANTT est faible. Lentit ENFANT est entirement


dpendante de lentit EMPLOYE, donc pour identifier lenfant, nous avons besoin de
connatre lidentifiant de lemploy qui appartient lenfant.
Exemple 2

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse

14 Prpar par Saliha Yacoub

INSCRIT
*DateInscription

COURS
#CodeCours
*Titre

Vrification et normalisation du modle entit/relation


La vrification
On dit quun modle conceptuel (entit/relation) est vrifi sil rpond aux conditions
suivantes :

Touts les attributs non calculs sont prsents dans une entit ou une relation
dans le cas du modle de MERISE)

Aucun attribut nest redondant

Toutes les entits ont un identifiant

Tous les attributs sont lmentaires (non dcomposable ou se traitent comme un


tout, exemple lattribut adresse peut-tre dcomposable)

La normalisation du modle Entit/Relation


Les rgles de normalisation du modle conceptuel permettent dassurer :

La non redondance des donnes

Lintgrit des donnes

La facilit de mise jour

Lors de la normalisation dun modle de donnes (peu importe le niveau de


modlisation, de conceptualisation ou de reprsentation) nous devons avoir au mois la
3eme forme normale.
Dfinition :
Une base de donnes est normalise si celle-ci est en 3eme forme normale.

Premire forme normale : La cl (nonc 1)


Les entits ne doivent pas contenir des groupes de donnes rptitives. Si tel est le cas, il
faut sortir le groupe de donnes et crer une autre entit qui va contenir ce groupe de
donnes.

15 Prpar par Saliha Yacoub

Problmes avec cette reprsentation :

EMPLOYE
#empno
*nom
*prenom
Oadresse

Groupe de
donnes
rptitif

NoProjet1
Desrription_projet1
Date_debut1
NoProjet2
Date_debut2
Desrription_projet2
NoProjet3
Desrription_projet3
Date_debut3

On ne sait pas combien de projets


sont affects chaque employ.
Ce qui veut dire que lors de la
cration de la base de donnes, on
ne sait pas combien de champs
en rapport avec projet que nous
allons crer (0?, 10?, 45?
1000?,..)
Problme de redondance si la
compagnie qui gre ces employs
a affect 200 employs un
projet alors on retrouvera 200
fois la mme description du
projet et 200 fois la date dbut du
projet pour le projet en question.

La premire forme normale (1FN) va donner la reprsentation suivante

EMPLOYE
#empno
*nom
*prenom
oadresse

PROJET
#NoProjet
*Desrription_projet1
*Date_debut1

Les cardinalits sont 1 :N ou 0 :N, dpendamment si lemploy est obligatoirement


(obligation don 1) affect un projet ou non (si no alors loptionalit alors 0)
Le schma de la solution reprsente lobligation. (1 :N)

16 Prpar par Saliha Yacoub

De mme, le systme dterminera galement les cardinalits du ct EMPLOYE (un


projet est-il affect 0 :1 ou 1 :1 ou 0 :N ou 1 :N) employ. Le schma indique quun
projet est affect 1 :N employs.

Deuxime forme normale

Dpendance totale de la Cl (nonc 2)

Une entit ou une relation est en deuxime forme normale 2FN, si elle est :
a. En 1FN
b. Tous les attributs de la relation ou de lentit dpendent de toute la cl
(identifiant) et non dune partie de la cl.
Ce genre de vrification sapplique surtout aux relations avec cardinalits (m :N), m tant
gale 0 ou 1 et N >1
Exemple :
Pour lensemble des tudiants de 3eme session informatique de gestion, on souhaite
garder les notes finales quils ont obtenues pour chaque cours.

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse

RESULTAT
*Note_Fianle

COURS
#CodeCours
*Titre

Dans le modle prcdent, il est clair que la note finale dun tudiant dpend de
ltudiant et du cours quil suit.
Voici un exemple de notes finales que lon peut avoir.

Code_Permanent

CodeCours

Note_Finale

Poif9859-06

420-KED

85

Lef765-06

420-KED

73

Faf231-05

420-KED

77

Poif9859-06

420-KEG

72

Lef765-06

420-KEG

82

Poif9859-06

420-KEF

80

17 Prpar par Saliha Yacoub

(Les codes permanents ne sont pas exacts)


Remarquez dans le tableau prcdent que si lon connait le que code permanent
Poif9859-06 on ne peut pas tre renseign sur sa note finale, il, faudrait connatre en
plus du code permanent, le code cours. De la mme faon, si je connais le code cours
420-KED, je ne peux pas tre renseigne sur la note finale dans le cours correspondant.
Lattribut Note_Finale dpend ET du Code_Pernanent ET du code cours. La place de
lattribut.
Si nous devons placer lattribut Note_Finale dans lentit tudiant (Ou cours), cet
attribut dpendra dUNE PARTIE DE LA CL. Nous ne sommes pas en 2FN.

Troisime forme normale : Et rien que la cl (aucune dpendance


transitive.) (nonc 3)
Une entit ou une relation est en troisime forme normale (3FN) si
c. Elle est dj en 2FN
d. Tous les attributs non cl dpendent uniquement de la cl. Il n y a pas de
dpendance entre deux attributs non cl.
Lentit ETUDIANT suivante, est en 2FN.
Elle est en 1FN, puis que pas de groupe rptitif, et tous les identifiants dpendent de la
cl
Elle est en 2fN, puis que tous les attributs dpendent de la totalit de la cl.
La mme entit nest pas en 3FN Pourquoi?

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse
Code_prog
NomProg

18 Prpar par Saliha Yacoub

La raison pour la quelle cette nest pas en est que lattribut NomProg dpend aussi de
lattribut Code_prog. (le code 420 implique informatique.)
Pour avoir une entit en 3FN, il faut sortir les attributs Code_prog et NomProg de
lentit, les mettre dans une entit part (PROGRAMME) et crer une relation entre
ETUDIANT et PROGRAMME

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse

PROGRAMME
#Code_prog
*description

inscrit

19 Prpar par Saliha Yacoub

contient

Le Modle Relationnel
Introduction :
Le modle relationnel (mis de lavant par Edgar Frank Codd) est le plus implment et le
plus stable des modles actuellement utiliss. Dans ce modle la gestion des donnes est
simplifie grce aux contraintes dintgrit. Le systme de rcupration des donnes
permet lutilisateur de visualiser la base de donnes travers des structures de tables
relationnelles.
Lunit de stockage lmentaire est la table . En gnral, c'est aux tables que les
utilisateurs font rfrence pour accder aux donnes. Une base de donnes est constitue
de plusieurs tables relies entre elles.
Une table est constitue de lignes et de colonnes
Exemple de table
Voici la table Livres qui contient des informations par rapport des livres de notre
bibliothque.
NumeroLivre

TitreLivre

Auteur

Langue

101

Ainsi parlait

Friedrich Nietzsche

Allemand

Aldous Huxley

Anglais

Zarathoustra
102

La paix des
profondeurs

103

Les misrables

Victor Hugo

Franais

104

La libert n'est pas

Pierre Falardeau

Franiais

une marque de
yogourt
Remarquez
1- Chaque colonne dfinit un attribut. Un attribut est appel galement champ de la
table. Les champs servent donner la Dfinition d'une table.
2- Chaque ligne dfinit une instance (ou une occurrence) de la table Livres. Une
ligne reprsente galement un enregistrement d'une table.
3- Une table est donc un ensemble d'enregistrements. Pour dfinir un
enregistrement on utilise des champs ou des attributs.

20 Prpar par Saliha Yacoub

Dans une base de donnes Oracle, on utilise la commande CREATE pour crer une table.
Exemple
CREATE TABLE Livres (NumLivre NUMBER(5), TitreLivre CHAR (20), Auteur
CHAR(20), Langue CHAR (10));
Pour insrer des donnes dans une table, on utilise la commande INSERT
Exemple
INSERT INTO Livres VALUES (101,'SQLPLUS', 'Oracle','Franais');
Pour afficher le contenu d'une table on utilise la commande SELECT
Exemple
SELECT * FROM Livres, permet d'afficher Tous les enregistrement de la table Livres.

Dfinitions
Termes

Dfinitions et reprsentation

Domaine

Ensemble de valeur caractris par un nom. Exemple le


domaine de noms de jeux vido peux tre Jeux {Word of
Warcraft, Starcraft, Vampire, Civilization }
Sexe {F, M}

Relation

Sous-ensemble du produit cartsien dune liste de domaines


caractris par un nom exemple

Schma dune relation

Nom de la relation suivi de la liste des attributs :


Etudiant (Nom, Prenom, Code_permanent, adresse)

Attribut

Sous groupe dinformation lintrieure dune relation


Code_permanent, Nom
Un attribut peut tre considr comme une colonne dune
relation

Valeur dun attribut

La valeur de lattribut en rapport avec le domaine de valeurs.


Exemple valeur de lattribut Nom est Martin

Occurrence

Instance dune entit ou dune relation

Identifiant

Attribut permettant didentifier les occurrences dune entit ou


dune relation dune manire unique

21 Prpar par Saliha Yacoub

Table

Objet dune base de donnes relationnelle. Ensemble de lignes


et de colonnes. (ce concept sera dfini en dtail dans le
chapitre suivant)

Cl primaire

Identifiant dans une table. Attribut permettant didentifier


chaque occurrence dune table de marinire unique. Ou encore
attribut permettant didentifier chaque ligne dune table dune
manire unique.

Cl trangre

Attribut dune table (table A) qui est cl primaire dune table


(table B)

Passage du modle Entit/Association au modle relationnel :


Les rgles qui vont suivre sappliquent au modle Entit/Association du Formalisme
Oracle

Rgle 1 : Entit excluant les entits surtype et sous-type :


Toute entit du modle Entit/Association est traduite par une table dans le modle
relationnel
La cl primaire de cette table est lidentifiant de lentit
Les attributs de la table sont les attributs de lentit.
Exemple
Modle Entit /Association (Oracle)

Modle Relationnel

Lentit EMPLOYE

la table EMPLOYE

EMPLOYE
#empno
*nom
*prenom
oadresse

22 Prpar par Saliha Yacoub

devient

EMPLOYE
#empno
*nom
*prenom
oadresse

Cl Primaire

Rgle 2 : Relation binaire avec participation multiple :


CAS :

0 :N

OU

0 :N

0 :N

1 :N

OU

1 :N

la relation devient t une table

la nouvelle table hrite des cls primaires provenant des tables relies pour
devenir des cls trangres. Ces cls trangres forment galement une cl
primaire compose de la nouvelle table.

Les cls trangres sont auront des valeurs obligatoires (puisquelles forment une
cl primaire compose) et la participation est multiples. (la valeur de la cl
trangre peut revenir plusieurs fois).

Dans le formalisme de MERISE, si la relation est porteuse de proprits alors ses


proprits sont des proprits de la nouvelle table.

Exemple et reprsentation graphique :


Modle E/A

FOURNISSEUR
#NoFournisseur
+AdresseFournisseur

vend

PRODUIT
#NoProduit
+Description

MODLE RELATIONNEL : Nous avons 3 tables.

FOURNISSEUR

VEND

PRODUIT

#NoFournisseur
+AdresseFournisseur

#NoFournisseur
#NoProduit

#NoProduit
+Description

1,n

23 Prpar par Saliha Yacoub

1,n

1 :N

Explications
Selon la rgle 1, les entits sont devenues des tables :
-

la table Fournisseurs, dont la cl primaire est NoFournisseur

la table produit, dont la cl primaire est NoProduit

Selon la rgle 2, nous obtenons la table vend dont la cl primaire est la cl compose
NoFournisseur, NoProduit.
Dans la table Vend, les cls trangres ont une participation obligatoire et multiple.
Obligatoire car ce sont des cls primaires (NOT NULL, non nullit)
Multiple, car un la participation des occurrences des entits (Fournisseurs et Produits)
dans la relation VEND est multiple.
Exemple doccurrences de la table Fournisseurs
NoFournisseur

AdresseFournisseur

F001

10 rue de loracle Montral

F002

45 avenue de la paix Blainville

Exemple doccurrences pour produit


NoProduit

Description

C100

Chaise de bureau

M100

Meuble pour ordinateur

P102
Exemple doccurrences pour VEND
NoProduit

NoFournisseur

C100

F001

M100

F001

P102

F001

C100

F002

M100

F002

24 Prpar par Saliha Yacoub

IMPORTANT :
Dans la table PRODUITS, on ne peut pas trouver la cl primaire qui se
rpete.C100, ne doit se retrouver quune seule fois dans toute la table.
(Dfinition dune cl primaire). Dans la table VEND, cette occurrence de la
cl primaire se rpte pour chaque fournisseur qui vend le produit

Rgle 3 : Relation binaire avec participation multiple dun ct et


unique de lautre ct
Cas

0 :N

0 :1

0 :N

1 :1

1 :N

1 :1

OU

1 :N

0 :1

Exemple et explication
Modle E/A (oracle)
Le modle E/A suivant exprime le fait suivant :
un tudiant effectue 0 N stages (0 :N)
un stage est affect 0 ou 1 tudiant. (0 :1)
Nous avons donc faire un cas de la rgle 3

ETUDIANT
#Code_Permanent
*Nom
*Prenom
oAdresse

STAGE
#Num_Stage
*description
effectue

25 Prpar par Saliha Yacoub

affect

ETUDIANT

STAGE

#Code_Permanent
*Nom
*Prenom
oAdresse

#Num_Stage
*description
+oCode_Permanent

0,1

Cl trangre

Remarque 1
Dans la table STAGE, remarquez que Code_Permanent (cl primaire de la table
tudiant) est devenue une proprit de la table STAGE, cette proprits est appel CL
ETRANGRE.
Remarque 2

Code_Permanent a une valeur optionnelle dans la table STAGE.


Le nombre maximum quune valeur de Code_permanent va se rpter dans la table stage
est 1 (UNE) fois.
Exemple 2

STAGE
#Num_Stage
*description

Le modle E/A ci-contre exprime le fait


suivant :
Une entreprise propose 0 N
stage (o :N)

appartient

un stage appartient 1 et une


seule entreprise. (1 :1)

propose

Nous avons donc faire un cas de la


rgle 3

ENTREPRISE
#Num_Entreprise
*Adresse

26 Prpar par Saliha Yacoub

STAGE
ENTREPRISE
#Num_Entreprise
*Adresse

1,1

#Num_Stage
*description
+*Num_Entreprise

Remarque 1
Dans la table STAGE, remarquez que Num_Entreprise (cl primaire de la table
Entreprise) est devenue une proprit de la table STAGE, cette proprits est appel
CL ETRANGRE.
Remarque 2

Num_Entreprise a une valeur Obligatoire dans la table STAGE.


Le nombre maximum quune valeur de Num_Entreprise va se rpter dans la table stage
est 1 (UNE) fois.
nonc de la rgle 3

La table avec participation unique hrite de la cl primaire provenant de la table


oppose pour devenir une cl trangre. Si la participation est obligatoire (1 :1)
alors la valeur de la cl trangre est obligatoire. Si la relation est avec un
identifiant relatif, alors la cl trangre fait partie de la cl primaire qui devient
alors une cl primaire compose.

Le lien entre les tables pointera sur la table qui a hrit de la cl trangre. Le lien
sera obligatoire si la table qui a hrit de la cl trangre avait une participation
obligatoire la relation et optionnel dans le cas contraire.

Rgle 4 : Relation binaire avec participation un ct et unique des


deux cts
Cas

0 :1

0 :1

0 :N

1 :1

OU

1:

0 :1

1:

1 :1

27 Prpar par Saliha Yacoub

Cas (0:1----1:1)

La table avec la participation obligatoire hrite de la cl primaire provenant de la


table oppose pour devenir une cl trangre avec la participation obligatoire. Si
la relation est avec un identifiant relatif, alors la cl trangre fait partie de la cl
primaire qui devient alors une cl primaire compose.

Le lien entre les tables pointera sur la table qui a hrit de la cl trangre. Le lien
sera obligatoire avec la participation unique.

Exemple
Cas (0:10:1)

Dans ce cas nimporte quelle table peut hriter de la cl primaire de lautre table
pour devenir une cl trangre avec valeur optionnelle. Le choix de la table qui va
hriter de la cl dpendra du systme.

Le lien entre les tables pointera sur la table qui a hrit de la cl trangre. Le lien
sera optionnel avec la participation unique

Exemple
Dans une petite PME, les employs ont droit au maximum 1 stage ltranger.
Un stage ltranger est affect une seule personne. (Certains stages ne sont pas
affects car ils nintressent pas les employs)

EMPLOYE
#empno
*nom
*prenom
oadresse

Solution suggre

28 Prpar par Saliha Yacoub

affect

STAGE_ETRANGER
#noStage
*dateDebut
*dateFin
*Description
*Pays

EMPLOYE

STAGE_ETRANGER

#empno
*nom
*prenom
oadresse
+noStage

#noStage
*dateDebut
*dateFin
*Description
*Pays

0 :1

Dans cette PME, ce qui nous intresse est de savoir pour chaque employ sil a effectu
un stage ltranger. Si noStage dans la table EMPLOYE a une valeur (non Nulle), cela
veut dire que lemploy a eu son stage. Pour avoir les informations du stage, il faut aller
dans la table STAGE_ETRANGER.
Cas (1:1----1:1)

On doit dabord vrifier si lon ne peut pas inclure les deux tables dans une seule,
ce qui est en gnral le cas. Dans ce cas-ci, la cl primaire de la nouvelle table sera
lune ou lautre des cls primaires des deux tables initiales, une cl composes des
deux cls primaires, ou alors une nouvelle cl primaire

Si lon ne peut pas scinder les deux tables en une seule, alors les mmes rgles
cites pour le cas optionnel sappliquent, avec valeur obligatoire.

Exemple

EMPLOYE
#empno
*nom
*prenom
oadresse

29 Prpar par Saliha Yacoub

CONTRAT
#noContrat
*dateDebut
*dateFin

Soit on garde une seule table comme suit et on choisi de garder le empno comme cl
primaire. (on peut galement choisir de garder le noContrat comme cl primaire ou une
composition des deux cl primaires)

EMPLOYE
#empno
*nom
*prenom
oadresse
*noContrat
*dateDebut
*dateFin
Autre solution
Cette solution consiste faire migrer la cl primaire de la table CONTRAT, dans la table
EMPLOYE. Cette Cl aura une valeur unique obligatoire

EMPLOYE
#empno
*nom
*prenom
oadresse
+noContrat

CONTRAT
1 :1

#noContrat
*dateDebut
*dateFin

Remarque : il existe une autre solution. Elle consiste faire migrer la cl primaire de la
table EMPLOYE, dans la table CONTRAR. Cette Cl aura une valeur unique obligatoire

Rgle 5: relation rcursive avec participation multiple.

La relation devient une table de lien avec une cl primaire compos de deux
fois lidentifiant de lentit. les attributs constituant la cl primaire sont
galement qualifis de cl trangres..

Les lient entre les deux tables pointeront sur la nouvelles table. Les liens sont
obligatoires car les cls trangres sont devenues une cl primaire compose.
La participation est multiple

30 Prpar par Saliha Yacoub

Rgle 6: relation rcursive avec participation unique dun ct

Las cl primaire est duplique et devient une cl trangre avec appellation


diffrente de la cl primaire.

Le lien reste rcursif et sera dfini en fonction de la participation de lentit la


relation.

Exemple :
Est responsable

EMPLOYE
#empno
*nom
*prenom
oadresse

A pour responsable

Rsultat

EMPLOYE
#empno
*nom
*prenom
Oadresse
+empnoresponsable

Cl
trangre.

Rgle7: relation entit surtype et sous-type.


Il existe plusieurs solutions qui permettent de passer une telle reprsentation, la plus
simple est la suivante :

Regrouper toutes les proprits (attributs) dans une seule table.

Un nouvel attribut est crer afin didentifier le type doccurrence

Lidentifiant unique du surtype devient la cl primaire de la table. Les attributs


des entits sous-type deviennent les attributs de la table avec valeurs optionnelle.

Lexemple de la page 11 va donner le rsultat suivant :

31 Prpar par Saliha Yacoub

EMPLOYE
#empno
*nom
*prenom
oadresse
TypeEmp
oNoContrat
oTaux_Horraire
oSalaire_Annuel
oEchelon

On obtient une seule table EMPLOYE avec la cl primaire empno


Nous avons ajout un attribut TypeEmp pour identifier le type

demploy.
TypeEmp Peut prendre la valeur 1 sil sagit dun employ permanent
et la valeur 2 sil sagit dun employ contrat.
NoContrat, Taux_Horraire, Salaire_Annuel et Echelon on des valeurs
optionnelles. Si lemploy est permanent alors la valeur de lattribut
Taux_Horraire peut tre NULL (pas zro). Le contrle de ces
rubriques optionnelles peut se faire avec une contrainte CHECK dans
ORACLE

32 Prpar par Saliha Yacoub

Normalisation du modle relationnel


Un modle relationnel issu dun modle Entit/Relation normalis (en 3FN) est aussi en
3FN
Les rgles de normalisation (nonc 1), (nonc 2) (nonc 3)
sappliquent au modle relationnel
Comme la normalisation dune base de donnes est trs importante alors il convient de
rappeler les noncs de normalisation. (1FN,2FN,3FN)
Dfinition : une base de donnes relationnelle est dite normalise, si elle est au moins en
3FN.
nonc 1 :La 1FN : (La cl)
Les relations (les tables) ne doivent pas contenir des groupes de donnes rptitives. Si
tel est le cas, il faut sortir le groupe de donnes et crer une autre entit qui va contenir
ce groupe de donnes.
nonc 2 : La 2FN (Toute la cl)
Une relation (table) est en deuxime forme normale 2FN, si elle est :
a. En 1FN
Tous les attributs de la relation ou de lentit dpendent de toute la cl (identifiant) et
non dune partie de la cl
nonc 3 : La 3FN (Rien que la cl)
Une relation (table)est en troisime forme normale (3FN) si
a. Elle est dj en 2FN
b. Tous les attributs non cl dpendent uniquement de la cl. Il n y a
pas de dpendance entre deux attributs non cl.

33 Prpar par Saliha Yacoub

La forme normale de Boyce-Codd.(BCNF) (nonc 4)


Une relation (table) est en BCNF si
a. Elle est dj en 3FN
b. Les seules dpendances fonctionnelles sont celles dans lesquelles une cl
(entire si compose) dtermine un attribut.
Lorsque la cl primaire est compose, il arrive que certaine partie de la cl
dtermine un attribut non cl. La table peut tre en 2FN, en 3FN mai pas en
BCNF
Exemple1 :
Voici une table employes avec les attributs suivants :

EMPLOYE
#empno(PK)
*nom
*prenom
adresse
NAS

Cette table, bien quelle soit en 3FN nest pas en BCNF puisque le nom et prnom
dpendent aussi du NAS.

34 Prpar par Saliha Yacoub

Exemple2 :
Soit la table suivante : Cette table est bel et bien en 3FN

LocalisationVins
#Cru
#Pays
Region
Qualit

Dans la table LocalisationVin, il ya une cl primaire compose de (Cru et


Pays). Le Cru et le pays dtermine la qualit.
Le Cru et le pays dtermine la rgion.
MAIS, Rgion dtermine Pays, donc il y a un attribut lmentaire qui
dtermine une partie de la cl
On peut dite que la table nest pas en BCNF.
Pour quelle soit en BCNF, il faut
Avoir une table CRUS avec les 3 attributs : cru (cl primaire), Pays, Qualit
Et une table REGIONS avec les attributs rgion (cl primaire), Pays

La forme quatrime forme normale 4FN (nonc 5)


Une table (relation) est en quatrime forme normale si
a. Elle est dj en 3FN
b. Les seules dpendances multivalues lmentaires sont celles dans
lesquelles une cl compose dtermine un attribut.
La quatrime forme est une gnralisation de la FNBC

35 Prpar par Saliha Yacoub

Exemple
Soit la table suivante :
Dans cet exemple on considre quun cours est donn par un seul prof et quun
prof peut donner plus dun cours.
Un tudiant peut suivre plusieurs cours et un cours et suivi par plusieurs
tudiants

ETUDIANT-COURS-PROF
#Code_Permanent
#Code_cours
#numProf

Ce quon veut reprsenter est la relation entre prof, cours et etudiants.


Exemple doccurrences
Code_Permanent
100
100
100
101
100
101
102

Code_cours
Franais 101
Franais 102
Anglais101
Franais102
Anglais102
Franais 101
Franais 101

Num_Prof
50
51
53
50
55
50
50

La table Etudiant-Cours-Prof est en 3FN deux problmes se posent :


1- contient beaucoup de redondances
2- le fait que le code-cours implique le numProf alors elle nest pas en 4FN

36 Prpar par Saliha Yacoub

Ce que nous pouvons faire est la chose suivante :

ETUDIANT-COURS
#Code_Permanent
#Code_cours

COURS-PROF
#Code_cours
numProf (cl trangre)

On peut retrouver facilement avec une jointure dun prof dans un cours donn.
(pas de perte dinformation)
Attention !!!
Si un cours est donn par plusieurs professeurs alors le numProf doit tre une cl
primaire dans la table COURS-PROF. Dans ce cas nous avons une perte
dinformation : On ne peut pas retrouver les tudiants dun prof dans
un cours
Pour pouvoir retrouver les tudiants dun prof dans un cours, il
faudra revenir la premire table qui est :
ETUDIANT-COURS-PROF
#Code_Permanent
#Code_cours
#numProf

37 Prpar par Saliha Yacoub

Sources
Shamkant B. Navath, Evolution of Data Modeling for Databases, communication of
the ACM, 1992
James A.OBrien, Guy Marion et Gilles Saint Amant, Les systmes dinformation de gestion :
La perspective du gestionnaire utilisateur, 1995

Ryan K.Stephens & Ronald R.Plew, Conception de bases de donnes,


ISBN 2-7440-1176-2
Georges Gardarin, Bases de Donnes objet et relationnel, ISBN 2-212-0906-9

38 Prpar par Saliha Yacoub