Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation > Schéma
Schéma Modélisation Relationnelle (Dépendances Fonctionnelles, Formes Normales, Entité-relation, MCD, MPD ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/01/2012, 14h27   #1
Invité de passage
 
Femme
Consultant fonctionnel
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Consultant fonctionnel
Secteur : Conseil

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Par défaut Décrire une clé étrangère comme clé primaire

Bonjour,

Je cherche à représenter dans un MCD une clé primaire qui est aussi une clé étrangère d'une autre table.

J'ai la table :
Site (code_site, nom, adresse)

La table commande a une clé primaire composée (n°, date, code site expéditeur) :
Commande (numéro, date, code_site_expéditeur, paramètres)

Le site expéditeur est clé primaire de Commande et clé étrangère de la table Site.


Normalement, quand je dessine mon MCD, les clés étrangères sont définies par les associations et n'apparaissent pas dans l'entité.

Or, la clé primaire est définie dans l'entité (en soulignant).

Est-ce que dans ce cas précis, le code_site_expéditeur doit apparaître dans l'entité où est-ce qu'il y a moyen de définir l'association comme clé primaire ?

Merci de vos réponses.
anne-claire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 16h14   #2
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 126
Points : 5 126
Bonjour Anne-Claire,


Je m’étonne que différentes commandes d'un site donné puissent avoir le même numéro (conséquence de la présence de la date dans la clé). Pour le moment on va quand même faire avec.


Citation:
Envoyé par anne-claire Voir le message
Est-ce que dans ce cas précis, le code_site_expéditeur doit apparaître dans l'entité ?
Comme disent les angloglottes : One fact, one place, autrement dit le concept de site ne doit figurer qu’une fois dans le diagramme conceptuel, c'est-à-dire soit sous forme d’entité-type, à savoir SITE, soit sous forme d’attribut de l’entité-type COMMANDE.
Il va de soi que ce sera sous forme d’entité-type (sinon il y aurait viol de la deuxième forme normale). Pour faire apparaître le lien, il y a essentiellement deux solutions.

La 1re solution consisterait à utiliser l’identification relative (Merise/2). Avec l’AGL Power AMC :





Dérivation sous forme de diagramme logique :





La 2e solution (en Merise/1) consisterait à considérer — sans état d’âme — la commande comme association entre les entités-types SITE, DATE (de commande) et NUMERO (de commande) :

Diagramme conceptuel :




Diagramme logique :

__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 09/01/2012, 16h33   #3
Invité de passage
 
Femme
Consultant fonctionnel
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Consultant fonctionnel
Secteur : Conseil

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Bonjour,

Merci de ta réponse. J'utilise en effet PowerAMC. Et tu as bien décrit le MLD que je veux obtenir.

Je viens juste de trouver ta réponse en cochant identifiant dans l'association (1,1).
Mais, en fait j'utilise des relations plutôt que des associations car mon MCD est déjà hyper complexe.

Je crois que je dois définir une relation dépendante.
Voici ce que dit l'aide de PowerAMC :
Citation:
Dans une relation dépendante, une entité est partiellement identifiée par une autre.
Chaque entité doit être dotée d'un identifiant.
Cependant, dans certains cas, les attributs d'une entité ne suffisent pas à identifier une occurrence de cette entité.
Pour ces entités, leur identifiant incorpore l'identifiant d'une autre entité avec laquelle elle a une relation dépendante
Donc, je crois que j'arrive au même MLD en utilisant une relation dépendante.

Cordialement.
anne-claire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 16h57   #4
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 884
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 884
Points : 5 126
Points : 5 126
Citation:
Envoyé par anne-claire Voir le message
Je crois que j'arrive au même MLD en utilisant une relation dépendante.
C’est même une certitude ! Pour ceux qui parcourraient cette discussion et se poseraient des questions, je fournis le diagramme conceptuel correspondant (notation E/R selon Power AMC) :



Maintenant, je répète que je m’étonne qu’un site ait des commandes qui le même jour puissent avoir le même numéro.

=>

Quelles sont les règles de gestion précises à ce sujet ?
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 09/01/2012, 17h40   #5
Invité de passage
 
Femme
Consultant fonctionnel
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Consultant fonctionnel
Secteur : Conseil

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
Citation:
Maintenant, je répète que je m’étonne qu’un site ait des commandes qui le même jour puissent avoir le même numéro.
J'ai un peu simplifié mon modèle et mes commandes arrivent de différents systèmes amont.

Merci pour ta réponse. Je marque résolu.

Anne-Claire
anne-claire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 18h09   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 818
Points : 2 818
Bonjour Anne-Claire et Fsmrel,

Je me permets de m'immiscer, Fsmrel...

Anne-Claire, juste pour aller au bout du raisonnement, la remarque de Fsmrel est judicieuse et relève, peut-être, d'une erreur de détermination de la clé primaire (que tu peux d'ailleurs vérifier par une simple requête sur ta table réceptrice des commandes qui arrivent de tes différents systèmes en amont).
Site(code_site, nom, adresse) ;
Commande(#code_site_expéditeur, numéro, date, paramètres).
semble suffisant.

C'est vrai que "qui peut le plus, peut le moins" et que si [#code_site_expéditeur, numéro] est unique, alors [#code_site_expéditeur, numéro, date] est aussi unique. Mais, il n'est jamais très bon d'augmenter inutilement le nombre de champs de la clé primaire.

Mais bon, nous ne connaissons le contexte dans son ensemble.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 18h22   #7
Invité de passage
 
Femme
Consultant fonctionnel
Inscription : septembre 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Consultant fonctionnel
Secteur : Conseil

Informations forums :
Inscription : septembre 2011
Messages : 11
Points : 1
Points : 1
En fait, je travaille sur les douanes et c'est très complexes. Je peux recevoir un même numéro pour une commande provenant du même système facturier passée sur 2 dates différentes : la date doit donc faire partie de la clé.
Le système (j'avais mis site expéditeur) doit aussi faire partie de la clé car sur une même date, les 2 systèmes peuvent générer le même numéro.

Le cas est très rare mais une erreur de déclaration en douane peut générer de lourdes amendes.

En tout cas, merci de m'avoir consacré autant de temps.
anne-claire est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h11.


 
 
 
 
Partenaires

Hébergement Web