La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Modélisation de données (modèle relationnel)

Présentations similaires


Présentation au sujet: "Modélisation de données (modèle relationnel)"— Transcription de la présentation:

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


Télécharger ppt "Modélisation de données (modèle relationnel)"

Présentations similaires


Annonces Google