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

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

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

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

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

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é

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é?

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

La modélisation dans le processus de développement

Processus de modélisation

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

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.”

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.”

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)

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

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

Exemple d’élicitation de la liste des entités groupe oui (valeur) préalables non (considérons le comme un attribut de cours)

Représentation graphique

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)

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)

Exemple d’identification des attributs accessibilité(sigle, session) étudiant(matricule, nom, coteZ) groupeCours(sigle, session, groupe, matricule) matricule du prof qui enseigne le cours

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)

Le modèle logique de gestion des cours avant normalisation Clé étrangère

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

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

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)

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

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

Normalisation en 1FN de cours

Normalisation en 1FN de professeur

Le modèle logique de cours après normalisation en 1FN

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

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

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

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

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

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

Quelques lois sur les dépendances fonctionnelles

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?

Représentation graphique sigle  titre (sigle,session,groupe)  matricule sigle titre sigle session groupe matricule

Exercice identifiez les dépendances fonctionnelles entre les attributs suivants sigle, titre, matricule, nom, session, groupe, note, salaire, coteZ

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)

Modèle logique de cours

Exemples de 2FN les relations suivantes sont en 2FN cours prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant

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

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

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

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

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

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

Exemples de 3FN les relations suivantes sont en 3FN cours prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant

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

Normalisation en 3FN A1 A2 A3 A4 A5 A4 A6 A1 A2 A3 A4 A4 A5 A6

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

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é

Exemples de BCNF les relations suivantes sont en BCNF cours prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant

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

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é

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

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

Exemple de 5FN les relations suivantes sont en 5FN cours prealablesCours accessibilité groupeCours inscription professeur competence disponibilite etudiant

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)

Contre-exemple de 5FN   =

Normalisation en 5FN

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é

Modèle ER (erroné) de la gestion des cours

Modèle relationnel obtenu par traduction

Modèle logique nornalisé de la gestion des cours

Modèle ER correspondant au modèle normalisé

Modèle UML correspondant au modèle normalisé

Modèle ER avec une notation adaptée