Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1518 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MERISE] PB dans mon MLD ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MERISE] PB dans mon MLD ?

n°1243974
truman
Posté le 11-11-2005 à 18:12:54  profilanswer
 

Bonjour !
 
J'ai un problème dans la création de ma BD sous Access.
 
Dans mon MCD j'ai ceci :
http://img472.imageshack.us/img472/4420/mcd7zn.th.jpg
 
L'association problèmatique c'est "Est Responsable2". Je ne suis pas sûr mais je crois qu'avec des cardinalités 1,1 et 0,1 c'est le 1,1 qui "absorbe" la référence de l'autre entité.
 
De sorte que dans mon MLD j'ai :
 
ANIMATEUR (Matricule, NomAnim, PreAnim, AdresseAnim, TypeContrat, DateFinContrat, NumEquipe#)
 
EQUIPE (NumEquipe, NomEquipe, MatriculeResp#)
 
 
Du coup, dans mon MLD Access, je relie NumEquipe# à NumEquipe en appliquant l'intégrité référentielle. Jusque-là aucun problème. Mais quand je veux relier MatriculeResp# à Matricule, Access me met d'abord :  

Citation :

Une relation existe déjà. Voulez-vous modifier la relation existante ?


 
Alors là je fais oui. Je rajoute la relation entre MatriculeResp#et Matricule et quand je veux appliquer l'intégrité référentielle, il me met :

Citation :

Index unique introuvable pour le champ référencé d'une table principale


 
Quelqu'un pourrait m'expliquer ce que ça veut dire ? J'ai bien vérifié dans mes tables Equipe et Animateur si les types de données étaient bien identiques et c'est le cas ! Merci de votre aide !


Message édité par truman le 11-11-2005 à 18:13:08
mood
Publicité
Posté le 11-11-2005 à 18:12:54  profilanswer
 

n°1244062
olivthill
Posté le 11-11-2005 à 22:59:41  profilanswer
 

Théoriquement, pour respecter les règles de normalisation édictées par Edouard Codd, il faudrait ajouter une table des responsables, qui serait différente de la table des animateurs, car il faut une table par objet et un animateur n'est pas la même chose qu'un responsable. Il y aurait un lien entre la table des animateurs et des responsables, et un lien de la table des responsables à la table des équipes.
 
D'une manière générale, dans un modèle conceptuel de données, il ne faut pas être avare de table. Plus il y en a, plus les relations sont faciles à établir.
 
Sans table des responsables, comment faire par exemple pour compter facilement les responsables ? Comment faire pour qu'une équipe aient plusieurs responsables ? Comment faire pour qu'un animateur soit responsable de plusieurs équipes ? Comment étendre le modèle, par exemple, avec une table des rétributions, qui n'aurait pas le même tarif pour un animateur et pour un responsable ? Si l'on rajoute dans la table des attributs pour les responsables, ces attributs ne seront pas renseignés pour les animateurs non responsables et cela créera des trous inutiles dans la base.
 
Cela dit, une table des responsables n'est pas nécessaire s'il ne peut pas y avoir plus d'un responsable par équipe, et si un animateur ne peut pas être responsable de plusieurs équipes, ni être responsable d'une équipe auquel il n'appartient pas. Dans ce cas-là (qui me semble être le cas en question (j'ai un peu dérivé dans le paragraphe précédent)), alors il ne faut pas créer de relation Est Responsable2, car la responsabilité est alors considérée comme un attribut de l'animateur. Il y aurait uniquement un flag dans la table animateur disant est_responsable oui/non, et le lien vers l'équipe est donné par la relation appartient à l'équipe.

n°1246401
Kingdom Co​me
Posté le 15-11-2005 à 22:20:32  profilanswer
 

:jap:  J'aime bien quand les trucs compliqués sont expliqués simplement  :jap:

n°1246610
orafrance
Posté le 16-11-2005 à 11:04:34  profilanswer
 

olivthill a écrit :

Théoriquement, pour respecter les règles de normalisation édictées par Edouard Codd, il faudrait ajouter une table des responsables, qui serait différente de la table des animateurs, car il faut une table par objet et un animateur n'est pas la même chose qu'un responsable. Il y aurait un lien entre la table des animateurs et des responsables, et un lien de la table des responsables à la table des équipes.


 
Je ne suis pas d'accord. Responsable est un sous-ensemble d'animateur et peut très bien être indiqué par un simple flag ;)

n°1248035
instantdha​rma
Ailleurs c'est ici
Posté le 18-11-2005 à 00:13:17  profilanswer
 

justement, puisque le responsable est un animateur, tu mets un lien d'h'éritage entre les 2 entités du mcd, et à al génération du mld, tu obtiens une table de responsables, et l'analyse d'olivthill est juste et prévoyante pour l'avenir de la base !!!
un lien 1,1 0,1 entre deux entités signifie que "matricule animateur" est un attribut facultatif de l'entité "Equipe".  
bre, oo modélise,mais où sont les responsables ? :D


---------------
di. / www.diredaredare.org - Ailes de la ville

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MERISE] PB dans mon MLD ?

 

Sujets relatifs
[Merise] Notion d'inclusion, lecture d'un schéma.Passer d'une base existante au MCD / MLD
[PowerAMC] Convertir MCD en MLDOutil de modelisation merise,open source, sous Solaris
Quel livre acheter sur Merise ?Documentation sur la modélisation MCD, MLD et MPD
[Analyse] La methode Merise encore d'actualité ?[MERISE]Windesign MEA video club
[Merise] besoin d'aide MCD Excel[MERISE]relation 1:1 vrai ou faut
Plus de sujets relatifs à : [MERISE] PB dans mon MLD ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR