📚 Le modèle conceptuel de données#
Pourquoi le modèle entité-association ?
Il permet le passage du monde réel à sa représentation informatique.
Dictionnaires de données#
Le dictionnaire des données contient toutes les données nécessaires, relevées dans l’analyse de l’organisation. Il est organisé sous forme d’un tableau de cinq colonnes:
donnée |
Code donnée |
Description |
Type et longueur |
observations |
Le graphe de dépendances fonctionnelles#
Ce graphe fait apparaître les dépendances fonctionnelles entre les données. Une dépendance fonctionnelle relie deux données lorsque la connaissance de l’une détermine l’autre.
Attention
Une dépendance fonctionnelle n’est pas réversible.
Les règles de passage des DF au MCD:
- Règle 0
Toute donnée du graphe de DF devient une propriété.
- Règle 1
Toute donnée source de dépendance fonctionnelle devient identifiant d’une entité.
- Règle 2
Toute donnée cible d’une dépendance fonctionnelle et non source (d’une autre DF) devient une propriété de l’entité dont la donnée source de la DF est identifiant.
- Règle 3
Une dépendance fonctionnelle entre deux données sources de DF révèle une association hiérarchique toujours non porteuse de propriété(s).
- Règle 4
La présence d’une donnée concaténée (association de plusieurs données élementaires) source de DF révèle une association non hiérarchique porteuse de propriété(s).
- Règle 5
Attention il peut exister des associations qui sont des dépendances non fonctionnelles et qui n’apparaissent pas dans le graphe des DF.
Éléments fondamentaux du MCD#
Le modèle E/A
est un formalisme graphique pour la modélisation de données dont l’origine se trouvent dans les travaux de Tardieu (France) et Chen (USA) en 1974/1975.
Ce modèle repose sur des concepts simples:
choses (objets) \(\rightarrow\) entités
liens entre les choses \(\rightarrow\) associations
Entités#
Une entité est un objet, événement, lieu, personne, chose, etc. identifiable sans ambiguïté.
Exemple d’une entité#
Associations#
Une association est un lien entre 2 ou plusieurs entités.
Exemple d’une association#
Différents cas de figure élémentaires#
Les différents types d’associations#
Propriétés = Attributs#
Il s’agit d’une donnée élémentaire que l’on perçoit sur une entité ou une association
Identifiant#
Propriété ou groupe de propriétés dont la valeur identifie sans ambiguïté une entité (identifiant = clé primaire).
Chaque occurrence doit pouvoir être repérée de manière unique et sans ambiguïté, pour être distinguée de toutes les autres, c’est l’objectif des identifiants.
Typologies des associations: Cardinalités#
Une association permet de relier une ou plusieurs entités. Le rôle de l’association détermine la façon dont les entités sont reliées.
Le rôle d’une association est défini par deux nombres (min, max) représentant le nombre de fois minimum et maximum qu’une entité participe à une association. Les valeurs possibles sont \(0,1\), \(1,1\), \(0,N\) et \(1,N\).
Min: combien de fois au moins une entité de \(A\) est relié à une entité de \(B\).
Max! combien de fois au plus une entité de \(A\) est relié à une entité de \(B\).
Attention
Il faut se poser ces questions dans les deux sens, sens de \(A\) vers \(B\) puis de \(B\) vers \(A\).
Association de type 0,1#
Une entité de \(A\) peut être reliée à aucune ou à une seule entité de \(B\).
Association de type 1,1#
Une entité de \(A\) est reliée à une seule entité de \(B\).
Association de type 0,N#
Une entité de \(A\) peut être reliée à aucune ou à plusieurs entités de \(B\).
Association de type 1,N#
Règles de complétude#
Une entité doit à minima contenir (forme minimun pour le modèle EA):
un nom,
une liste d’attributs
et un identifiant.
Une Association doit à minima contenir (forme minimun pour le modèle EA):
un nom,
la liste des entités qui participent à l’association
ainsi que les rôles et leur cardinalité
et éventuellement la liste des attributs.
Démarche de conception#
La conception d’un MCD passe par les étapes suivantes:
l’identification des entités les plus naturelles;
l’identification des associations entre ces entités;
l’identification des attributs et des identifiants de ces entités et associations;
l’expression des cardinalités;
l’expression des Contraintes d’Intégrités.
Contrainte d’Intégrité Fonctionnelle#
Une Contrainte d’Intégrité Fonctionnelle (en abrégé : CIF) se définit par le fait que l’une des entités participant à l’association est complètement déterminée par la connaissance d’une ou plusieurs autres entités participant dans cette même association.
Normalisation des entités/association#
Normaliser un schéma conceptuel c’est le transformer en schéma normalisé équivalent, c.a.d contenant les même informations, sans perte de données et de dépendances. On parle aussi de forme normal (NF)
- Première forme normale (1NF)
Une entité ou une association est en première forme normale si elle ne possède aucun attribut multivalué c.a.d décomposable.
- Deuxième forme normale (2NF)
- Une entité ou une association est en deuxième forme normale si:
elle est en première forme normale,
tout attribut n’appartenant pas à la clé ne dépend pas que d’une partie de cette clé.
- Troisième forme normale (3NF)
- Une entité ou une association est en troisième forme normale si:
elle est en deuxième forme normale,
tout attribut n’appartenant pas à la clé ne peut dépendre que d’une clé.
Entité de type faible#
Certaines entités dites « faibles » n’existent qu’en référence à d’autres entités dites « identifiantes », on parle aussi d’entités « fortes ». L’entité identifiante est appelé « identifiant étranger » et l’association qui les unit « association identifiantes ».
Une entité de type faible, également appelée entité non identifiée, possède une clé locale (appelée identifiant relatif) qui permet d’identifier une de ses occurrences parmi l’ensemble des occurrences associées à une occurrence de l’entité identifiante. La clé complète d’une entité faible est la concaténation de la clé de l’entité identifiante et de sa clé locale.
L’entité Tâche est complètement dépendante de l’entité Projet et sa clé locale (idTache) n’est pas suffisante à l’identifier de façon absolue.
Le repérage des entités de type faible est très important dans le processus de modélisation, il permet de réfléchir à la meilleure façon d’identifier de façon unique les entités et donc de trouver les meilleures clés. Notons de plus que le repérage d’entités faibles aura une influence importante sur le modèle relationnel résultant.
UML#
Unified Modeling Language
(UML) est un langage de représentation destiné en particulier à la modélisation objet, devenue une norme OMG (Object Management Group) en 1997.
Le modèle dominant en conception de bases de données a longtemps été le modèle E-A toutefois le modèle UML se généralise de plus en plus. Nous ne donnons ici (parmi l’ensemble des outils d’UML) qu’un aperçu du diagramme de classes, qui plus est limité aux aspects particulièrement utilisés en modélisation de bases de données.
Classe UML#
Type abstrait caractérisé par des propriétés (attributs et méthodes) communes à un ensemble d’objets. Permet de créer des instances de ces objets ayant ces propriétés.
Exemple de classe UML#
Attribut#
Information élémentaire qui caractérise une classe et dont la valeur dépend de l’objet instancié.
Un attribut est:
typé, domaine des valeurs est fixé a priori;
(peut être) multivalué, prendre plusieurs valeurs distinctes dans son domaine ;
dérivé, sa valeur est une fonction sur d’autres attributs.
Association#
Relation logique entre deux classes (association binaire) ou plus (association n-aire). Une association est:
est nommée, généralement par un verbe. - peut avoir des propriétés. - définit le nombre minimum et maximum d’instances autorisée dans la relation (cardinalité).
Association porteuse de valeurs#
Cardinalités#
Elle permet de représenter le nombre minimum et maximum d’instances qui sont autorisées à participer à la relation. La cardinalité est définie pour les deux sens de la relation et la notation en UML est opposée à celle adopté en E/A.
Héritage UML#
Relation entre deux classes permettant d’exprimer que l’une est plus générale que l’autre. Implique une transmission automatique des propriétés (attributs et méthodes) d’une classe \(A\) à une classe \(A'\). Dire que \(A'\) hérite de \(A\) équivaut à dire que \(A'\) est une sous-classe de \(A\).
Permet de représenter la relation « est-un » et représente une relation courante dans le monde réel. L’avantage est bien évidemment la factorisation de définition de propriétés identiques pour des classes proches.
Des voitures et des conducteurs#
On en déduit que les conducteurs sont des personnes qui ont un permis, toute voiture est possédée par une unique personne (qui peut en posséder plusieurs), les voitures peuvent être conduites par des conducteurs et que les conducteurs peuvent conduire plusieurs voitures.
Avertissement
Le but d’une modélisation UML n’est pas de représenter la réalité dans l’absolu, mais plutôt de proposer une vision d’une situation réduite aux éléments nécessaires pour répondre au problème posé.
Donc une modélisation s’inscrit toujours dans un contexte, et en cela l’exemple précédent reste limité car son contexte d’application est indéfini.