Vous êtes sur la page 1sur 51

Fondements des bases de données

Chapitre 3 :
Modèle Relationnel

Walid.hsairi@isima.u-monastir.com
Objectifs du cours

› Découvrir les notions de base du modèle relationnel

› Découvrir les notions de clé primaire et clé étrangère

› Les contraintes d’intégrité et de modélisation

› Découvrir les règles de passage du modèle ER au modèle

relationnel
2
Modélisation d’une BD
4 Base de Données
1
Monde réel
Personne Voiture
Xavier Ford Mustang
Antoine Mazda 3
Christophe Toyota Venza

Concepteur

2 Les tables:
- Voiture
Personne possède Voiture
- Personne 3
Schéma logique
Schéma conceptuel 3
Notions de base

4
Le modèle relationnel
› Le modèle relationnel a été proposé par Codd en 1970.

› Aujourd'hui utilisé par beaucoup de SGBD commerciaux


(Oracle, MySQL, SQL Server, Postgres SQL, Access …)

› Il est souvent considéré comme le plus simple et le plus


élégant des modèles.
› Sa simplicité découle d’une vision tabulaire des données (Tables).

5
Notions de base

› Entités  Tables

› Attributs  Colonnes

› Instance  Enregistrement

› Relations  Clés étrangères

6
Exemple: Entité / Table Enseignant

Nom de Noms des attributs / des colonnes


l’entité / table

Enseignant

MATRICULE NOM GRADE CODE_COUR ANNEE_EMBAUC


S HE
Clé
Primaire 25410 Alexandre Prof_adjoint IFT1144 2005
25145 Marianne Prof_adjoint IFT1945 2009
Enregistrement
69542 Justin Prof_titulaire IFT1800 2005
54120 Claude Prof_titulaire IFT1986 2011
84521 Alphonse Prof_agrégé IFT1152 1998
7
Restrictions de dénomination chez Oracle
› Les noms de table et de colonne :
– Doivent commencer par une lettre;
– Peuvent contenir jusqu'à 30 caractères alphanumériques;
– Ne peuvent pas contenir d'espaces ni de caractères spéciaux tels que "!",
mais "$", "#" et "_" sont autorisés;
– Ne peuvent pas être des "mots réservés" dans OracleDB ou SQL

› Les noms de table doivent être uniques au sein d'un compte


utilisateur dans la base de données Oracle

› Les noms de colonne doivent être uniques au sein d'une table


8
Diagramme de type table
› Constitut une documentation supplémentaire
› Utilisé pour expliquer plus en détail les clés et les colonnes
des tables d’une bases de données physiques

Table Enseignant
Type de clé Optionnalité Nom de la colonne
pk * Matricule
* Nom
* Grade
* Code_cours
* Année_embauche

9
Schéma relationnel

› Une BD = ensemble de tables

› Schéma relationnel d'une BD = un ensemble des tables qui

constituent la base de données

› Schéma d'une table = un ensemble d'attributs

Ti = (A1, A2, …, Ay)


10
Les Clés Primaires et les
Clés Étrangères

