Cours base de données
Dr Coulibaly Tiekoura
Année universitaire : 2020/2021
I. Définition
II. Les règles de passage du modèle entité /
association au modèle relationnel.
II.1 Règle de passage d’une entité
II.2 Règle de passage d’une association
II.3 Règle d’optimisation
II.4.1 Règle de passage d’une association 1 à 1
II.4.2 Règle de passage d’une association 1 à n
II.5 Règle de passage d’une association n à n
II.6 Règle de passage d’une association ternaire
II.7 Règle de passage d’une entité faible
2
III. Normalisation
III.1 But et principe
III.2 Dépendance fonctionnelle
III.3 Les formes normales
III.3.1 1ère forme normale
III.3.2 2ème forme normale
III.3.3 3ème forme normale
3
Ilpossède une seule structure qui est la
relation
Une relation est identifié par son nom.
Chaque relation se compose d’un ensemble
de colonnes désignés par les attributs.
Un modèle relationnel est constitué par un
ensemble de relations.
4
5
Le schéma d’une relation est constitué du
nom de la relation, suivi des attributs.
Pour chaque entité du schéma E/A:
On crée une relation de même nom que l’entité.
Chaque propriété de l’entité, y compris
l’identifiant, devient un attribut de la relation.
Les attributs de l’identifiant constituent la clé de
la relation. DEPARTEMENT
Num_Département
Nom_Département
Localisation
DEPARTEMENT(Num_département,nom_département,localisation)
6
Touteclasse d’association est transformée
en relation.
La clé de cette relation est composée de tous
les identifiants des entités participantes.
FILM
FILM ACTEUR
JOUER
Num_Film Num_Acteur
Num_Film
Intitulé
Intitulé Role Nom_Acteur
Adresse
JOUER(Num_film #,Num_Acteur#,Role)
7
Toute association reliée à une entité
avec une cardinalité de type 0,1 ou 1,1
peut être fusionnée avec l’entité la
reliant.
Nous devons déplacer les attributs de
l’association vers ceux de la relation
traduisant l’entité.
8
Soitune association de un à plusieurs ou de
un à un entre A et B. Le passage au modèle
logique suit les règles suivantes :
On crée les relations Ra et Rb correspondant
respectivement aux entités A et B.
L’identifiant de B devient un attribut de Ra.
Une occurrence de A référence l’occurrence
de B qui lui est associée à l’aide d’une clé
étrangère.
Cette référence se fait de manière unique et
suffisante à l’aide de l’identifiant.
9
DEPARTEMENT ENSEIGNANT
ETRE
1:1 CHEF_DE
0:1
Num_département CIN_Enseignant
Nom_département Nom_Enseignant
Localisation Prénom_Enseignant
DEPARTEMENT(Num_département,nom_département,localisation
,CIN_Enseignant#)
ENSEIGNANT(CIN_enseignant,Nom_Enseignant, prénom_Enseignant)
10
DEPARTEMENT EMPLOYE
TRAVAILLER
1:n DANS
1:1
Num_Département CIN Employé
Nom_Département Nom Employé
Localisation Prénom Employé
Adresse Employé
DEPARTEMENT(Num_Département,Nom_Département,Localisation)
EMPLOYE(CIN_Employé,Nom_Employé,Prénom_Employé,
Adresse_Employé,Num_département#)
11
ENSEIGNANT ETUDIANT
1:n S’INSCRIRE 1:n
CIN Enseignant CIN Etudiant
Nom Enseignant Nom Etudiant
Prénom Enseignant ANNEE Prénom Etudiant
Adresse Enseignant Adresse Etudiant
ENSEIGNANT(CIN_Enseignant,Nom_Enseignant,Prénom_Enseignant,
Adresse_Enseignant)
ETUDIANT(CIN_Etudiant,Nom_Etudiant,Prénom_Etudiant,
Adresse_Etudiant)
S’INSCRIRE(CIN_Enseignant#, CIN_Etudiant #, Année)
12
ENSEIGNANT ETUDIANT
1:n S’INSCRIRE 1:n
CIN Enseignant CIN Etudiant
Nom Enseignant Nom Etudiant
Prénom Enseignant Prénom Etudiant
Adresse Enseignant 1:n Adresse Etudiant
MATIERE
Num Matière
Nom Matière
Coefficient Matière
ENSEIGNANT(CIN_Enseignant,Nom_Enseignant,Prénom_Enseignant,
Adresse_Enseignant)
ETUDIANT(CIN_Etudiant,Nom_Etudiant,Prénom_Etudiant,
Adresse_Etudiant)
MATIERE (Num_Matière, Nom_Matière, Coefficient_Matière)
S’INSCRIRE(CIN_Enseignant#, CIN_Etudiant #, Num_Matière#, Année)
13
BATIMENT SALLE
0:n LOCALISER 1:1
Numéro_Batiment Numéro_Salle
Adresse Capacité
BATIMENT ( Numéro_Batiment, adresse )
SALLE ( Numéro_Batiment#,Numéro_Salle, capacité )
14
15
Ils’agit d’appliquer des règles dans le but
d’éviter toute sorte d’anomalie dans le
modèle relationnel et par conséquent la base
de données.
Ses règles permettent d’avoir :
Des requêtes plus simple à écrire
Des données plus facile à accéder
Une meilleure intégrité des données
Une diminution des erreurs lors de l’insertion ou
la suppression des données
Une utilisation optimale des ressources
16
Une dépendance fonctionnelle signifie si l’on
connaît la valeur d’un attribut, on peut
toujours déterminer la valeur d’un autre
attribut.
La notation utilisée dans la théorie
relationnelle est une flèche entre les deux
attributs.
Exemple : AB signifie « A détermine B ». Si
l’on connait votre numéro d’employé, on
peut déterminer votre salaire.
17
Normaliserune base de données consiste à
appliquer des règles regroupées sous la
dénomination de « Formes normales »
Une forme normale est une méthode de
classification des relations qui se reposent
sur des dépendances fonctionnelles.
18
Une relation est dite en 1ère forme normale si
et seulement si tout attribut contient une
valeur atomique. (non multiple, non
composé)
Exemple :
Médicament(code,description,date_fabricati
on,date_expriration)
Code description
Code date_fabrication
Code date_expiration
Le relation médicament est bien en 1ère FN
19
Père(cin, nom, âge, fils)
Cin nom
Cin âge
Cin fils
Solution : éclater la relation Père en :
Père (cin_père,nom,âge)
Fils (cin_fils,cin_père#)
20
Enseignant(code,nom,matières_enseignées)
Code nom
Code matières_enseignées
Solution 1:
Matière(code_matière, nom_matière)
Enseignant(code,nom,code_matière#)
Solution 2:
Matière(code_matière, nom_matière)
Enseignant(code_enseignant,nom)
Matières_enseignées(code_matière#,code_enseignant#)
21
Une relation est en 2ème forme normale si et
seulement si:
Elle est en 1ère forme normale
Lorsque tous ses attributs non clés sont
totalement dépendantes fonctionnellement
de la totalité de la clé primaire.
R (a,b,c,d,e)
A,b c
A,b d
A,b e
22
Touterelation ayant une clé simple et elle
est en 1ère forme normale, elle est
systématiquement en 2ème forme normale.
Une dépendance fonctionnelle est dite
partielle si une colonne ne faisant pas partie
de la clé peut être déterminée par l’un des
constituants de la clé.
23
Soigner
(code_médecin, code_malade,
nom_médecin, nom_malade, date)
code_médecin, code_malade nom_médecin
code_médecin, code_malade nom_malade
Solution
Médecin (code_médecin, nom_médecin)
Malade (code_malade, nom_malade)
Soigner ( code_malade# , code_médecin#, date)
24
Une relation est en 3 forme normale si et
seulement si:
Elle est déjà en 2ème forme normale
Iln’existe aucun attribut non clé qui dépend
fonctionnellement d’un autre attribut non
clé.
25
Voiture ( Numéro, couleur, modèle, marque)
Couleur modèle
Couleur marque
Modèle marque
Solution :
Type_voiture( Modèle, marque)
Voiture (Numéro, couleur, Modèle#)
26
Salarié
(num_salarié, nom,
date_naissance,num_service,nom_service)
num_servicenom_service (anomalie)
Solution
Salarié (Num_salarié, nom, date_naissance,
num_service#)
Service (Num_service, nom_service)
27