2012/03/12 1 Modélisation de données (modèle relationnel)

Preview:

Citation preview

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)

Recommended