Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCosette Delaporte Modifié depuis plus de 10 années
1
Modélisation de données (modèle relationnel)
2
Modélisation de données
On peut créer un modèle relationnel des données de deux manières: Modèle entité-relation et traduction du modèle entité-relation en modèle relationnel Produit directement un modèle relationnel qui est ensuite raffinné pour s’assurer de sa qualité Dans cette partie, on utilisera la deuxième
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
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é
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é?
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
7
La modélisation dans le processus de développement
8
Processus de modélisation
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
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.”
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.”
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)
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
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
15
Exemple d’élicitation de la liste des entités
groupe oui (valeur) préalables non (considérons le comme un attribut de cours)
16
Représentation graphique
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)
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)
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
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)
21
Le modèle logique de gestion des cours avant normalisation
Clé étrangère
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
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
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)
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
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
27
Normalisation en 1FN de cours
28
Normalisation en 1FN de professeur
29
Le modèle logique de cours après normalisation en 1FN
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
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
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
33
Que représente une dépendance fonctionnelle?
attention! la dépendance matricule nom ne 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
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
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
36
Quelques lois sur les dépendances fonctionnelles
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?
38
Représentation graphique
sigle titre (sigle,session,groupe) matricule sigle titre sigle session groupe matricule
39
Exercice identifiez les dépendances fonctionnelles entre les attributs suivants sigle, titre, matricule, nom, session, groupe, note, salaire, coteZ
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)
41
Modèle logique de cours
42
Exemples de 2FN les relations suivantes sont en 2FN cours
prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant
43
Contre-exemple de 2FN sigle session groupe matricule titre nom
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
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
45
Exemples de normalisation en 2FN
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 A5 A1 A2 A3 A4 A2 A5
46
Sont-elles en 2NF? 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 A1 A2 A3 A4 A5
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
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
49
Exemples de 3FN les relations suivantes sont en 3FN cours
prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant
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 sigle session groupe matricule nom cette relation n’est pas 3FN car : matricule n’est pas une super clé nom n’est pas premier
51
Normalisation en 3FN A1 A2 A3 A4 A5 A4 A6 A1 A2 A3 A4 A4 A5 A6
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
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é
54
Exemples de BCNF les relations suivantes sont en BCNF cours
prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant
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
56
Contre-exemple de BCNF
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é 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é
57
Normalisation en BCNF personne diplôme institution personne
note: - on ne perd pas d’information, - on diminue la redondance on perd une contrainte d’intégrité (personne,diplôme) institution
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
59
Exemple de 5FN les relations suivantes sont en 5FN cours
prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant
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)
61
Contre-exemple de 5FN =
62
Normalisation en 5FN
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é
64
Modèle ER (erroné) de la gestion des cours
65
Modèle relationnel obtenu par traduction
66
Modèle logique nornalisé de la gestion des cours
67
Modèle ER correspondant au modèle normalisé
68
Modèle UML correspondant au modèle normalisé
69
Modèle ER avec une notation adaptée
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.