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 :

Question cardinalités MCD


Sujet :

Schéma

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut Question cardinalités MCD
    Bonjour je travaille sur un projet de gestion de parc informatique,
    J'aimerais effectué un historique pour chaque équipement :
    Concernant les cardinalités entre les entités, je mettrai ça :
    Equipement (1,1) -------HISTORISE (1,1)-----Historique





    Un equipement a un et un seul historique ...et un historique appartient à un seul et un seul équipement .
    je me trompe ?


    Au niveau des tables, ça donne quoi les cardinalités (1,1) de chaque coté ?

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Tes cardinalités supposent que tu ne conserves que le dernier historique et que tu supprimes les plus anciens.
    Mais c'est conforme à ta règle de gestion :
    Un equipement a un et un seul historique ...et un historique appartient à un seul et un seul équipement .
    La règle de gestion est-elle juste ?

    Au niveau des tables, ça donne quoi les cardinalités (1,1) de chaque coté ?
    Il faut choisir la table qui va recevoir la clé étrangère.
    Dans ton cas, ce sera probablement la table Historique.

    D'ailleurs, je verrais plutôt, en supposant toujours que tu ne conserve qu'un seul historique par équipement, ces cardinalités là :
    Equipement -0,1 -------HISTORISER----(1,1)- Historique

    Un nouvel équipement n'a pas encore d'historique !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Par défaut
    Bonjour vivicente,


    Citation Envoyé par vivicente Voir le message
    Un equipement a un et un seul historique ...et un historique appartient à un seul et un seul équipement .
    je me trompe ?
    La règle de gestion est peut-être juste mais as-tu réellement réfléchi à la manière dont elle se modélise ?

    Un équipement, c'est 1 occurrence de l'entité Equipement. Mais un historique d'équipement, est-ce 1 occurrence de l'entité Historique ou plusieurs occurrences ? Ne faudrait-il pas faire intervenir une date ou un horodatage dans le concept d'historique ?

    J'ai mon idée sur ces questions mais je ne veux pas t'influencer.


    Citation Envoyé par vivicente Voir le message
    Au niveau des tables, ça donne quoi les cardinalités (1,1) de chaque coté ?
    Lorsque ce type d'association est pleinement justifié (souvent il s'agit d'erreurs de modélisation), il faut choisir le sens de la CIF. L'une des tables sera alors référencée par l'autre au moyen d'une clé étrangère.

    Exemple théorique. Soient deux entité A et B :

    [ A ]--1,1----( )----1,1--[ B ]

    On choisit le sens de la CIF :

    [ A ]--1,1----( )----1,1->[ B ]

    Le MLD obtenu à partir de ce MCD est (clés primaires soulignées, clé étrangère suffixée par #) :

    A (A, A1, A2, ..., An, B#)
    B (B, B1, B2, ..., Bn)
    Le contrôle que chaque ligne de B est liée à une et une seule ligne de A doit se faire par programme.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    :!: Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur :resolu:

  4. #4
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 257
    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 : 8 257
    Billets dans le blog
    16
    Par défaut Clés alternatives
    Bonjour à tous,



    Citation Envoyé par JPhi33 Voir le message
    Le MLD obtenu à partir de ce MCD est (clés primaires soulignées, clé étrangère suffixée par #) :

    A (A, A1, A2, ..., An, B#)
    B (B, B1, B2, ..., Bn)

    Le contrôle que chaque ligne de B est liée à une et une seule ligne de A doit se faire par programme.
    Hum... Concernant la table B, la règle de gestion selon laquelle pour une valeur de l’attribut B il y a exactement une valeur de l’attribut A, entraîne la mise en œuvre d’une clé alternative {B#} de préférence à celle d'un programme.

    Dans le style de Tutorial D :

    Code Tutorial_D : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    VAR B {B, B1, B2, ..., Bn}
          KEY {B} ;
    
    VAR A {A1, A2, ..., An, B#}
          KEY {A}
          KEY {B#}
          FOREIGN KEY {B#} REFERENCES B ;

  5. #5
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Par défaut
    Bonjour fsmrel,

    Citation Envoyé par fsmrel Voir le message
    Hum... Concernant la table B, la règle de gestion selon laquelle pour une valeur de l’attribut B il y a exactement une valeur de l’attribut A, entraîne la mise en œuvre d’une clé alternative {B#} de préférence à celle d'un programme.
    Oui, c'est encore mieux si le SGBD prend en charge cette contrainte.

    Citation Envoyé par fsmrel Voir le message
    Code Tutorial_D : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    VAR A {A1, A2, ..., An, B#}
          KEY {A}
          KEY {B#}
          FOREIGN KEY {B#} REFERENCES B ;
    Par contre, je ne comprends pas la disparition de l'attribut A dans la liste des attributs de VAR A. Est-ce un oubli ou bien y a-t-il une particularité inhérente à la coexistence de la clé A et de la clé arternative B# ?
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    :!: Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur :resolu:

  6. #6
    Expert éminent
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 257
    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 : 8 257
    Billets dans le blog
    16
    Par défaut clé alternative
    Hello JPhi33,

    Citation Envoyé par JPhi33 Voir le message
    je ne comprends pas la disparition de l'attribut A dans la liste des attributs de VAR A.
    Dont acte. Il s’agit d’une coquille. Je rectifie donc :

    Code Tutorial_D : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    VAR A {A, A1, A2, ..., An, B#}
          KEY {A}
          KEY {B#}
          FOREIGN KEY {B#} REFERENCES B ;

    Dans le style SQL :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE TABLE A
    (
            A ...   
          , A1 ...
          , ...
          , An ...
          , B# ...
      , PRIMARY KEY (A)
      , UNIQUE (B#) 
      , FOREIGN KEY (B) REFERENCES B
    ) ;

    Citation Envoyé par JPhi33 Voir le message
    c'est encore mieux si le SGBD prend en charge cette contrainte.
    Cette contrainte (voir la clause UNIQUE dans le code SQL ci-dessus) existe dans la norme depuis SQL:92. Elle est disponible dans les SGBDR (à titre d'exemple, depuis la version 3 de DB2, qui date de 1993). Dans les années quatre-vingts, on palliait l’absence de cette contrainte en définissant au niveau physique un index de type UNIQUE.

Discussions similaires

  1. Question - MCD - Cardinalités 0-n
    Par qr0w_- dans le forum UML
    Réponses: 2
    Dernier message: 14/08/2013, 18h51
  2. Compréhension cardinalité MCD
    Par cl3ms dans le forum Schéma
    Réponses: 2
    Dernier message: 04/06/2012, 13h26
  3. Question création MCD
    Par kiki500 dans le forum Schéma
    Réponses: 2
    Dernier message: 11/12/2007, 12h19
  4. question de MCD
    Par yoyoo dans le forum Access
    Réponses: 9
    Dernier message: 07/07/2006, 16h10
  5. Probleme de cardinalité dans mon mcd/mpd
    Par bluecurve dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/03/2006, 08h12

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