Règles de normalisation
1
A un instant donné dans une entité, pour un individu, un attribut
ne peut prendre qu’une valeur et non pas un ensemble ou une
liste de valeurs. Si un attribut prend plusieurs valeurs, alors ces
valeurs doivent faire l’objet d’une entité supplémentaire, en
association avec la première.
2
3
4
L’identifiant peut être composé de plusieurs attributs
mais les autres attributs de l’entité doivent dépendre de
l’identifiant en entier (et non pas une partie de cet
identifiant).
5
Quelques anomalies :
• Redondances.
• Difficulté maintenance intégrité.
• Mémoriser adresse fournisseur impossible si pas de pièce fournie. e.g.
• Suppression de toutes les pièces fournies par Karim fait perdre aussi
son adresse.
6
On dit qu'on est passé à la 2e Forme Normale
7
Tous les attributs d’une entité doivent dépendre directement
de son identifiant et d’aucun autre attribut. Si ce n’est pas
le cas, il faut placer l’attribut pathologique dans une entité
séparée, mais en association avec la première.
8
L’entité avions dont les valeurs sont données dans le
tableau 1, n’est pas en troisième forme normale, car la
capacité et le constructeur d’un avion ne dépendent pas du
numéro d’avion mais de son modèle.
9
Enoncé: On a les données suivantes sur des
élèves avec le DFs:
Matricule, Nom, Age, Club, Salle
Matricule → Nom , AGE
Matricule → Club
Club → Salle
a. Que signifie chaque DFs?
b. Mettre ces informations dans un ensemble
de schémas de relations en 3FN
10
Enoncé: En quelle forme normale est la relation
suivante, qui concerne les employés d’une
société implantée sur plusieurs bâtiments?
EMPLOYES (NumE, Nom, Salaire,
Département, Bâtiment)
Sachant qu’un employé travaille dans un
département donné, et qu’aucun
département ne possède des locaux dans
plusieurs bâtiments.
Mettre en 3F le cas échéant.
NB: Déterminer d'abord les DFs
11
Le MCD visait à conceptualiser l’application.
Le MLD vise à traduire le MCD en tables utilisables
par un SGBD.
12
Modèle relationnel
La relation du « nom » Eleve :
Eleve (num : number , nom: string, age: number, adresse :
string)
On appelle N-uplet : les enregistrements en ligne d'une
relation
13
Modèle relationnel
⚫ Domaine : ensemble d’instance d’un type
⚫ Ex : réels, boolean, chaine de caracteres, etc.
⚫ Attribut : colonne d’une relation, associé à un
domaine
⚫ Schéma de relation : nom suivi de la liste des
attributs, chaque attribut étant associé à son domaine
⚫ R(A1 : D1, A2 : D2, …, An : Dn)
⚫ Ex : Film (titre: string, année: number, genre : string)
14
Modèle relationnel
⚫ Clé d’une relation : le + petit sous-ens. des attributs
qui permet d’identifier chq ligne d’une manière unique
⚫ ex : film (titre, année, genre)
⚫ Tuple (n-uplet) : une liste de n valeurs (v1, …vn), où
chaque vi est la valeur d’un attribut Ai du domaine Di
⚫ ex : (‘Cyrano’, 1992, ‘Rappeneau’)
⚫ Base de données : ensemble fini de relations.
15
Règles de passages (1)
Règles générales – Entité :
1. On crée une relation de même nom que l’entité.
2. Chaque propriété de l’entité, y compris l’identifiant,
devient un attribut de la relation.
3. Les attributs de l’identifiant constituent la clé de la
relation.
16
Règles de passages (2)
1. A chaque entité correspond une table.
2. Si la relation est de type 1:1, les entités ont la même
clef.
3. Dans le cas d’une relation 1:n, la clef de l’entité
côté 0,n/1,n migre vers la table côté 0,1/1,1 et devient
une clef étrangère (Foreign Key).
4. Dans le cas d’une association n:m entre une table
A et une table B, une nouvelle table C est créée. Dans C,
les clefs primaires de A et B sont des clefs étrangères.
17
MLD: Schémas relationnels
On peut représenter les tables d’une base de données
relationnelle par un schéma relationnel dans lequel les tables
sont appelées relations et les liens entre les clés étrangères et
leur clé primaire est symbolisé par un connecteur.
18
MLD: Traduction d’un MCD
en un MLDR
Règle 1 : toute entité devient une table dans laquelle les attributs
deviennent les colonnes. L’identifiant de l’entité constitue alors la
clé primaire de la table.
Objet «Entreprise» Table «Entreprise»
Entreprise ENTREPRISE
No_Entreprise NO_ENTREPRISE
Nom NOM
Adresse ADRESSE
Code_postal CODE_POSTAL
Localité LOCALITE
ENTREPRISE(no_entreprise, nom, adresse, code_postal, localite)
20
MLD: Traduction d’un MCD
en un MLDR
Règle 2 : une
association binaire de type 1 : n disparait,
au profit d’une clé étrangère dans la table côté 1.
21
Relation binaire aux cardinalités (x,n) - (x,1)
Auteur Livre
NoAuteur Ecrit NoLivre
(0,n) (1,1)
Nom Nom
22
Relation binaire aux cardinalités (x,n) - (x,1)
23
Soit la portion d'un MCD suivante
On obtient les relations suivantes :
24
25
Les tables
26
Exemple de questions auxquelles il est possible de
répondre :
Quel est le nom du client qui a passé la commande
11 ?
Quels sont les noms des clients qui ont commandé le
1/02/2014 ?
Combien de commandes a passé Elisa Dupuis ?
Quelle est l’adresse du client qui a passé la
commande 423 ?
27
MLD: Traduction d’un MCD
en un MLDR
Règle 3 : une association binaire de type n : m devient une table supplémentaire
28
Relation binaire aux cardinalités (x,n) - (x,n)
29
30
31
MLD: Traduction d’un MCD
en un MLDR
Règle 4 : une association binaire de type 1 : 1 est traduite comme une
association binaire de type 1 : n sauf que la clé étrangère se voit imposer
une contrainte d’unicité en plus d’une éventuelle contrainte de non vacuité
32
Relation binaire aux cardinalités (x,1) - (x,1)
◦ Relation binaire (0,1)-(1,1)
33
Relation binaire aux cardinalités (x,1) - (x,1)
◦ Relation binaire (0,1)-(0,1)
Salariй Entreprise
NoSalariй Assure NoEntreprise
0,1 0,1
Nom Nom
Prйnom Adresse_Siиge
ou
34
Relation binaire aux cardinalités (x,1) - (x,1)
◦ Relation binaire (1,1)-(1,1)
◦ Ou
◦ Ou
◦ Ou
35
MLD: Traduction d’un MCD
en un MLDR
Règle 5 : une association non binaire est traduite par une table
supplémentaire dont la clé primaire est composée d’autant de clés étrangères
que d’entités en association
36
Relation
Enseignant
NoEnseignant Enseigne
Matière
ternaire Nom 1,n 0,n Code_Matière
Prénom Libellé
Date_de_naissance
1,n
Classe
Nom_Classe
Cycle
37
Facturation
Client
Article
NoClient Facture Porter
Obtenir NoArticle
Nom NoFacture 1,n 0,n
Prйnom
1,n 1,1 Quantitй Libellй
Date_Facture
Adresse Prix_Unitaire
Code_Postal
Localitй
38
Geston d’école
Elève
NoMatricule Classe
Fréquenter
Nom 1,n 1,n Nom_Classe
Année_scolaire Cycle
Prénom
Date_naissance
1,n
Matière Enseigner
Code_Matière 0,n
Libellé Année
0,n
Professeur
Code_Prof
Nom
prénom
39
Gestion d’école
Voir le MLD dans la correction du TD
40