11
Identificateurs Uniques Candidats
› Un Identificateur Unique est un attribut ou un ensemble
d’attribut qui possèdent une valeur unique pour chaque
instance
› Une entité peut avoir plusieurs UID candidats
› Les attributs des UID candidats doivent toujours avoir une
valeur connue (non nulle).
Employé (N°Sécu, Nom, Prenom, DateNaissance, Matricule)
Voiture (N°Immatriculation, Marque, Modèle, Couleur, N°Série)
Personne (CIN, Nom, Prénom, Age, Fonction, N°SS, Email, 12
Identificateurs Uniques Candidats
- Utilité:
• Mécanisme d’adressage au niveau des enregistrements d’une table.

• Exemples:

Select * From Employé WHERE N°Sécu = 25032145;


Produit un seul
enregistrement
Select * From Employé WHERE Matricule = 1234;

Select * From Employé WHERE Prenom = 'Mohamed';


Produit un nombre imprévisible
d’enregistrements 13
Clé primaire
› Un seul UID candidat peut être choisi comme UID principal

› Les autres UID candidats seront appelés "UID secondaires"

› L’UID principal devient une clé primaire lorsque le modèle


entité-relation est transformé en modèle relationnel.

› La clé primaire est une colonne ou un ensemble de colonnes


qui identifie de manière unique chaque ligne d'une table.

› Elle ne peut pas contenir de valeurs NULL


14
Clé primaire
› Permet de garantir l’intégrité des données.

› Une clé choisie parmi l’ensemble des UIDs candidats

› Le choix est arbitraire

› Peux se faire en choisissant la clé primaire la plus simple.

› Exemple:
– UID candidats MATRICULE, NOM_COURS, CODE_COURS
– Clé primaire MATRICULE.
15
Clé primaire simple
› Toute table possède une clé primaire
– il ne peut y avoir deux enregistrements identiques dans la même
table
ID_EMPLOYÉE NOM PRÉNOM … ID_DÉPARTEMEN
T
100 Steven King … 90
101 Neena NULL … 90
201 Rick Bel … 90
205 NULL Higgins … 10
300 Bill Steveward … 110

Clé primaire simple : à colonne unique


Valeurs uniques, non NULL
16
Clé primaire composite
› Toute table possède une clé primaire
– il ne peut y avoir deux enregistrements identiques dans la même
table
NUMÉRO_BANQU NUMÉRO_COMPT SOLDE DATE_OUVERTUR
E E E
104 71432 12,000 29-Oct-90
104 96545 18,000 12-Sep-85
105 78967 20,000 NULL
103 96545 60,000 04-Aug-91
105 72345 10,000 03-Jan-99

Clé primaire "composite" : composée de plusieurs colonnes


Valeurs composés uniques, non NULL 17
Clé étrangère
› Les relations d'un modèle Entité-Relation sont transformés en
clés étrangères de tables dans le modèle relationnel

› Une clé étrangère est une colonne ou une combinaison de


colonnes dans une table qui fait référence à une clé primaire
dans une autre table (ou dans la même table).

› Une clé étrangère peut avoir des valeurs non uniques et


peut avoir des valeurs NULLs (Optionnelle).
18
Clé étrangère
› Exemple 1 :

PERSONNE VOITURE
Type de Optionnalité Colonne Type de clé Optionnalit Colonne
clé é
pk * CIN pk * Immatriculation
* Nom * Marque
* Prénom * Modèle
o Coleur
fk * PER_CIN19
Clé étrangère
› Exemple 1 :

PERSONNE
CIN NOM PRENOM
Optionnalité Obligatoire
08564321 Ben Salem Mohamed Clé étrangère Obligatoire
07345672 Michirghi Soufien Pas de valeurs NULL
08654732 Loumi Ahmed VOITURE
IMMATRICU MARQUE MODÈL COULEU PER_CIN
08234445 Ben Nsir Adel
L E R
123 TN 2034 Renault Clio Rouge 08564321
Optionnalité Facultative 128 TN 1324 Kia Rio Noir 07345672
121 TN 4532 Volkswagen Polo 8 NULL 20
08564321
Clé étrangère
› Exemple 2 :

ETUDIANT COURS
Type de Optionnalité Colonne Type de clé Optionnalit Colonne
clé é
pk * Num pk * Code
* Nom * Intitulé
* Prénom * Coéfficient
SUIVRE
* Charge
Type de clé Optionnalit Colonne
é
pk fk * ETU_NUM
pk fk * COU_Code
Clé étrangère
› Exemple 2 :

ETUDIANT COURS
NUM NOM PRENOM CODE INTITULÉ COÉF CHARG
101 Stephane Renouard F E

136 Alain Bouchard BD Base de données 4 30

253 André Kodys SE Système d’exploitation 3 27

267 Romain Endelin JEE Java Entreprise Edition 4 45

Optionnalité Obligatoire
Optionnalité Obligatoire SUIVRE
ETU_NUM COU_CODE
253 SE
136 BD
253 BD
22
101 SE
Les contraintes dans le
modèle relationnelle

23
Contrainte d’intégrité clé primaire
› Les valeurs d’une clé primaire simple ou composite sont
uniques.

› Une clé primaire n’admet pas de valeurs NULL.

24
Contrainte d’intégrité référentielle (Clé étrangère)
› La base de données ne doit pas contenir une valeur de clé
étrangère non « unifiable ».

› Conséquence:
– Il faut créer et détruire les enregistrements dans un ordre particulier.

25
Contraintes d’intégrité du monde réel
› À tout instant, la base de données représente une partie du
monde réel à travers un ensemble de valeurs.

› Certaines valeurs n’ont pas de sens si présentent pour des


champs.
– Exemple: âge d’une personne = -20

› Solution: intégration de règles d’intégrité pour informer le SGBD


de certaines contraintes du monde réel sur les valeurs de la base
de données. 26
Contraintes d’intégrité du monde réel

Exemples :

– Chaque valeur du champ MATRICULE doit être numérique.

– Valeur de GRADE doit appartenir à l’ensemble {Prof_adjoint, Prof_agrégé,

Prof_titulaire}.

– Coéfficient_Cours > 0.

– CODE_COURS doit appartenir au domaine {IFT1144, IFT1945, IFT1800,

IFT1986, IFT1152, …} 27
Contraintes de modélisation relationnelles
› Les notions d'attribut multivalué ou composé n'existent pas
dans le modèle relationnel. Il faut donc les modéliser
autrement.
› attributs: simples et monovalués : structure plate régulière
x x x
tuple x x x x y x x x
x x
x
w w w w
w
w

x: une et une seule valeur atomique par attribut INTERDIT 28


Contraintes de modélisation relationnelles
› Exemple d’une Table : Pièce (Pno, Pnom, Couleur, Poids)
 Structure plate

PIÈCE
Pno Pnom Couleur Poids
P1 Boulon Blanc 5
P2 Vis Noir 2
P3 Bouchon Rouge 7
P4 Clé Vert 25
P5 Volant Jaune 15

29
Contraintes de modélisation relationnelles
› Il n’existe pas deux enregistrements identiques

› L’ordre des colonnes n’est pas important.

› L’ordre des lignes n’est pas important.

› Chaque valeur de la « clé primaire » est différente

› Chaque valeur de la « clé primaire » identifie de manière


unique un enregistrement
30
Contraintes de modélisation : Valeurs NULLs
› Un attribut peut ne pas être valué pour un enregistrement : on
dit alors qu'il a une valeur NULL
– exemple: on ne connaît ni l'âge d'Annie ni le prénom de Duval

› La clé primaire n’accepte pas de valeurs NULLs et doit


toujours être valuées.
ID NOM PRÉNOM AGE
136 Dupont Jean 19
253 Aubry Annie NULL
101 Duval NULL 21
147 Dupont Marc 21
Passage du modèle Entité-
Relation au modèle relationnel

32
Passage du Modèle E-R au Modèle Relationnel

33
Passage du Modèle E-R au Modèle Relationnel

34
Passage du Modèle E-A au Modèle Relationnel
4 Base de Données
1
Monde réel
Personne Voiture
Xavier Ford Mustang
Antoine Mazda 3
Christophe Toyota Venza

Concepteur

2On passe du modèle conceptuel au modèle Les tables:


logique par un
ensemble de règles de - Voiture
passage
Personne possède Voiture
- Personne 3
Schéma logique
Schéma conceptuel 35
Règles de passage
› Règle 1 : Toute Entité devient une table
– Les attributs traduisent les propriétés de l’entité
– la clé primaire traduit l’identifiant de l’entité.

Employé (Num_Mat, Nom, Prénom, Date_Emb, Salaire)

36
Règles de passage
› Règle 2 : Une relation de dimension 2 avec cardinalité
maximale 1,N se réécrit en:
- On porte la clé primaire de la table du coté unidimensionnelle
comme clé étrangère dans la table du côté multidimensionnel.
- L’attribut de la relation suit le même sens de la clé étrangère

1
N
Optionnalité Obligatoire
Clé étrangère Obligatoire
Pas de valeurs NULL
Employé (Num_Mat, Nom, Prénom, Date_Emb,
Salaire, Code_serv#, Date_affectation)
Service (Code_serv, Nom)
37
Discussion de la règle 2
Pourquoi il faut porter la clé étrangère dans la relation Employé
et non pas dans la relation Service?
– Supposons que, par erreur, nous portions Num_Mat dans la relation
Service comme clé étrangère : alors cet attribut aurait comme valeurs
tous les matricules des employés de ce service.

– Par contre, dans la solution correcte ci-dessus, Code_serv ne peut


posséder qu'une valeur, celle du service dans lequel travaille cet
employé (il n'y en a qu'un).
38
Règles de passage
› Règle 3 : Une relation de dimension 2 avec cardinalité
maximale 1,N barrée se réécrit en:
- On porte la clé primaire de la table du coté unidimensionnelle
comme clé étrangère dans la table du côté multidimensionnel.
- La nouvelle clé étrangère fera partie de la clé primaire de l’entité
faible

N
1
Optionnalité Obligatoire
Clé étrangère Obligaoire
Pas de valeurs NULL

COMPTE (Num_Compte, #Num_Banque, Solde, Date_Ouverture)


BANQUE (Num_Banque, Nom_Banque, Adesse_Banque)
39
Règles de passage

› Règle 4 : Une relation de dimension 2 avec cardinalité

maximale N,N se réécrit en :


- Créant une table particulière qui représente la relation
- La nouvelle table portera le nom de la relation
- La nouvelle table contient les clés primaires des deux entités
associées.
- Ces attributs constituent ensemble la clé primaire de cette nouvelle
table.
- Ils sont individuellement des clés étrangères.
- Ajoutant le ou les éventuels attributs de la relation dans cette table.
40
Règles de passage
› Exemple d’utilisation de la Règle 4

Client (Code_Clt, Nom, Adresse)


Produit (Référence, Désignation, Prix)
Commander(Code_Clt#, Référence#, Quantité) 41
Règles de passage
› Règle 5 : Une association de dimension 2 avec cardinalité
maximale 1,1 (optionalité différente des deux cotés) :
– La clé étrangère est créé du coté de la table dont l’optionnalité est
obligatoire (réduire les valeurs NULL)
– Une clé unique est également créée pour la colonne clé étrangère

Optionnalité Obligatoire
Clé étrangère Obligatoire
Pas de valeurs NULL 42
Règles de passage
› Règle 5 : Une association de dimension 2 avec cardinalité
maximale 1,1 (même optionnalité des deux cotés) :
– Si l’optionnalité est la même dans les deux sens (2 obligatoires ou 2
optionnels) La clé étrangère est créé dans les deux sens
– Des clés uniques sont également créés pour les colonnes des clés
étrangères

Optionnalité Obligatoire
Optionnalité Obligatoire Clé étrangère Obligatoire
Clé étrangère Obligatoire Pas de valeurs NULL
Pas de valeurs NULL
Règles de passage
› Règle 5 : Une association de dimension 2 avec cardinalité
maximale 1,1 (même optionnalité des deux cotés) :
– Si l’optionnalité est la même dans les deux sens (2 obligatoires ou 2
optionnels) La clé étrangère est créé dans les deux sens
– Des clés uniques sont également créés pour les colonnes des clés
étrangères

Optionnalité Facultatif Optionnalité Facultatif


Clé étrangère facultative Clé étrangère facultative
Valeurs NULL possibles Valeurs NULL possibles
Règles de passage: Association récursive un à un

› Ce type d’association se traduit par:


– L’ajout d’une clé étrangère dans la table vers la clé primaire de la
même table
– Une contrainte clé unique est ajoutée pour la clé étrangère
– Si l’optionnalité est obligatoire des deux cotés, les valeurs de la
clé étrangère sont obligatoire (Non-NULL)

45
Règles de passage: Association récursive un à
plusieurs
› Ce type d’association se traduit par un ajout d’une clé étrangère
vers la clé primaire de la même table
› La clé étrangère fait référence à la clé primaire d’une instance du
coté d’optionnalité Facultative (CIN du chef dans ce cas)

46
Règles de passage: Association récursive
plusieurs à plusieurs
› La relation devient une table

› Les identificateurs des participants deviennent des clés


étrangères dans la nouvelle table et constituent ensemble
sa clé primaire

47
Exemple :
Conception d’un schéma relationnel
› Convertir le modèle ER suivant en modèle relationnel

48
Exemple :
Conception d’un schéma relationnel
› Solution

49
Exercice
› Convertir le modèle ER suivant en modèle relationnel

50
Exercice
› Convertir le modèle ER suivant en modèle relationnel

51

Vous aimerez peut-être aussi