INSIA – SIGL 2
La méthode MERISE MCD - 1
Bertrand LIAUDET
SOMMAIRE
SOMMAIRE 1
1. Rappel : le cycle d’abstraction 3
2. La modélisation 5
3. Les différents modèles et leurs relations 5
MCD et modèle Entité-Association. 5
MLD et modèle relationnel 5
MCD et modèle relationnel 6
0. Bilan de la modélisation relationnelle : les 7 types de clés primaires 7 Clé primaire simple : les tables noms et les tables types 7
Clé primaire simple et étrangère : les tables espèces 7
Clé primaire concaténée avec un identifiant relatif : les tables de composition 8
Clé primaire concaténée avec uniquement des clés étrangères : les tables de liaison 8
Clé primaire concaténée avec une date : les tables d’historique 9
Historique d’une table de composition 9
Historique d’une table de liaison 10
Synthèse 10
1. Présentation du modèle « Entité - Association » 12
2. Exemples 12
Exemple 1 : Le service des ressources humaines 12
Exemple 2 : La bibliothèque 13
Exemple 3 : Les logiciens 13
3. Entités 16
Entité et entité-type 16
Terminologie 16
Identifiant ou clé primaire 16
Unicité des attributs 16
Absence de clé étrangère 16
4. Associations 17
Association et association-type 17
Cardinalités des associations 17
Distinction entre associations hiérarchiques et associations non-hiérarchiques 18
Vocabulaire 19
Types d’association en fonction des cardinalités 20
5. Tous les cas possibles 21
Associations réflexives 21
Associations de dimension supérieure à 2 21
Deux associations différentes entre deux entités 21
6. Méthode de modélisation 23
Première étape : l'analyse en terme d’entités et d’associations 23
Deuxième étape : passage au modèle relationnel. 24
7. Du MEA au MR (du MCD au MLD) 25
Présentation 25
Les 4 règles de passage du MEA au MR 25
Principes des 4 règles de passage du MCD au MLD 26
8. Exercices 27
1 Critique et correction 27
2 Critique et correction 27
3 Critique et correction 28
4 Critique et correction 28
5 Critique et correction 29
6 Du MCD au MLD 29
7 Association et donateurs (reprise des exercices de MR) 30
8 Les employés et la carrière (reprise des exercices de MR) 31
9 La cinémathèque (reprise des exercices de MR) 31
10 Bibliothèque (reprise des exercices de MR) 31
11 Rolland Garros 31
12 Le cyclisme 32
13 L’association 32
14 Les projets 33
15 Les stages 33
16 Les centres d’animation 33
17 L’entreprise 34
18 Formation 34
19 Bricojardin 35
20 ASSURAUTO 35
21 Graphico 36
Première édition : mai 2008
Deuxième édition : novembre 2008
MCD :
MODELE CONCEPTUEL DES DONNEES
1. | Rappel : le cycle d’abstraction |
LE CYCLE D’ABSTRACTION | ||
Niveaux | DONNEES | TRAITEMENTS |
CONCEPTUEL QUOI | M C D Modèle conceptuel des données Signification des informations sans contraintes techniques, organisationnelle ou économique. Modèle entité – association | M C T Modèle conceptuel des traitements Activité du domaine sans préciser les ressources et leur organisation |
ORGA- NISATIONNEL QUI, OU, QUAND | M O D Modèle organisationnel des données Signification des informations avec contraintes organisationnelles et économiques. (Répartition et quantification des données ; droit des utilisateurs) | M O T Modèle organisationnel des traitements Fonctionnement du domaine avec les ressources utilisées et leur organisation (répartition des traitements sur les postes de travail) |
LOGIQUE COMMENT | M L D Modèle logique des données Description des données tenant compte de leurs conditions d’utilisation (contraintes d’intégrité, historique, techniques de mémorisation). Modèle relationnel | M L T Modèle logique des traitements Fonctionnement du domaine avec les ressources et leur organisation informatique. |
PHYSIQUE COMMENT | M P D Modèle physique des données Description de la (ou des) base(s) de données dans la syntaxe du Système de Gestion des données (SG.Fichiers ou SG Base de Données) Optimisation des traitements (indexation, dénormalisation, triggers). | M P T Modèle physique des traitements Architecture technique des programmes |
D’après ISIM, p. 37
2. | La modélisation |
La modélisation est l’activité qui consiste à produire un modèle.
Un modèle est ce qui sert ou doit servir d’objet d’imitation pour faire ou reproduire quelque chose.
On s’intéresse ici à la modélisation des données.
Un modèle des données est une représentation de l’ensemble des données.
Un modèle doit être systématique : d’une part, il concerne la totalité des données, d’autre part la lecture du modèle doit permettre de rendre compte de la réalité représentée (les données du monde réel) sans ambiguïté.
Il existe plusieurs modèles de représentation des données : hiérarchique, relationnel, entitéassociation, objet, ensembliste, etc.
Les deux modèles dominant actuellement sont : le modèle relationnel, MR, qui correspond aux SGBD-R, et le modèle entité-association, MEA, utilisé dans la méthode MERISE.
3. | Les différents modèles et leurs relations |
MCD et modèle Entité-Association.
Le MCD, c’est l’ensemble des modèles qui intègrent les contraintes conceptuelles définies par Merise. Parmi ces modèles, le plus couramment utilisé est le modèle Entité-Association.
Le MCD est donc une abstraction (un modèle abstrait), tandis que le modèle Entité-Association est un modèle concret. C’est une instance possible du MCD.
MCD
Toutefois, quand on parle du MCD, le plus souvent, on parle du modèle concret réalisé pour intégrer les contraintes conceptuelles définies par Merise (donc on parle d’un modèle EntitéAssociation).
La notion de MLD correspond à l’ensemble des modèles qui intègrent les contraintes organisationnelles et logiques définies par Merise. Parmi ces modèles, le plus couramment utilisé est le modèle relationnel.
La notion de MLD est donc une abstraction (un modèle abstrait), tandis que le modèle relationnel est un modèle concret.
Toutefois, quand on parle du MLD, le plus souvent, on parle du modèle concret réalisé pour intégrer les contraintes organisationnelles et logiques définies par Merise (donc on parle d’un modèle relationnel).
Dans l’absolu, le modèle relationnel peut être utilisé comme modèle concret pour faire un MCD.
L’important, c’est que les contraintes conceptuelles soient prises en compte.
Concrètement, pour que cela soit le cas, il faudra que le MLD soit en « forme normale ».
Un MR « brut » normalisé correspond à un MCD.
MEA –1 :
MODÉLISATION - MODELE ENTITE-ASSOCIATION
PRINCIPALES NOTIONS
Entité Association
Cardinalité des associations Association hiérarchique
Association semi-hiérarchique Association non-hiérarchique
0. | Bilan de la modélisation relationnelle : les 7 types de clés primaires |
1 : Les employés et les départements.
2 : Les livres de la bibliothèque.
3 : Les avions et leurs types
Employés (NE, nom, fonction, salaire, #ND)
Départements (ND, nom, ville)
Livres (NL, éditeur, dateAchat, #NO)
Oeuvres (NO, titre, auteur, dateCréation)
Avions (NA, année, couleur, propriétaire, #typeAvion) TypeAvion(typeAvion, nombre places, année, moteur)
En général, une table noms correspond à une réalité physique : les employés, les départements, les exemplaires physiques des livres.
Elles peuvent aussi correspondre à des types de la réalité physique : c’est le cas des « TypeAvion », par exemple, le A320, ou des « œuvres » qui peuvent être considérées comme un type de « livres », le livre comme l’avion étant les exemplaires physiques.
On gère des personnes. Certaines sont étudiantes et suivent des études : année, domaine, spécialisation. D’autres sont salariés et ont une fonction, un salaire et une date d’embauche.
Personnes (NP, nom, prénom, adresse, téléphone) Etudiants (#NP, domaine, spécialisation, année) Salariés (#NP, fonction, salaire, datemb)
La table espèce correspond à une spécialisation d’une table-genre. La clé primaire de la table espèce est constituée par celle de la table genre et est donc clé étrangère en même temps.
On gère des projets qui ont un nom, une date de début, une date de fin et un budget. Les projets sont composés d’étapes en nombres variables. Une étape est définie par son numéro d’ordre dans le projet (de 1 à N), par une date de début et une date de fin, un nom d’étape et un budget d’étape.
Projets (NP, nom, début, fin, budget)
Etapes (#NP, NE, nom, début, fin, budget)
Le numéro d’étape est relatif : de 1 à N. Il y a donc plusieurs étapes qui ont le même numéro d’étape. C’est le couple «NP, NE » qui est unique.
L’étape est un composant du projet : elle disparaît nécessairement avec le projet (elle n’a pas d’existence indépendamment du projet).
On envoie des courriers en nombre à des clients. Un courrier est caractérisé par un libellé et une date. La date d’envoi correspond à la date du courrier. On veut savoir quel client à reçu quel courrier
Courriers (NCO, libellé, date)
Clients (NCL, nom, adresse) Envoyer (#NCL, #NCO)
La clé primaire ne contient que des clés étrangères.
Elle peut en contenir plus que 2 si elle relie 3 ou plus tables entre elles.
Les clés étrangères peuvent faire référence à tous les types des clés primaires.
Une table de liaison peut aussi avoir des attributs en plus de sa clé primaire.
1 : les emprunts à la bibliothèques.
2 : l’historique des adresses des adhérents de la bibliothèque
Livres (NL, éditeur, dateAchat, #NO)
Oeuvres (NO, titre, auteur, dateCréation)
Adhérents (NA, nom)
Emprunter (#NL, datEmp, dureeMax, dateRet, #NA) HistoAdressesAdherents (#NA, date, adresse)
Dès qu’une clé primaire contient une date, c’est un historique.
Dans le cas de l’adresse, on a sorti l’attribut adresse de la table « Adhérents ».
A noter que l’historique est un cas particulier de la composition : les adresses sont des composants des adhérents.
On gère des projets qui ont un nom, une date de début, une date de fin et un budget. Les projets sont composés d’étapes en nombres variables. Une étape est définie par son numéro d’ordre dans le projet (de 1 à N), par une date de début et une date de fin, un nom d’étape et un budget d’étape.
Le budget des étapes peut varier. On veut garder l’historique.
Projets (NP, nom, début, fin, budget)
Etapes (#NP, NE, nom, début, fin)
HistoBudgetEtapes (#(NP, NE), date, budget)
C’est le même principe qu’un historique simple.
On crée une nouvelle table pour l’historique. Sa clé primaire est constituée par la concaténation d’un attribut date et de la clé primaire de la table contenant l’attribut dont on veut faire l’historique.
On envoie des courriers en nombre à des clients. Un courrier est caractérisé par un libellé et une date. Un même courrier peut être envoyé plusieurs fois à la même personne. On veut savoir quel client à reçu quel courrier
Courriers (NCO, libellé, date)
Clients (NCL, nom, adresse)
Envoyer (#NCL, #NCO, date)
Principe
Même principe que pour toutes les tables d’historique
Principe de la clé primaire | Type de table | Principe de la clé primaire | |
Non historique | Historique | ||
CP simple | Table-nom et table-type | CP | Tables historiques |
Héritage | Table-espèce | #CP | #CP, date |
Identifiant relatif | Table de composition | #CP, n° | #CP, n°, date |
Liaison | Table de liaison (table verbe) | #CP1, #CP2 | #CP1, #CP2, date |
En grisé (jaune) : les clés primaires concaténées.
Les tables de liaison peuvent avoir plus de 2 clés étrangères.
Les clés étrangères peuvent toujours faire référence à n’importe qu’elle type de clé primaire. Elles peuvent donc toujours être concaténée.
Par exemple : on peut imaginer une table de liaison historique qui relie une table de liaison historique avec une table de composition, ce qui donnerait comme clé primaire :
#(CP, n°), #(CP1, CP2, date), date
A partir d’une clé primaire simple, on peut avoir 3 types de relations :
• Des relations d’héritage
• Des relations de composition
• Des relations liaison simple
Ces trois types de relations sont celles qu’on retrouvera en UML dans les diagrammes de cas d’utilisation et dans les diagrammes de classes.
A cela s’ajoute dans tous les cas :
• la possibilité d’un historique. A noter que l’historique est un cas particulier de la composition.
1. | Présentation du modèle « Entité - Association » |
Le modèle Entité-Association a été conçu aux Etats-Unis en 1976 par le Taïwanais Peter Chen. Il est aujourd’hui à la base de la plupart des méthodes de modélisation des données (dont la méthode MERISE).
On le retrouve indirectement dans les diagrammes de classe UML. Attention, c’est quand même très différent !
Le modèle Entité-Association est utile pour la modélisation parce qu'il facilite l’appréhension de la réalité qu’on cherche à modéliser.
Il permet ensuite un passage quasi mécanique au modèle relationnel (et donc à la programmation).
2. | Exemples |
On reprend le cahier des charges de la modélisation relationnelle :
Un service de ressource humaine dans une entreprise veut gérer le personnel. Dans un premier temps, on veut pouvoir connaître le nom, la fonction, la date d’entrée, le salaire, la commission (part de salaire variable) de chaque employé et le numéro du département dans lequel travaille chaque employé. Chaque employé a donc les caractéristiques suivantes : Nom, fonction, date d’entrée, salaire, commission, numéro du département
Le service du personnel souhaite aussi connaître le nom du département dans lequel l’employé travaille. L’entreprise est répartie dans plusieurs villes. Les départements sont donc caractérisés par leur nom et par leur ville. Un employé travaille dans un département et un seul. Il peut y avoir plusieurs départements qui ont le même nom.
EMPLOYES(NE, nom, job, datemb, sal, comm., #ND)
DEPARTEMENTS (ND, nom, ville)
MCD sous PowerAMC
On reprend le cahier des charges de la modélisation relationnelle :
Une bibliothèque gère les emprunts des livres de ses adhérents. Les livres ont un titre et un auteur. Les exemplaires physiques des livres ont un numéro différent par exemplaire. Ils correspondent à un livre et ont un éditeur. Les adhérents ont un nom, un prénom, une adresse et un téléphone. On souhaite archiver tous les emprunts. Un livre ne peut pas être rendu le jour même de son emprunt. La durée maximum d'emprunt doit être est de 14 jours.
La bibliothèque souhaite pouvoir connaître à tout moment la situation de chaque abonné (nombre de livres empruntés, retards éventuels). Elle souhaite aussi pouvoir faire des statistiques sur la pratique des clients (nombre de livres empruntés par an, répartition des emprunts par genre, nombre d’emprunts par livre, etc.
ADHERENTS (NA, nom, prenom, adr, tel) OEUVRES (NO, titre, auteur)
LIVRES (NL, editeur, #NO)
EMPRUNTER(#NL, datEmp, dureeMax, datRet, #NA)
MCD sous PowerAMC
On fait une étude sur l’histoire de la logique. Les informations qu’on manipule sont les livres avec leur titre et leur auteur. Pour chaque auteur, on connaît son nom, son pays d’origine, sa date de naissance et sa date de décès. Enfin, on sait quels livres ont lu les différents auteurs et à quelle date.
LOGICIENS | NumLogicien | Nom | Pays | Date de naissance | Date de décès |
1 | Aristote | Grèce | - 384 | - 322 | |
2 | Porphyre | Syrie | 234 | 305 | |
3 | Leibniz | Allemagne | 1646 | 1716 | |
4 | Frege | Allemagne | 1848 | 1925 | |
5 | Russell | Grande- Bretagne | 1872 | 1970 | |
6 | Codd | Grande- Bretagne | 1923 | 2003 | |
7 | Chen | Taïwan | NULL | NULL |
Table des logiciens
LIVRES | NumLivre | Titre | #NumLogicien |
6 tuples : | 1 | L’organon | 1 |
2 | La caractéristique | 3 | |
3 | Sens et dénotation | 4 | |
4 | Concept et fonction | 4 | |
5 | Les Principia mathematica | 5 | |
6 | Le modèle relationnel | 6 | |
7 | Le modèle entité association | 7 |
Table des livres
Table des livres lus par les logiciens
On s’intéresse, pour des raisons historiques et philologiques, à la culture des logiciens.
Nota bene : les données proposées sont imaginaires !
Livres lus par les auteurs | #NumLivre | #NumLogicien | Date de lecture |
6 | 7 | 1971 | |
1 | 6 | 1965 | |
2 | 6 | 1965 | |
3 | 6 | 1966 | |
4 | 6 | 1967 | |
5 | 6 | 1968 | |
3 | 5 | 1902 | |
4 | 5 | 1903 | |
1 | 4 | 1890 |
Schéma de la BD
Log(numLog, nom, pays, datNais, datDec)
Liv(numLiv, titre, #numLog)
LivLus(#numLiv, #numLog, dateLecture)
3. | Entités |
Le modèle « Entité-Association », comme son nom l’indique, modélise les données qu’on cherche à représenter et à organiser à l’aide de deux notions : l’entité et l’association.
Une entité représente un objet ayant une existence indépendante des autres.
Les entités concrètes sont regroupées dans un ensemble abstrait appelé : « entité-type ».
Les entités-types ont un nom et obligatoirement au moins un attribut : la clé primaire.
L’entité-type correspond à la table du modèle relationnel.
L’entité correspond au tuple du modèle relationnel.
A la place d’ « entité-type », on parle généralement d’ « entité ».
A la place d’ « entité », on parle généralement d’ « occurrence », d’ « élément », d’ « individu » ou de « tuple ».
La notion de clé primaire est la même dans le modèle Entité-Association et dans le modèle relationnel.
Dans chaque entité-type, un attribut joue le rôle de clé primaire : il est tel que, pour toutes les entités concrètes, la valeur de la clé primaire est unique et qu’elle détermine la valeur de tous Dans le modèle Entité-Association, la clé primaire est toujours constituée d’un seul attribut.
Un même attribut n'apparaît qu'une seule fois dans le modèle conceptuel des données. Il faut donc l'attribuer à l'entité-type qui lui correspond le mieux.
Il n’y aura donc pas de clé étrangère dans un modèle Entité-Association.
Il n’y a pas de clé étrangère dans le modèle Entité-Association.
C’est cohérent avec le fait qu’un attribut n’apparaît qu’une seule fois dans le modèle.
4. | Associations |
Une association représente un lien entre plusieurs entités (le plus souvent 2, parfois plus).
Les associations concrètes sont regroupées dans un ensemble abstrait appelé : « associationtype » qui relie plusieurs entités-types entre elles (le plus souvent 2, parfois plus). Une association-type peut être réflexive : elle peut relier une entité-type à elle-même.
La dimension d’une association correspond au nombre d’entités qu’elle réunit. La dimension est au minimum de 2 (même si l’assoication est réflexive).
Une association-type a un nom.
Chaque « patte » d’une association-type (le lien qui la relie à une entité-type) a une cardinalité.
Certaines associations-types peuvent avoir des attributs.
Souvent, on parle d’association à la place d’association-type.
Entité-type 2 |
attribut 1 attribut 2 etc. |
|
Les associations se caractérisent par leurs cardinalités (ou multiplicité). On les note : (min1, max1)-(min2, max2) min ? {0 ; 1} max ? {1 ; N}
• Les valeurs du premier couple fixent le nombre minimum et maximum de tuples de la seconde entité auxquels chaque tuple de la première entité est associé, et réciproquement.
• Il est possible que les valeurs de min et de max soient différentes de celles précisées, mais
c’est très rare. En règle générale, mieux vaut s’en tenir à ces deux valeurs possibles pour min et max.
Par exemple : (1,1)-(0,n) signifie que chaque tuple de la première entité est associé au minimum à 1 et au maximum à 1 (donc à 1 et 1 seul) tuple de la seconde entité; et que chaque tuple de la seconde entité est associé au minimum à 0 et au maximum à n tuples de la première entité (donc que tous les tuples de la seconde entité ne sont pas nécessairement associés à ceux de la première).
• Les associations (1-1)-(0 ou 1- N) sont des associations hiérarchiques.
• Elles sont aussi appelées « associations 1-N »
• Les associations hiérarchiques sont toujours de dimension 2 : elles n’ont que deux « pattes ».
• L’entité associée à la cardinalité (1-1) est dite entité inférieure.
• L’entité associée à la cardinalité (0 ou 1 – N) est dite entité supérieure..
• Dans le cas des associations hiérarchiques, chaque tuple de l'entité inférieure (cardinalité (1.1)) est associé à un et un seul tuple de l'entité dite supérieure (cardinalité (0 ou 1.n)), tandis que les tuples de l'entité supérieure sont associés indifféremment à n tuples de l'entité inférieure.
• Les associations hiérarchiques n'ont pas d'attributs. Si une association hiérarchique à des attributs alors, soit ces attributs sont en réalité des attributs de l'entité inférieure, soit l'association est en réalité une association non hiérarchique.
• Une association hiérarchique a un nom qui correspond à un verbe reliant l'entité inférieure comme sujet à l'entité supérieure comme complément.
LOGICIENS |
NumLogicien Nom Pays Naissance Mort |
• Les associations (0 ou 1- N) -(0 ou 1- N) sont des associations non-hiérarchiques.
• Elles sont aussi appelées « associations N-N »
• Dans le cas des associations non hiérarchiques, chaque tuple d'une entité est associé indifféremment à n tuples de l'autre entité. Ce sont les associations (0 ou 1,n)-(0 ou 1,n).
• Les associations non-hiérarchiques peuvent avoir des attributs.
• Une association non hiérarchique a un nom qui correspond à un verbe reliant les deux entités, dans le sens que l'on veut.
LOGICIENS |
NumLogicien Nom Pays Naissance Mort |
Ici l’association est nommée « A lu » dans le sens : un auteur a lu un livre.
Elle pourrait être nommée « est lu par », dans le sens : un livre est lu par un auteur.
• Les associations (0-1)-(0 ou 1- N) sont des associations semi-hiérarchiques.
• Les associations semi-hiérarchiques peuvent porter des attributs.
• Une association semi-hiérarchique qui porte des attributs peut être considérée comme une association non-hiérarchique. • Une association semi-hiérarchique qui ne porte pas d’attributs peut être considérée comme une association hiérarchique.
Exemple :
On reprend le cahier des charges de la modélisation relationnelle des employés :
On souhaite gérer le personnel d'une société. Chaque membre du personnel a un nom, une fonction, un salaire, une commission, une date d'entrée dans la société. Chaque membre du personnel travaille dans un département caractérisé par son nom (commercial, production, personnel, comptable et recherche) et la ville dans lequel il se trouve.
Un employé a un supérieur hiérarchique, lui-même employé, et un seul, à l’exception du président qui n’a pas de supérieur hiérarchique. Inversement, les employés peuvent avoir ou ne pas avoir de subordonnées.
MCD sous PowerAMC
Association hiérarchique : « 1.1 », « 1-N », CIF, association non-porteuse (d’attributs).
Association non hiérarchique : « N-N », CIM, association porteuse (d’attributs).
On écrit parfois « * » ou « ? » à la place de « N ».
Cardinalités | Type d’association | Attributs possibles | Autre nom |
(1.1)-(0 ou 1.n) | Hiérarchique | Non | 1-n ou 1.1 ou CIF |
(1.1)-(0.1) | Hiérarchique | Non | Sous-type |
(0.1)-(0 ou 1.n) | Semi-hiérarchique | Oui | |
(0 ou 1.n)-(0 ou 1.n) | Non-hiérarchique | Oui | n-n ou CIM ou porteuse |
5. | Tous les cas possibles |
Une association peut boucler sur la même entité :
Une association peut relier 3 entités ou plus :
Une association de dimension supérieure à 2 n’est jamais hiérarchique : il ne peut pas y avoir de cardinalité 1.1. Si on veut mettre 1.1, c’est qu’il y a en réalité deux association de dimension 2.
Entre deux entités on peut avoir plusieurs associations distinctes :
Toutes les cardinalités sont possibles.
6. Méthode de modélisation
Les sources de la modélisation sont l'observation d'une situation réelle, des interviews des différents acteurs, la lecture de documents produits par la situation ou décrivant la situation. À partir de ces sources, on va pouvoir formuler par écrit la situation qu'on souhaite modéliser (les exercices proposés partent de cette formulation). La formulation devra préciser les objectifs attendus.
Il faut d'abord lister les entités qui correspondent à des réalités physiques et pour chaque entité définir sa clé et la liste de ses attributs.
Ensuite on peut réfléchir aux types qu’on peut associer à ces entités.
Ensuite on peut réfléchir aux associations entre les entités.
Les entités apparaissent le plus souvent sous la forme d'un nom commun, les attributs sous la forme d'un adjectif (ou d'un nom commun) et les associations sous la forme d'un verbe.
En même temps, il faut lister les objectifs à atteindre, c'est-à-dire les traitements que l'on veut faire subir aux entités.
Il faut donc d'abord distinguer les données (entités) et les traitements (objectifs). Notez que les traitements peuvent faire découvrir de nouvelles données.
Questions à se poser :
Sont-elles vraiment des entités? Autrement dit :
La réponse à cette question permet de vérifier si les entités sont correctement définies. 1) leur extension (nombre de tuples) est-elle supérieure à 1?
2) l'intension (les attribut) va-t-elle au delà de la clé primaire ?
3) Sont-elles aussi des objectifs?
Si l'extension est égale à 1 ou si l'intension est égale à 1 ou si l'entité est un objectif, alors il est probable que l'entité potentielle n'en soit pas une.
Sont-elles distinctes entre elles? Si deux entités ont la même extension (dans le contexte de la base de données) alors les entités sont identiques.
Quelles sont leurs clés?
Question à se poser :
Quelles sont les dépendances fonctionnelles?
INSIA – MERISE – SIGL 2 – Cours 02 – page 23/39 - Bertrand LIAUDET
Question à se poser :
Dès qu’on a deux entités : se demander s’il n’y a pas une association qui les relie
Quelles sont les cardinalités ? Pour chaque association, il faut bien analyser les cardinalités On aura compris qu'il est essentiel de bien distinguer les associations hiérarchiques des car elles ont un impact essentiel dans le modèle relationnel.
Si une cardinalité est 1.1-1.1, c’est que les deux entités reliées sont les mêmes.
associations non hiérarchiques.
Deuxième étape : passage au modèle relationnel.
En appliquant les règles de passage du MCD au MLD, on définit le modèle relationnel.
7. | Du MEA au MR (du MCD au MLD) |
Le Modèle entité-association, MEA, est plus intéressant conceptuellement que le modèle relationnel, MR. C’est donc celui qu’on utilise pour la modélisation.
Son principal défaut est qu’il n’a pas de langage d’interrogation des données qui lui est associé.
Il faut donc transformer le MEA en MR.
Le passage du MEA au MR est quasiment mécanique et ne pose donc quasiment aucunes difficultés si le MEA a été correctement réalisé.
Par abus de langage, on parle souvent de MCD à la place du MEA et de MLD à la place du MR. De ce fait, on parle plutôt de passage du MCD au MLD plutôt que de passage du MEA au MR.
Il y a quatre règles de passage d'un MEA à un MR : une règle par élément du modèle.
Règle 1 - Entité : Chaque entité devient une table-nom. Chaque attribut de l'entité devient un attribut de cette table.
Règle 2 – Association hiérarchique : Dans le cas d’une association hiérarchique, la clé primaire de l’entité supérieure devient attribut clé étrangère dans la table issue de l’entité inférieure.
Dans le cas d'une association hiérarchique réflexive, ce nouvel attribut doit être renommé et ajouté dans le dictionnaire des attributs.
Règle 3 – Association non hiérarchique : Une association non hiérarchique devient une tableverbe. Les clés primaires des entités associées deviennent clés étrangères dans cette table. Les attributs de l’association deviennent attributs de la table.
La détermination de la clé primaire de cette table n’est pas mécanique.
En général, la clé primaire de cette table est constituée de la concaténation des clés primaires des entités associées. Toutefois, il faut se demander si cette concaténation forme bien la clé primaire. Si ce n’est pas le cas, on peut essayer d’ajouter des attributs non-clés pour trouver la clé primaire. Ensuite, il faut se demander si on ne peut pas supprimer certains attributs clés étrangers de cette clé primaire (donc se demander si la table vérifie la forme normale de BoyceCodd).
Règle 4 – Association semi-hiérarchique : Dans le cas des associations semi-hiérarchiques : si elles portent des attributs, elles seront nécessairement traitées comme des associations nonhiérarchiques. Si elles ne portent pas d’attributs, on peut les traiter comme des associations hiérarchiques.
IL FAUT CONNAITRE CES QUATRE REGLES PAR CŒUR !!! |
Principes des 4 Règles de passage du MCD au MLD | |||
N° | Elément du MCD | Elément du MLD | Principe du passage |
1 | Entité | Table | Mécanique |
2 | Association hiérarchique | Clé étrangère | Mécanique |
3 | Association non-hiérarchique | Table | Détermination de la clé primaire non mécanique |
4 | Association semi-hiérarchique | Clé étrangère ou table | Mécanique ou détermination de la clé primaire non mécanique |
8. Exercices | |
1 | Critique et correction |
Soit le modèle entité-association suivant :
Un contrat est passé par un client et un seul. Un client peut passer plusieurs contrat.
Quelle critique formelle pouvez-vous faire au MCD présenté ci-dessous ?
Proposez un modèle corrigé.
2 | Critique et correction |
Soit le modèle entité-association suivant :
Un employé peut exercer plusieurs fonctions successivement avec différents salaires, mais pas en même temps.
• Quelle critique formelle (= syntaxique, = non sémantique) pouvez-vous faire au MCD présenté ci-dessous ?
• Proposez un modèle corrigé.
• Proposez le MR correspondant et le graphe des tables.
3 | Critique et correction |
Soit le modèle entité-association suivant :
Stock |
NuméroProduit, NuméroDépôt NomProduit PrixUnitaireProduit Quantité AdresseDuDépôt CodePostalDépôt VilleDépôt TéléphoneDépôt |
La quantité correspond à la quantité de produit stocké pour un numéro de produit et un numéro de dépôt. Dans un dépôt, il peut y avoir plusieurs produits. Un dépôt peut être vide. Un produit peut être stocké dans plusieurs dépôts. Un produit peut être en rupture de stock.
• Quelle critique formelle (=syntaxique, = non sémantique