Vous êtes sur la page 1sur 12

Modélisation de données

• On peut créer un modèle relationnel des


Modélisation de données données de deux manières:
(modèle relationnel) 1. Modèle entité-relation et traduction du
modèle entité-relation en modèle relationnel
2. Produit directement un modèle relationnel qui
est ensuite raffinné pour s’assurer de sa
qualité
• Dans cette partie, on utilisera la deuxième

2001/02/01 1 2001/02/01 2

Normalisation des données Modèle entité-relation


• Permet produire un modèle relationnel de • Modèle abstrait (conceptuel)
qualité • Peut être traduit en un
– Sans redondance de données – Modèle relationnel
– Modèle objet
– Base de données facile à mettre à jour et à
– Modèle hiérarchique, réseau, XML, etc
interroger
• Les algorithmes de traduction du modèle entité-
relation en modèle relationnel produise
généralement un modèle relationnel normalisé

2001/02/01 3 2001/02/01 4

Sources pour l’identification des


Identifier les entités
entités
• une relation est un objet d’intérêt pour l’utilisateur • texte de l’étude de faisabilité
du système
• une relation peut représenter un objet physique ou
• diagramme des fonctions
virtuel (artificiel) du monde • rapport ou autre document que l’on désire
• critères de pertinence informatiser
– la relation a-t-elle une valeur pour le processus
d’affaires? • procédures
– est-elle référencée par une fonction de maj et une
fonction d’interrogation?
– y a-t-il plusieurs instances de l’entité?

2001/02/01 5 2001/02/01 6

1
La modélisation dans le Processus de modélisation
processus de développement 1
1 Identifier
Étude de fonctions et
entités
modèle
faisabilité
d'un monde
modèle "idéal"
de données liste de fonctions 2
optimisation de
fonctions 2 complet liste d'entités Élaborer
Analyse modèle la performance
données
fonctionnelle logique

modèle logique modèle logique 3


ébauche du de données modèle physique
3 des données Élaborer de données
modèle diagramme des Réalisation modèle
de données fonctions physique

2001/02/01 7 2001/02/01 8

Modélisation de données et Exemple d’identification des


modélisation des fonctions entités
• le modèle de données et le diagramme des • “On désire développer un système pour gérer les
inscriptions aux cours dans une université. Les
fonctions se développent en parallèle cours offerts sont décrits dans l’annuaire de
– l’identification d’une relation entraîne l’université. On désire affecter les cours selon les
l’identification de fonctions (maj, interrogation) disponibilités des professeurs, leur compétence et
– l’identification d’une fonction entraîne l’accessibilité des cours par session. Un étudiant
l’identification de relations s’inscrit à un groupe d’un cours pour une session
donnée s’il a complété tous ses préalables. On
• choisir l’approche la plus naturelle selon le désire également y consigner la note d’un
domaine d’application étudiant.”

2001/02/01 9 2001/02/01 10

Exemple d’élicitation de la liste


Exemple candidats d’entité des entités
• inscription
• “On désire développer un système pour gérer les – oui (elle a une valeur pour le processus d’affaires)
inscriptions aux cours dans une université. Les • cours
cours offerts sont décrits dans l’annuaire de – oui (valeur, idem)
l’université. On désire affecter les cours selon les
disponibilités des professeurs, leur compétence et • université
l’accessibilité des cours par session. Un étudiant – non
s’inscrit à un groupe d’un cours pour une session – aucune valeur;
donnée s’il a complété tous ses préalables. On – le système s’applique toujours à la même université;
désire également y consigner la note d’un – si on gérait les cours pour un réseau d’université, ou
étudiant.” pour des programmes multi-universitaires, l’entité
université serait alors pertinente)

2001/02/01 11 2001/02/01 12

2
Exemple d’élicitation de la liste Exemple d’élicitation de la liste
des entités des entités
• annuaire • accessibilité
– oui (il a une valeur, il contient la liste des cours) – oui (valeur pour gérer l’affectation des cours)
• professeur • session
– oui (valeur) – non; pas nécessaire de gérer les sessions; il s’agit plutôt
• disponibilités des professeurs d’un attribut de plusieurs entités
– c’est un attribut de professeur; il a une valeur pour • étudiant
gérer l’affectation des cours – oui (valeur)
• compétence • note
– c’est un attribut de professeur; il a une valeur pour – oui (valeur)
gérer l’affectation des cours

2001/02/01 13 2001/02/01 14

Exemple d’élicitation de la liste Représentation graphique


cours accessibilité

des entités
• groupe
– oui (valeur) groupe professeur

• préalables
– non (considérons le comme un attribut de note

cours)

inscription
etudiant annuaire

2001/02/01 15 2001/02/01 16

Définition des attributs des Exemple d’identification des


entités attributs
• pour chaque attribut, il faut • inscription(sigle, session, groupe, matricule)
– nom • cours(sigle, titre, préalables)
– type • annuaire
– contraintes d’intégrité – c’est un ensemble de cours, donc déjà traité par
l’entité cours; on élimine cette entité
• pour l’instant, on se concentre sur le nom
• professeur(nom, matricule, salaire,
• représentation textuelle des attributs d’une
entité disponibilités, compétences)
– entité(attribut1, ..., attributn)

2001/02/01 17 2001/02/01 18

3
Exemple d’identification des Exemple d’identification des
attributs attributs
• accessibilité(sigle, session) • note (sigle, session, groupe, matricule, note)
• étudiant(matricule, nom, coteZ) • on peut combiner l’entité note avec
• groupeCours(sigle, session, groupe, inscription, car tous les attributs
matricule) d’inscription sont inclus dans note
– matricule du prof qui enseigne le cours • inscription(sigle, session, groupe,
matricule,note)

2001/02/01 19 2001/02/01 20

Le modèle logique de gestion des


Normalisation des entités
cours avant normalisation
cours accessibilité
sigle
titre
préalables
sigle
session • la normalisation des entités permet
d’obtenir un schéma de BD relationnelle de
groupeCours professeur bonne qualité
sigle matricule
session
groupe
matricule
nom
salaire
compétences
• la normalisation
disponibilités Clé étrangère
– minimise la redondance des données
– facilite la mise à jour des données
inscription
sigle etudiant
– facilite l’interrogation des données
session
matricule matricule
groupe nom
note coteZ

2001/02/01 21 2001/02/01 22

Formes normales Définition de 1FN


• une forme normale dénote un niveau de • Une relation E est en 1FN (première forme
normalisation pour une entité
normale) ssi tous les attributs de E sont
• il existe plusieurs formes normales
scalaires
– 1FN, 2FN, 3FN, BCNF, 4FN, 5FN
• on a – attribut scalaire : attribut dont le type est
– 1FN élémentaire (char, varchar, numeric, etc)
– BCNF ⇒ 3FN ⇒ 2FN – attribut vectoriel : ensemble, liste (c-à-d une
– 5FN⇒ 4FN structure comportant des répétitions)
• la plus courante est la 3FN
• les deux premières (1FN et 2FN) sont à éviter
2001/02/01 23 2001/02/01 24

4
Exemples et contre-exemples de
Normalisation en 1FN
1FN
• les relations groupeCours, inscription, • si une relation E1 n’est pas en 1FN, on la
étudiant, et accessibilité sont en 1FN normalise en créant une nouvelle relation E2 pour
• la relation cours n’est pas en 1FN, car chaque attribut vectoriel
l’attribut préalables est un ensemble de • les attributs de E2 sont :
sigles – la clé primaire de E1
• la relation professeur n’est pas en 1FN, car – les attributs des éléments de la structure vectorielle
les attributs compétences et disponibilités • on enlève de la relation E1 les attributs vectoriel
sont des ensembles

2001/02/01 25 2001/02/01 26

Normalisation en 1FN de
Normalisation en 1FN de cours professeur
professeur
cours matricule salaire nom disponibilités compétences
sigle titre A01 IFT286
1 35 000 $ xyz
IFT286 Lab. de BD E02 IFT339
2 25 000 $ abc H01 IFT178
IFT486 BD

cours
sigle titre préalables
IFT286 Lab. de BD IFT178
IFT286
IFT486 BD
IFT339
disponibilités professeur compétences
préalablesCours matricule session matricule salaire nom matricule sigle
sigle préalables 1 A01 1 35 000 $ xyz 1 IFT286
IFT286 IFT178 1 E02 2 25 000 $ abc 1 IFT339
IFT486 IFT286 2 H01 2 IFT178
IFT486 IFT339

2001/02/01 27 2001/02/01 28

Le modèle logique de cours après


Pourquoi normaliser en 1FN?
normalisation en 1FN
prealableCours cours accessibilité
sigle
siglePrealable
sigle
titre
sigle
session
• parce que le modèle relationnel ne permet
competence
pas de stocker une structure vectorielle dans
groupeCours
professeur
sigle
matricule un attribut d’une table
sigle
session
groupe
matricule
salaire • d’autres modèles permettent les répétitions
matricule nom

disponibilite – modèle relationnel étendu ou relationnel objet


matricule
session (SQL3)
inscription – modèle orienté objets
sigle etudiant
session
matricule matricule
groupe coteZ
note nom

2001/02/01 29 2001/02/01 30

5
Que représente une dépendance
Dépendance fonctionnelle
fonctionnelle?
• les définitions de 2FN, 3FN, BCNF reposent sur la • c’est une fonction, donc elle associe à une liste de valeurs
notion de dépendance fonctionnelle des attributs A1, ..., An une et une seule valeur dans An+1
• une dépendance fonctionnelle est une fonction • exemple
entre des listes d’attributs – dans une université, étant donné le matricule d’un étudiant, on peut
donner son nom
• on dénote une dépendance fonctionnelle comme – il existe donc une dépendance fonctionnelle entre matricule et nom
suit :
(A1, ..., An) An+1 matricule nom
– l’inverse n’est pas vrai : étant donné un nom, on ne peut
on dit que déterminer le matricule d’un étudiant, car il peut y avoir plusieurs
matricules, puisque plusieurs étudiants peuvent avoir le même nom
An+1 dépend de A1, ..., An

2001/02/01 31 2001/02/01 32

Que représente une dépendance Dépendance fonctionnelle


fonctionnelle? minimale
• attention! • si
la dépendance matricule nom (A1, ..., An) B
ne signifie pas que le nom associé à un matricule ne
alors on a aussi
change jamais; le nom peut changer, mais, en tout temps,
on peut déterminer le nom d’un étudiant à partir de son (A1, ..., An, An+1) B
matricule • pour les fins de normalisation, on considère
• cela ne signifie pas non plus que si on a deux matricules
différents, alors leurs noms associés doivent être différents
seulement les dépendances qui sont
• cela signifie que deux étudiants ne peuvent avoir le même minimales selon la liste de gauche
matricule

2001/02/01 33 2001/02/01 34

Quelques lois sur les


Dépendance fonctionnelle et clé dépendances fonctionnelles
candidate
• s’il existe une dépendance fonctionnelle
minimale entre (A1, ..., An) et tous les autres
attributs de la relation, alors ont peut
conclure que (A1, ..., An) est une clé
candidate
• une dépendance fonctionnelle sera donc
traduite en une contrainte primary key
ou unique
2001/02/01 35 2001/02/01 36

6
Comment déterminer les
Représentation graphique
dépendances fonctionnelles?
• les dépendances fonctionnelles sont des • sigle titre
contraintes du domaine d’application
• on les détermine à partir de notre connaissance des
sigle titre
faits (règles, conditions, etc) du domaine
d’application
• on peut déterminer s’il y a une dépendance • (sigle,session,groupe) matricule
fonctionnelle (A1, ..., An) An+1 en répondant à la
question suivante:
– étant donné une liste de valeurs pour A1, ..., An , peut- sigle session groupe matricule
on toujours associer une et une seule valeur pour An+1?

2001/02/01 37 2001/02/01 38

Exercice Définition de 2FN


• identifiez les dépendances fonctionnelles • une relation E est en deuxième forme
entre les attributs suivants normale ssi tous les attributs non premiers
– sigle, titre, matricule, nom, session, groupe, de E sont en dépendance fonctionnelle
note, salaire, coteZ complète de chaque clé candidate de E
– attribut premier : attribut d’une clé candidate
– dépendance fonctionnelle complète : l’attribut
dépend de toute la clé (c-à-d il n’existe pas de
dépendance fonctionnelle entre une partie d’une
clé candidate et un attribut non premier)

2001/02/01 39 2001/02/01 40

Modèle logique de cours Exemples de 2FN


prealableCours cours accessibilité
sigle sigle sigle
siglePrealable titre session
• les relations suivantes sont en 2FN
competence

groupeCours
sigle
matricule
– cours – professeur
sigle
professeur
– prealablesCours – competence
session matricule
groupe
matricule
salaire
nom
– accessibilité – disponibilite
disponibilite – groupeCours – etudiant
matricule
session
– inscription

inscription
sigle etudiant
session
matricule matricule
groupe coteZ
note nom

2001/02/01 41 2001/02/01 42

7
Contre-exemple de 2FN
Normalisation en 2FN
une entité E est en deuxième forme
normale ssi tous les attributs non premiers
de E sont en dépendance fonctionnelle
• les attributs non premiers en dépendance
complète de chaque clé candidate de E partielle sont extraits
– pour former une nouvelle relation
sigle session groupe matricule titre nom
ou bien
– sont ajoutés à une relation ayant une clé
primaire appropriée
titre ne dépend pas de toute la clé; il dépend seulement de sigle

2001/02/01 43 2001/02/01 44

Exemples de normalisation en Sont-elles en 2NF?


2FN oui
- il y a deux clés candidates
la relation n’est pas en 2NF car (A1,A2) et (A5)
A1 A2 A3 A4 A5
- la clé est (A1,A2) -seuls A3 et A4 sont non premiers
A1 A2 A3 A4 A5
- A5 est non premier -A3 et A4 dépendent complètement
- A5 dépend seulement de A2 de toutes les clés candidates

oui
- il y a deux clés candidates
A2, A5
A1 A2 A3 A4 A2 A5 A1 A2 A3 A4 A5 -seuls A1, A3 et A4 sont non premiers
-A1, A3 et A4 dépendent
complètement
2001/02/01 45
de toutes les clés candidates 46
2001/02/01

Pourquoi normaliser en 2FN? Définition de 3FN


• parce que cela élimine la redondance des • Une relation E est en troisième forme
données normale ssi pour toute dépendance
fonctionnelle X A de E, une des
• cela assure une meilleure intégrité des
conditions suivantes est satisfaite:
données tout en simplifiant les mise à jour – X est une super clé
• on ne perd aucune information; on peut – A est un attribut premier
recréer l’information avec une jointure des • super clé : liste d’attributs contenant une clé
deux relations candidate

2001/02/01 47 2001/02/01 48

8
Contre-exemple de 3FN
Exemples de 3FN Une relation E est en troisième forme
normale ssi pour toute dépendance
fonctionnelle X A de E, une des
• les relations suivantes sont en 3FN conditions suivantes est satisfaite:
–X est une super clé
– cours – professeur
–A est un attribut premier
– prealablesCours – competence
– accessibilité – disponibilite
– groupeCours – etudiant sigle session groupe matricule nom
– inscription
cette relation n’est pas 3FN car :
• matricule n’est pas une super clé
• nom n’est pas premier

2001/02/01 49 2001/02/01 50

Normalisation en 3FN Pourquoi normaliser en 3FN


• comme pour la 2FN
A1 A2 A3 A4 A5 A4 A6 – parce que cela élimine la redondance des
données
– cela assure une meilleure intégrité des données
tout en simplifiant les mise à jour
• on ne perd aucune information; on peut
A1 A2 A3 A4 A4 A5 A6 recréer l’information avec une jointure des
deux relations

2001/02/01 51 2001/02/01 52

Définition de BCNF Exemples de BCNF


• Une relation E est en forme normale de • les relations suivantes sont en BCNF
Boyce-Codd ssi pour toute dépendance
– cours – professeur
fonctionnelle X A de E, la condition – prealablesCours – competence
suivante est satisfaite: – accessibilité – disponibilite
– X est une super clé – groupeCours – etudiant
– inscription

2001/02/01 53 2001/02/01 54

