C'est quoi la difference entre un MPD et un MLD ??
C'est quoi la difference entre un MPD et un MLD ??
Le MCD (Modèle Conceptuel des Données) est utilisé par les concepteurs et les analystes pour décrire sous forme d'un schéma les données relatives au sujet à traiter (en gros les entités, leurs attributs et les relations qu'elles entretiennent). Le MCD ne tient pas compte du SGBD et du langage de programmation à suivre. Le formalisme utilisé pour le MCD est convenu à l’avance. En France, on utilise essentiellement celui qui a été défini pour Merise fin des années soixante-dix, augmenté de fonctionnalités supplémentaires dans les années quatre-vingt (par exemple l’héritage). Il suffit de connaître la norme pour lire sans ambiguïté un MCD.C'est quoi la difference entre un MPD et un MLD ??
L’étape MLD (Modèle Logique de Données) se situe chronologiquement juste après l’étape MCD et revient à présenter les objets du MCD sous une forme compréhensible par un SGBD. Pour faire court, dans un contexte SGBD relationnel, les objets représentés sont désormais des tables (disons SQL) et les liens qui les unissent.
Les outils du marché (par exemple PowerAMC) produisent à partir d’un MCD un MLD pollué par des objets relevant de la quincaillerie. En effet, les tables sont des être de nature mathématique, manipulées à l’aide le d’algèbre relationnelle. La quincaillerie relève plutôt de ce qu’on appelle le MPD (Modèle Physique de Données) dépendant cette fois-ci totalement du SGBD : il d’agit pour l’essentiel des index et autres espaces physiques (table spaces, conteneurs et fichiers divers) spécifiques des SGBD.
Les outils de modélisation font passer directement du MCD au MPD, lequel absorbe complètement le MLD. Il s’agit en fait de gagner une étape (Time is money).
Pour voir ce que cela donne graphiquement, voyez
http://www.developpez.net/forums/sho...d.php?t=348474
Pour apprendre, lisez le document fourni par Cyril Gruau sur ce site :
ftp://ftp-developpez.com/cyril-gruau/ConceptionBD.pdf
est ce que le MLD relationnelle ==> MLDR
et un MLDR est sous la forme de:
employe(idenmploye,nom, prenom,#idresponsable)
grande difference entre MLD et MLD relationnelle(MLDR), c'est cela???
Hum... Je sens que des explications et mises au point sont nécessaires.
Je parlerai d’abord du Modèle Relationnel de Données qui est né près de dix ans avant Merise.
Le Modèle Relationnel de Données
Le Modèle Relationnel de Données (en abrégé : Modèle relationnel) est une théorie : la Théorie relationnelle, née en 1969 et dont le papa s’appelait Ted Codd. La description complète de cette théorie nécessite quelques centaines de pages. Je cite Codd (brièvement) :
Le Modèle Relationnel se compose d’une machine abstraite et d’une théorie dont le but est de pouvoir prendre en compte tous les problèmes– et ceux-là seulement– rencontrés dans la gestion des bases de données informatisées, et de l’interaction avec ces bases de données... Le modèle est basé sur deux pierres d’angle mathématiques : la théorie des relations de degré quelconque, et la logique multivaluée des prédicats du premier ordre. L’un de mes objectifs premiers en développant ce modèle était de fournir aux utilisateurs de SGBD un outil qui faciliterait énormément la compréhension des informations dans une base de données et l’utilisation productive de ces informations. Les opérateurs de recherche et de manipulation utilisent des relations comme opérandes et produisent des relations comme résultats. Ainsi, ces résultats peuvent toujours être utilisés comme opérandes si une étude plus poussée s’avère nécessaire.
(ce que Codd appelle une relation est à prendre au sens mathématique du terme : informellement, on parle plutôt de table).
On retiendra encore que le Modèle Relationnel de Données peut être informellement abordé selon 3 aspects :
Aspect structurel : les données de la base de données sont perçues par l’utilisateur comme des tables et seulement des tables.
Exemple des courses hippiques : La base de données est composée de tables dont voici la structure :
Table des chevaux :
Cheval (ChevalId, ChevalNom, DateNaissance)
qui se lit : Le cheval ChevalId a pour nom ChevalNom et est né le DateNaissance
Table des jockeys :
Jockey (JockeyId, JockeyNom)
qui se lit : Le jockey JockeyId a pour nom JockeyNom
Table des courses :
Course (CourseId, CourseDate, CourseNom)
qui se lit : La course CourseId a pour nom CourseNom et a eu lieu le CourseDate
Table des participations des chevaux et des jockeys aux courses :
Participation (ChevalId, CourseId, Numero, JockeyId, Poids, CordeNo)
qui se lit : Le cheval ChevalId participa à la course CourseId avec le numéro Numero, monté par JockeyId, portant Poids et en position CordeNo par rapport à la corde.
Aspect intégrité : Deux chevaux doivent être distincts dans la base de données (intégrité d’entité) : l’attribut ChevalId servira à se prémunir contre les doublons (disons que le premier cheval inscrit dans la base de données aura 1 pour valeur de ChevalId, le deuxième aura 2 pour valeur de ChevalId, etc.) Même principe pour les jockeys et les courses.
Un cheval qui figure dans la table Participation doit préalablement figurer dans la table Cheval, c’est-à-dire que chaque valeur prise par l’attribut ChevalId de la table Participation doit être d’abord une valeur de l’attribut ChevalId de la table Cheval : l’attribut ChevalId de la table Participation fait référence à l’attribut ChevalId de la table Cheval. Il s’agit de ce que l’on appelle l’intégrité référentielle.
Aspect manipulation : il s’agit des opérateurs qui permettent de filtrer certaines lignes d’une table (Restrict), certaines colonnes (Project), de marier les tables entre elles (Join), etc.
Il y a modèle et modèle...
Le modèle relationnel de Codd est donc une théorie. On peut en dire autant de la méthode Merise qui, pour ce qui concerne la partie traitant des données, est une variante du modèle entité/relation formalisé par Peter Chen en 1976. Même chose pour le modèle réseau (network model) et quelques autres. A l’exception du modèle relationnel, ces modèles ont en commun de permettre de représenter les données de manière graphique, selon un formalisme imposé, avec des règles très précises (diagramme entité/relation, diagramme de Bachman, etc.)
Je reprends ce que j’ai écrit par ailleurs :
Chronologiquement, quand on élabore une base de données, on produit d’abord un Modèle Conceptuel de Données (voyez mon message précédent), un MCD. Par rapport à ce qui précède, il y a une ambiguïté à propos du terme "modèle" :
Un modèle se situe à un niveau théorique. Or un MCD est essentiellement une représentation graphique d’une construction particulière (par exemple, les courses de chevaux), c'est-à-dire que l’on est sur un plan complètement différent, où l’on applique les règles de représentation des données telles qu’elles ont été définies au niveau de la théorie.
Voici un exemple de MCD pour les courses de chevaux :
Modèle Conceptuel de Données (MCD) - Notation Merise
(Vous observerez au passage que certains attributs sont soulignés : ce sont les identifiants des entités-types.)
Une fois que le MCD est agréé, validé, on produit lors de l’étape suivante un MLD (Modèle Logique de Données) ce qui revient encore à produire une représentation graphique, suivant certaines règles de transformation des objets conceptuels (entités-types, attributs, associations) en objets logiques. Avant l’arrivée des SGBD relationnels (SQL), on utilisait (entre autres) le modèle réseau cité plus haut : les entités-types devenaient des records, les propriétés des champs et les associations des sets. Je n’en dirais pas plus parce qu’il s’agit du passé, mais certains outils (PowerAMC par exemple) permettent encore d’opter pour une représentation (graphique) en réseau.
Voici un exemple de représentation graphique pour le MLD des courses de chevaux :
Modèle Logique de Données (MLD) - Notation réseau (diagrammes de Bachman)
Voici un autre exemple de représentation graphique pour le MLD des courses de chevaux, avec utilisation de la notation dite "relationnelle" (mais qui n’a aucun caractère officiel) :
Modèle Logique de Données (MLD) - Notation "relationnelle"
Je rappelle que la théorie relationnelle ne propose aucun formalisme de représentation graphique. C’est peut-être par référence au modèle réseau que l’on a des arcs orientés. Vous noterez que l’orientation est l’inverse de celle qui figure dans le MLD en notation réseau.
En plus les données sont typées (int, varchar(48), etc.) A l’instar des identifiants, les clés primaires (primary keys) sont soulignées (et accompagnées du symbole <pk>). Les attributs participant au contraintes d’’intégrité référentielle sont symbolisés par <fk> (ces attributs participent à ce que l’on appelle des clés étrangères (foreign keys)). Les clés alternatives (non primaires mais candidates à l’être) sont symbolisées par <ak> (alternative keys). Une clé peut en même temps être primaire et étrangère. Une clé peut en même temps être alternative et étrangère.
Alors qu’ils devraient se limiter à traiter du MLD, par abus de langage, certains parlent de MLDR parce qu’ils utilisent pour leur MLD une notation prétendue "relationnelle" : ça n’est que du jargon, une coutume locale. Maintenant, si vous voulez utiliser ce terme "MLDR", personne ne vous en empêche, mais ne confondez pas diagramme et théorie (en l’occurrence le Modèle Relationnel de Données).
Pour ma part, puisque cela laisse la théorie relationnelle indifférente, j’utilise une autre notation pour mes MLD, car plus expressive en termes de cardinalités, à savoir une notation conceptuelle. Je vois plus vite qu’une course (par exemple le Grand Prix d’Amérique) a pu faire l’objet de plusieurs participations, qu’un cheval a pu participer à plusieurs courses, même chose pour un jockey. Pour mémoire, l’outil (gratuit) Toad Data Modeler propose le même type de représentation graphique.
On retrouve le même symbolisme que j’ai utilisé pour les tables des courses, des chevaux, des jockeys et des participations. Autrement dit, vous fournissez ici le schéma de la table employe. Il s’agit là encore d’un usage graphique qui laisse parfaitement indifférente la théorie relationnelle. Ça n’est qu’un mickey permettant de nommer les attributs composant cette table et qui se lit ainsi :Envoyé par progfann
L’employé identifié par idenmploye a pour nom nom, est prénommé prenom et a pour chef #idresponsable.
En aucun cas il ne peut s’agir de ce que d’aucuns ont appelé MLDR.
Je suppose que le symbole dièse (#) est synonyme de clé étrangère.
Explication bien limpide, sans entorse aux règles.
Merci
Bonjour Mov_TK,
Je vous suis reconnaissant pour votre appréciation.
Mais, qu'entendez-vous par "entorse aux règles" ?
Bienvenue chez DVP,
fsmrel
merci pour tout le monde
Bonjour imanemimi,
Si des réponses ont pu vous être utiles, alors identifiez-les en votant pour elles ! Ça nous permet ainsi de voir quelles réponses n'ont pas été assez bien formulées et laissent donc planer des doutes...
Bonne route !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager