IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Vocabulaire et identifiant entité - propriétés et asso 0,1-x,N [Entité-Association]


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 71
    Points : 59
    Points
    59
    Par défaut Vocabulaire et identifiant entité - propriétés et asso 0,1-x,N
    Bonjour,
    j'ai essayé de trouver des réponses aux 2 questions ci-dessous, sans succès (mais certains messages postés m'ont permis d'en préciser le contenu)

    1) au niveau conceptuel, chaque entité du MCD doit posséder un identifiant (excepté pour les entités spécialisées) déterminé à partir des dépendances fonctionnelles.
    En partant de cet exemple (idEntreprise étant un numéro interne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    idEntreprise -> raisonSociale, adresse, siren, etc.
    siren -> raisonSociale, adresse, idEntreprise
    La stabilité de la propriété idEntreprise va nous la faire choisir comme identifiant.

    ma question 1) : comment conserver la notion de future "clef candidate" dans le MCD ? (afin d'utiliser cette information lors de la transformation en MLD et l'identification de clefs candidates)


    2) La représentation MCD interdit qu'une association 1,1 - x,N puisse être porteuse de propriétés.
    Pourtant dans le cas d'associations 0,1 - x,N, il serait au contraire judicieux de pouvoir faire porter par l'association les propriétés étant liées à l'occurrence de l'association (sinon comment représenter qu'une propriété dépend de l'occurrence d'une association...). (dans la mesure où on utilise la règle de passage vers le MLD qui crée une nouvelle table relationnelle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Entité : ANIMAL (idAnimal, etc.)
    cardi : 0,1
    Asso : se_trouver (date_entrée)
    cardi : 1,n
    Entité : PARC (idParc, etc.)
    siren -> raisonSociale, adresse, idEntreprise
    vers le MLD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Relation: ANIMAL (idAnimal, etc.)
    Relation : PARC(idParc, etc)
    Relation : se_trouver (idAnimal, date_entrée, #idParc)
    ma question 2) : est-ce possible (c'est à dire dans la "norme") de définir des propriétés dans une association 0,1 - x,n du MCD ?

    Je vous remercie beaucoup pour ces précisions.
    Cordialement.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Bonsoir patdez,

    Citation Envoyé par patdez Voir le message
    comment conserver la notion de future "clef candidate" dans le MCD ? (afin d'utiliser cette information lors de la transformation en MLD et l'identification de clefs candidates
    Le Siren de l’entreprise fait l’objet de ce qu’on appelle un identifiant alternatif. Le mickey pour le symboliser dépend de l’AGL que vous utilisez : WinDesign, PowerAMC, DB-MAIN, Open ModelSphere, etc. En utilisez-vous un ?

    Un exemple avec PowerAMC :

    L’identifiant alternatif {CotisCode} de l’entité-type COTISATION est symbolisé par le mickey <ai>.

    Je dois m’en aller, je regarderai la suite (qui a sa réponse)…
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, 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
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    bonsoir et merci pour ce premier élément de réponse.

    Le modèle entité-association (ou MCD Merise) intègre donc bien cette notion d'identifiant alternatif, qui va devenir "clef candidate" dans le MLD puis, peut-être, index dans le MPD.
    Mon agl est généralement "hand-drawn"... (il s'agit d'un contexte de formation plutôt que d'application professionnelle...à l'époque où j'appliquais, l'outil de représentation était AMC designor). Mais j'utilise parfois Win'Design, et je n'y ai pas trouvé d'identifiant alternatif.

    merci encore et au plaisir de vous lire.
    Cordialement.

  4. #4
    Membre régulier
    Homme Profil pro
    retraité DBA mainframe
    Inscrit en
    Juillet 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : retraité DBA mainframe

    Informations forums :
    Inscription : Juillet 2013
    Messages : 68
    Points : 97
    Points
    97
    Par défaut
    Bonsoir Patdez,


    Pour la question sur l'association de type 0,1-X,N : Pourquoi placer une propriété dans l'association puisque par définition elle appartient à l'Objet de cardinalité X,N : exemple date d'entrée de l'animal dans le parc. Par contre si l'on veut prendre en compte un historique les cardinalités changent et l'association porte la propriété "date d'entrée".
    Merise n'interdit pas il considère que s'est inutile, mais rien n'empêche de le faire dans un MLD si vous le jugez nécessaire .

    Bonne soirée
    L'entité est un état d'Esprit (Kent)

    Le Doute raisonnable est facteur de progrès

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 7 965
    Points : 30 777
    Points
    30 777
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Concernant votre 2e question :


    Il n’existe pas de norme Merise au sens où il existe par exemple une norme SQL, il y a seulement des ouvrages de référence, auxquels les concepteurs se conforment plus ou moins. Merise n’est pas une théorie contrairement au modèle relationnel de données, mais une méthode, ce qu’annonce clairement le titre de l’ouvrage de référence par excellence de Tardieu, Rochfeld et Colletti : La Méthode Merise, tome 1, Principes et outils. Citons encore des auteurs remarquables comme Yves Tabourier (De l’autre côté de Merise) ou Dominique Nanci (Ingenierie des systèmes d'information : Merise, deuxième génération). Il existe des comptes-rendus de l’AFCET (laquelle a malheureusement disparu) et bien sûr de nombreux autres ouvrages. Quoi qu’il en soit, pour en revenir à La Méthode Merise, tome 1, Principes et outils, côté grammaire ça se résume à ceci (sujet à interprétation...) :




    Cas des cardinalités 1,1

    Un AGL comme PowerAMC (anciennement AMC Designor) accepte tout à fait la représentation ci-dessous, selon laquelle un collaborateur fait partie d’un service depuis telle date :




    L’AGL se contente au stade MLD de faire figurer les attributs ServiceId et DateEmploi dans l'en-tête de la table COLLABORATEUR :





    Ce que dit la FAQ Merise chez DVP (par Nanci) :

    « Depuis les débuts de la modélisation Entité-Relation de Merise, une relation binaire de cardinalité *,n - 1,1 ne doit pas être porteuse de propriétés. C'est considéré comme une "anomalie" et certains outils le diagnostiquent. Ces éventuelles propriétés doivent être définies du côté de l'entité de cardinalité 1,1 (c'est ce qui se passera de toute façon lors de la transformation). Mais attention, ce n'est plus vrai si la cardinalité est 0,1 !
    Toutefois, on peut tolérer qu'une association 1,1 – 0,n soit porteuse de propriétés dans les premières phases d'élaboration du modèle (brouillon) ; mais cela devra être rectifié avant la finalisation du modèle. »

    Mais pour ma part, je pose la question : pourquoi ce serait une "anomalie" ?

    Par ailleurs, dans l’ouvrage mentionné plus haut, D. Nanci écrit :

    « Toute relation binaire avec cardinalité 1,1 ne peut être porteuse de propriété. En effet, une telle propriété migre alors obligatoirement dans l’entité portant cette cardinalité 1,1. »

    Il s’agit là d’un raisonnement circulaire, un argument d’autorité qui ne prouve rien, propre à instaurer un dialogue de sourds à la Fernand Raynaud... Si je pose la question : « Pourquoi donc une telle association ne pourrait-elle être porteuse de propriétés ? » Réponse : « Parce que ces propriétés doivent migrer ! »


    Cas des cardinalités 0,1

    Prenons l'exemple suivant : seuls certains collaborateurs sont localisés dans un bureau d’un site de l’entreprise.

    MCD




    MLD produit par PowerAMC :




    Pour la petite histoire, L’AGL a fait figurer dans l’en-tête de la table COLLABORATEUR les attributs BureauId et DateAffectation, mais le bonhomme Null ne manquera de venir ficher la patouille, et il sera prudent de transformer ainsi le MLD :




    Concernant WinDesign et les identifiants alternatifs, je reste muet car je n'ai pas l'AGL. En revanche, D. Nanci fait mention de ce type d'identifiant dans son ouvrage que j'ai cité.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, 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
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 71
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup pour ces précieux éclaircissements.
    Cela répond parfaitement à mon questionnement initial.

    1) notion d'identifiant alternatif, bien utile à intégrer pour maintenir le lien avec le MLD (le tout est de trouver une représentation sans équivoque dans l'entité surtout quand on travaille à la main, mais (IA) peut-être une solution, comme on trouve parfois (R) pour identifiant relatif, que pour ma part, je préfère remplacer par les parenthèses plus précises)

    2) cardinalités 0,1 - 1,n
    Au delà/en parallèle de la méthode Merise, il y a effectivement un aspect sémantique à intégrer au modèle et qui peut nécessiter de petits écarts maitrisés :
    -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    animal (date) - 1,1 - se trouver - 0,n - enclos
    Un animal se trouve toujours dans un enclos et on connait la date où il y est entré
    -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    animal - 0,1 - se trouver (date) - 0,n - enclos
    Un animal peut se trouver dans un enclos et s'il se trouve dans un enclos, alors on connait la date où il y est entré
    -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    animal - 0,n - se trouver (date) - 0,n - enclos
    Un animal peut se trouver dans différents enclos (ça va devenir un casse-tête pour le retrouver...) et on conserve la dernière date d'entrée dans chacun des enclos...

    Une historisation nécessiterait effectivement une ternaire pour intégrer la date_d_entrée (pour un enclos, plusieurs animal et date, pour une date, plusieurs animal et enclos, pour un animal, plusieurs enclos et plusieurs date, avec peut-être une cif pour un animal, une date -> un seul enclos...mais c'est un peu vache si le cochon ne se sent pas bien dans l'enclos qu'on lui a affecté...)

    Et merci également pour vos nombreuses réponses de qualité sur ce forum !
    Bien cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/02/2008, 14h34
  2. Identifier les propriétés de CPUs
    Par Charlemagne dans le forum C++
    Réponses: 11
    Dernier message: 27/04/2007, 15h35
  3. Une entite pas identifiant au sein d une relation
    Par poulping dans le forum Schéma
    Réponses: 6
    Dernier message: 25/05/2006, 15h01
  4. Générer un identifiant relatif > l'entité faible en prati
    Par vmolines dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 19/08/2005, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo