2012/03/12 1
Modélisation de données(modèle relationnel)
2012/03/12 2
Modélisation de données
• On peut créer un modèle relationnel des données de deux manières:
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
2012/03/12 3
Normalisation des données
• Permet produire un modèle relationnel de qualité– Sans redondance de données– Base de données facile à mettre à jour et à
interroger
2012/03/12 4
Modèle entité-relation
• Modèle abstrait (conceptuel)• Peut être traduit en un
– Modèle relationnel
– Modèle objet
– Modèle hiérarchique, réseau, XML, etc
• Les algorithmes de traduction du modèle entité-relation en modèle relationnel produise généralement un modèle relationnel normalisé
2012/03/12 5
Identifier les entités
• une relation est un objet d’intérêt pour l’utilisateur du système
• une relation peut représenter un objet physique ou virtuel (artificiel) du monde
• critères de pertinence– la relation a-t-elle une valeur pour le processus
d’affaires?– 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é?
2012/03/12 6
Sources pour l’identification des entités
• texte de l’étude de faisabilité
• diagramme des fonctions
• rapport ou autre document que l’on désire informatiser
• procédures
2012/03/12 7
La modélisation dans le processus de développement
Étude de faisabilité
1
Analyse fonctionnelle
2
Réalisation
3
données
fonctions
modèle logiquede données
diagramme desfonctions
ébauche dumodèle
de données
modèlede données
complet
2012/03/12 8
Processus de modélisation
Identifierfonctions et
entités
1
Élaborermodèlelogique
2
Élaborermodèle
physique
3
liste d'entités
liste de fonctions
modèle logiquedes données
modèled'un monde
"idéal"
optimisation dela performance
modèle physiquede données
2012/03/12 9
Modélisation de données et modélisation des fonctions
• le modèle de données et le diagramme des fonctions se développent en parallèle– l’identification d’une relation entraîne
l’identification de fonctions (maj, interrogation)– l’identification d’une fonction entraîne
l’identification de relations
• choisir l’approche la plus naturelle selon le domaine d’application
2012/03/12 10
Exemple d’identification des entités
• “On désire développer un système pour gérer les inscriptions aux cours dans une université. Les cours offerts sont décrits dans l’annuaire de l’université. On désire affecter les cours selon les disponibilités des professeurs, leur compétence et l’accessibilité des cours par session. Un étudiant s’inscrit à un groupe d’un cours pour une session donnée s’il a complété tous ses préalables. On désire également y consigner la note d’un étudiant.”
2012/03/12 11
Exemple candidats d’entité
• “On désire développer un système pour gérer les inscriptions aux cours dans une université. Les cours offerts sont décrits dans l’annuaire de l’université. On désire affecter les cours selon les disponibilités des professeurs, leur compétence et l’accessibilité des cours par session. Un étudiant s’inscrit à un groupe d’un cours pour une session donnée s’il a complété tous ses préalables. On désire également y consigner la note d’un étudiant.”
2012/03/12 12
Exemple d’élicitation de la liste des entités
• inscription – oui (elle a une valeur pour le processus d’affaires)
• cours– oui (valeur, idem)
• université– non– aucune valeur;– le système s’applique toujours à la même université;– si on gérait les cours pour un réseau d’université, ou pour
des programmes multi-universitaires, l’entité université serait alors pertinente)
2012/03/12 13
Exemple d’élicitation de la liste des entités
• annuaire– oui (il a une valeur, il contient la liste des cours)
• professeur– oui (valeur)
• disponibilités des professeurs– c’est un attribut de professeur; il a une valeur pour
gérer l’affectation des cours
• compétence– c’est un attribut de professeur; il a une valeur pour
gérer l’affectation des cours
2012/03/12 14
Exemple d’élicitation de la liste des entités
• accessibilité– oui (valeur pour gérer l’affectation des cours)
• session– non; pas nécessaire de gérer les sessions; il s’agit plutôt
d’un attribut de plusieurs entités
• étudiant– oui (valeur)
• note– oui (valeur)
2012/03/12 15
Exemple d’élicitation de la liste des entités
• groupe– oui (valeur)
• préalables– non (considérons le comme un attribut de
cours)
2012/03/12 16
Représentation graphiquecours
groupe
inscription
professeur
etudiant
accessibilité
annuaire
note
2012/03/12 17
Définition des attributs des entités
• pour chaque attribut, il faut– nom– type– contraintes d’intégrité
• pour l’instant, on se concentre sur le nom• représentation textuelle des attributs d’une
entité– entité(attribut1, ..., attributn)
2012/03/12 18
Exemple d’identification des attributs
• inscription(sigle, session, groupe, matricule)
• cours(sigle, titre, préalables)• annuaire
– c’est un ensemble de cours, donc déjà traité par l’entité cours; on élimine cette entité
• professeur(nom, matricule, salaire, disponibilités, compétences)
2012/03/12 19
Exemple d’identification des attributs
• accessibilité(sigle, session)
• étudiant(matricule, nom, coteZ)
• groupeCours(sigle, session, groupe, matricule)– matricule du prof qui enseigne le cours
2012/03/12 20
Exemple d’identification des attributs
• note (sigle, session, groupe, matricule, note)
• on peut combiner l’entité note avec inscription, car tous les attributs d’inscription sont inclus dans note
• inscription(sigle, session, groupe, matricule,note)
2012/03/12 21
Le modèle logique de gestion des cours avant normalisation
sigletitrepréalables
cours
siglesessiongroupematricule
groupeCours
siglesessionmatriculegroupenote
inscription
matriculenomsalairecompétencesdisponibilités
professeur
matriculenomcoteZ
etudiant
siglesession
accessibilité
Clé étrangère
2012/03/12 22
Normalisation des entités
• la normalisation des entités permet d’obtenir un schéma de BD relationnelle de bonne qualité
• la normalisation– minimise la redondance des données– facilite la mise à jour des données– facilite l’interrogation des données
2012/03/12 23
Formes normales
• une forme normale dénote un niveau de normalisation pour une entité
• il existe plusieurs formes normales– 1FN, 2FN, 3FN, BCNF, 4FN, 5FN
• on a– 1FN– BCNF 3FN 2FN – 5FN 4FN
• la plus courante est la 3FN• les deux premières (1FN et 2FN) sont à éviter
2012/03/12 24
Définition de 1FN
• Une relation E est en 1FN (première forme normale) ssi tous les attributs de E sont scalaires– attribut scalaire : attribut dont le type est
élémentaire (char, varchar, numeric, etc)– attribut vectoriel : ensemble, liste (c-à-d une
structure comportant des répétitions)
2012/03/12 25
Exemples et contre-exemples de 1FN
• les relations groupeCours, inscription, étudiant, et accessibilité sont en 1FN
• la relation cours n’est pas en 1FN, car l’attribut préalables est un ensemble de sigles
• la relation professeur n’est pas en 1FN, car les attributs compétences et disponibilités sont des ensembles
2012/03/12 26
Normalisation en 1FN
• si une relation E1 n’est pas en 1FN, on la normalise en créant une nouvelle relation E2 pour chaque attribut vectoriel
• les attributs de E2 sont :
– la clé primaire de E1
– les attributs des éléments de la structure vectorielle
• on enlève de la relation E1 les attributs vectoriel
2012/03/12 27
Normalisation en 1FN de cours
sigle titre préalablesIFT286 Lab. de BD IFT178
IFT486 BDIFT286IFT339
cours
courssigle titreIFT286 Lab. de BD
IFT486 BD
2012/03/12 28
Normalisation en 1FN de professeur
matricule salaire nom1 35 000 $ xyz2 25 000 $ abc
professeur
matricule salaire nom disponibilités compétences
1 35 000 $ xyzA01E02
IFT286IFT339
2 25 000 $ abc H01 IFT178
professeur
matricule session1 A011 E022 H01
disponibilitésmatricule sigle
1 IFT2861 IFT3392 IFT178
compétences
2012/03/12 29
Le modèle logique de cours après normalisation en 1FN
sigletitre
cours
siglesiglePrealable
prealableCours
siglesessiongroupematricule
groupeCours
siglesessionmatriculegroupenote
inscription
matriculesalairenom
professeur
matriculecoteZnom
etudiant
siglematricule
competence
matriculesession
disponibilite
siglesession
accessibilité
2012/03/12 30
Pourquoi normaliser en 1FN?
• parce que le modèle relationnel ne permet pas de stocker une structure vectorielle dans un attribut d’une table
• d’autres modèles permettent les répétitions– modèle relationnel étendu ou relationnel objet
(SQL3)– modèle orienté objets
2012/03/12 31
Dépendance fonctionnelle
• les définitions de 2FN, 3FN, BCNF reposent sur la notion de dépendance fonctionnelle
• une dépendance fonctionnelle est une fonction entre des listes d’attributs
• on dénote une dépendance fonctionnelle comme suit :
(A1, ..., An) An+1
on dit que
An+1 dépend de A1, ..., An
2012/03/12 32
Que représente une dépendance fonctionnelle?
• c’est une fonction, donc elle associe à une liste de valeurs des attributs A1, ..., An une et une seule valeur dans An+1
• exemple– dans une université, étant donné le matricule d’un étudiant, on
peut donner son nom
– il existe donc une dépendance fonctionnelle entre matricule et nom
matricule nom
– l’inverse n’est pas vrai : étant donné un nom, on ne peut déterminer le matricule d’un étudiant, car il peut y avoir plusieurs matricules, puisque plusieurs étudiants peuvent avoir le même nom
2012/03/12 33
Que représente une dépendance fonctionnelle?
• attention! la dépendance matricule nomne signifie pas que le nom associé à un matricule ne change jamais; le nom peut changer, mais, en tout temps, on peut déterminer le nom d’un étudiant à partir de son matricule
• cela ne signifie pas non plus que si on a deux matricules différents, alors leurs noms associés doivent être différents
• cela signifie que deux étudiants ne peuvent avoir le même matricule
2012/03/12 34
Dépendance fonctionnelle minimale
• si(A1, ..., An) B
alors on a aussi(A1, ..., An, An+1) B
• pour les fins de normalisation, on considère seulement les dépendances qui sont minimales selon la liste de gauche
2012/03/12 35
Dépendance fonctionnelle et clé candidate
• s’il existe une dépendance fonctionnelle minimale entre (A1, ..., An) et tous les autres attributs de la relation, alors on peut conclure que (A1, ..., An) est une clé candidate
• une dépendance fonctionnelle sera donc traduite en une contrainte primary key ou unique
2012/03/12 36
Quelques lois sur les dépendances fonctionnelles
2012/03/12 37
Comment déterminer les dépendances fonctionnelles?
• les dépendances fonctionnelles sont des contraintes du domaine d’application
• on les détermine à partir de notre connaissance des faits (règles, conditions, etc) du domaine d’application
• on peut déterminer s’il y a une dépendance fonctionnelle (A1, ..., An) An+1 en répondant à la question suivante:– étant donné une liste de valeurs pour A1, ..., An , peut-
on toujours associer une et une seule valeur pour An+1?
2012/03/12 38
Représentation graphique
• sigle titre
• (sigle,session,groupe) matricule
sigle titre
sigle session groupe matricule
2012/03/12 39
Exercice
• identifiez les dépendances fonctionnelles entre les attributs suivants– sigle, titre, matricule, nom, session, groupe,
note, salaire, coteZ
2012/03/12 40
Définition de 2FN
• une relation E est en deuxième forme normale ssi tous les attributs non premiers de E sont en dépendance fonctionnelle 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)
2012/03/12 41
Modèle logique de courssigletitre
cours
siglesiglePrealable
prealableCours
siglesessiongroupematricule
groupeCours
siglesessionmatriculegroupenote
inscription
matriculesalairenom
professeur
matriculecoteZnom
etudiant
siglematricule
competence
matriculesession
disponibilite
siglesession
accessibilité
2012/03/12 42
Exemples de 2FN
• les relations suivantes sont en 2FN
– cours– prealablesCours– accessibilité– groupeCours– inscription
– professeur– competence– disponibilite– etudiant
2012/03/12 43
Contre-exemple de 2FN
une entité E est en deuxième forme normale ssi tous les attributs non premiers de E sont en dépendance fonctionnelle complète de chaque clé candidate de E
sigle session groupe matricule titre nom
titre ne dépend pas de toute la clé; il dépend seulement de sigle
2012/03/12 44
Normalisation en 2FN
• les attributs non premiers en dépendance partielle sont extraits– pour former une nouvelle relation
ou bien– sont ajoutés à une relation ayant une clé
primaire appropriée
2012/03/12 45
Exemples de normalisation en 2FN
A1 A2 A3 A4 A5
la relation n’est pas en 2NF car- la clé est (A1,A2)- A5 est non premier- A5 dépend seulement de A2
A1 A2 A3 A4 A2 A5
2012/03/12 46
Sont-elles en 2NF?
A1 A2 A3 A4 A5
oui- il y a deux clés candidates (A1,A2) et (A5)-seuls A3 et A4 sont non premiers-A3 et A4 dépendent complètement de toutes les clés candidates
A1 A2 A3 A4 A5
oui- il y a trois clés candidates (A1,A2), (A5), (A2)-seuls A3 et A4 sont non premiers-A3 et A4 dépendent complètement de toutes les clés candidates
2012/03/12 47
Pourquoi normaliser en 2FN?
• 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 recréer la relation originale avec une jointure des deux relations normalisées
2012/03/12 48
Définition de 3FN
• Une relation E est en troisième forme normale ssi pour toute dépendance fonctionnelle X A de E, une des conditions suivantes est satisfaite:– X est une super clé– A est un attribut premier
• super clé : liste d’attributs contenant une clé candidate
2012/03/12 49
Exemples de 3FN
• les relations suivantes sont en 3FN
– cours– prealablesCours– accessibilité– groupeCours– inscription
– professeur– competence– disponibilite– etudiant
2012/03/12 50
Contre-exemple de 3FN
sigle session groupe matricule nom
Une relation E est en troisième forme normale ssi pour toute dépendance fonctionnelle X A de E, une des conditions suivantes est satisfaite:
–X est une super clé
–A est un attribut premier
cette relation n’est pas 3FN car :• matricule n’est pas une super clé• nom n’est pas premier
2012/03/12 51
Normalisation en 3FN
A1 A2 A3 A4 A5
A1 A2 A3 A4 A4 A5
A4 A6
A6
2012/03/12 52
Pourquoi normaliser en 3FN
• comme pour la 2FN– 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 recréer la relation originale avec une jointure des deux relations normaliées
2012/03/12 53
Définition de BCNF
• Une relation E est en forme normale de Boyce-Codd ssi pour toute dépendance fonctionnelle X A de E, la condition suivante est satisfaite:– X est une super clé
2012/03/12 54
Exemples de BCNF
• les relations suivantes sont en BCNF
– cours– prealablesCours– accessibilité– groupeCours– inscription
– professeur– competence– disponibilite– etudiant
2012/03/12 55
Contre-exemple de BCNF
• supposons qu’une institution d’enseignement décerne un seul diplôme (SEC, DEC, ou BAC) et qu’une personne obtient un diplôme d’une et une seule institution; on a les DF suivantes– (personne,diplôme) institution– institution diplôme
2012/03/12 56
Contre-exemple de BCNF
personne diplôme institution
cette entité n’est pas en BCNF, car il y a la DF institution diplôme,et institution n’est pas une super clé
Une entité E est en forme normale de Boyce-Codd ssi pour toute dépendance fonctionnelle X A de E, la condition suivante est satisfaite:
–X est une super clé
2012/03/12 57
Normalisation en BCNF
personne diplôme institution
personne institution diplôme institution
note:- on ne perd pas d’information,- on diminue la redondance-on perd une contrainte d’intégrité (personne,diplôme) institution
2012/03/12 58
Définition de 5FN
• Une relation E est en cinquième forme normale ssi E ne peut être obtenue par une jointure de relations E1, ..., En telle que l’une des Ei n’est pas une clé de E
• la quatrième forme normale est un cas particulier de 5FN; nous omettons sa définition
2012/03/12 59
Exemple de 5FN
• les relations suivantes sont en 5FN
– cours– prealablesCours– accessibilité– groupeCours– inscription
– professeur– competence– disponibilite– etudiant
2012/03/12 60
Contre-exemple de 5FN
• offreDeCours(sigle,session,matricule) représente le fait qu’un professeur peut enseigner le cours à une session donnée
• cette relation peut être obtenue par la jointure des 3 relations suivantes:– disponibilité(matricule, session)– compétence(matricule, sigle)– accessibilite(sigle, session)
2012/03/12 61
Contre-exemple de 5FN
sigle sessionIFT286 H01IFT286 E01
accessibilitématricule session
1 E012 E01
disponibilitématricule sigle
1 IFT2862 IFT286
compétence
sigle session matriculeIFT286 E01 1IFT286 E01 2
offreDeCours
=
2012/03/12 62
Normalisation en 5FN
sigle session matriculeoffreDeCours
sigle sessionaccessibilité
matricule sessiondisponibilité
matricule siglecompétence
2012/03/12 63
Normalisation vs Modèle ER
• Il arrive parfois que la traduction d’un modèle ER ne donne pas un modèle relationnel normalisé
• Exercice– Produisez le modèle ER du système de gestion des
inscriptions aux cours
– Traduisez votre modèle en modèle relationnel
– Comparez le modèle relationnel obtenu avec le modèle normalisé
2012/03/12 64
Modèle ER (erroné) de la gestion des cours
cours
sigle titre préalables session
sessionaccessibilité
professeur
donne
étudiant
inscrit
N N
N
1
(1,n)
(1,n)
(1,n)
groupe matricule
nomcoteZ
matricule disponibilités
compétences
notegroupe
2012/03/12 65
Modèle relationnel obtenu par traduction
sigletitre
cours
siglesiglePrealable
prealableCours
siglesessiongroupematricule
groupeCours
siglesessionmatriculegroupenote
inscription
matriculesalairenom
professeur
matriculecoteZnom
etudiant
siglematricule
competence
matriculesession
disponibilite
siglesession
accessibilité
2012/03/12 66
Modèle logique nornalisé de la gestion des cours
sigletitre
cours
siglesiglePrealable
prealableCours
siglesessiongroupematricule
groupeCours
siglesessionmatriculegroupenote
inscription
matriculesalairenom
professeur
matriculecoteZnom
etudiant
siglematricule
competence
matriculesession
disponibilite
siglesession
accessibilité
2012/03/12 67
Modèle ER correspondant au modèle normalisé
cours
sigle titre préalables session
sessionaccessibilité
professeur
donneétudiant
N N
N
1
groupe
matricule
nom coteZ
matricule disponibilités
compétences
note
groupe
affecte1
Ninscription
1N N
sigle
session
matricule
clé
1
1
N
2012/03/12 68
Modèle UML correspondant au modèle normalisé
accessibilité
session (c1)
Session
note
Inscription
groupe (cp1)
GroupeCours
sigle (c1)titre
Cours0..*
affecte0..1
matricule (c1)coteZnom
Etudiant
matricule (c1)salairenom
Professeurcompétences disponibilités
0..*
0..* 0..*
0..*
0..*
2012/03/12 69
Modèle ER avec une notation adaptée
cours
sigle titre préalables session
sessionaccessibilité
professeur
donneétudiant
N N
N
1
groupe
matricule
nom coteZ
matricule disponibilités
compétences
note
groupe
affecte1
N
(0,n)
inscrit
(0,n)
(0,n)