9
Contre-exemple de BCNF
Contre-exemple de BCNF
Une entité E est en forme normale
de Boyce-Codd ssi pour toute
• supposons qu’une institution dépendance fonctionnelle X A
de E, la condition suivante est
d’enseignement décerne un seul diplôme satisfaite: personne diplôme institution
(SEC, DEC, ou BAC) et qu’une personne –X est une super clé

obtient un diplôme d’une et une seule


institution; on a les DF suivantes cette entité n’est pas en BCNF, car il y a
– (personne,diplôme) institution la DF institution diplôme,
– institution diplôme et institution n’est pas une super clé

2001/02/01 55 2001/02/01 56

Normalisation en BCNF
Définition de 5FN
personne diplôme institution
• Une relation E est en cinquième forme
normale ssi E ne peut être obtenue par une
jointure de relations E1, ..., En telle que
personne institution diplôme institution l’une des Ei n’est pas une clé de E
• la quatrième forme normale est un cas
note: particulier de 5FN; nous omettons sa
- on ne perd pas d’information,
- on diminue la redondance
définition
-on perd une contrainte d’intégrité
(personne,diplôme) institution
2001/02/01 57 2001/02/01 58

Exemple de 5FN Contre-exemple de 5FN


• les relations suivantes sont en 5FN • offreDeCours(sigle,session,matricule)
représente le fait qu’un professeur peut
– cours – professeur enseigner le cours à une session donnée
– prealablesCours – competence
– accessibilité – disponibilite • cette relation peut être obtenue par la
– groupeCours – etudiant jointure des 3 relations suivantes:
– inscription – disponibilité(matricule, session)
– compétence(matricule, sigle)
– accessibilite(sigle, session)

2001/02/01 59 2001/02/01 60

10
Normalisation en 5FN
Contre-exemple de 5FN
offreDeCours
accessibilité disponibilité compétence sigle session matricule
sigle session matricule session matricule sigle
IFT286 H01 ⌧ 1 E01 ⌧ 1 IFT286
IFT286 E01 2 E01 2 IFT286

= accessibilité disponibilité compétence


offreDeCours sigle session matricule session matricule sigle
sigle session matricule
IFT286 E01 1
IFT286 E01 2

2001/02/01 61 2001/02/01 62

Modèle ER de la gestion des cours


Normalisation vs Modèle ER sigle titre préalables session

N N
accessib
cours ilité
session
• Il arrive parfois que la traduction d’un modèle ER
ne donne pas un modèle relationnel normalisé
• Exercice (1,n)

– Produisez le modèle ER du système de gestion des (1,n) inscrit


(1,n)
inscriptions aux cours
groupe groupe étudiant matricule
– Traduisez votre modèle en modèle relationnel note

N
– Comparez le modèle relationnel obtenu avec le modèle coteZ
donne nom
normalisé
1

matricule professeur disponibilités

compétences
2001/02/01 63 2001/02/01 64

Modèle relationnel obtenu par Modèle ER correspondant au modèle


traduction normalisé
sigle titre préalables session

prealableCours cours accessibilité N N


accessib
cours ilité
session
sigle sigle sigle
siglePrealable titre session
1
sigle
competence
1 clé
N N session
sigle
groupeCours matricule
professeur inscription matricule
sigle
session matricule N
groupe salaire N note
matricule nom 1 affecte
groupe groupe
disponibilite
1
matricule N
session
étudiant matricule
donne
inscription
1
sigle etudiant nom coteZ
session matricule professeur
matricule disponibilités
matricule
groupe coteZ
note nom
compétences
2001/02/01 65 2001/02/01 66

11
Modèle UML correspondant au
Modèle avec une notation adaptée
modèle normalisé sigle titre préalables session
cours session
N accessibilité N N
sigle session N accessib
titre cours ilité
session
préalables : set 1

1
(0,n)
etudiant (0,n)
N
N matricule
coteZ inscrit note
groupeCours nom N
sigle inscription (0,n)
affecte 1 affecte
session note
groupe groupe groupe

N N
étudiant matricule
donne
1
professeur
1
nom coteZ
matricule matricule professeur disponibilités
salaire
nom
compétences : set compétences
disponibilités : set
2001/02/01 67 2001/02/01 68

12