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 sur les cardinalités


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Question sur les cardinalités
    Bonjour,

    Voila j'ai une question toute bête qui ne devrait pas poser de problème pour la majorités d'entre vous. Voila mon problème:

    - J'ai modélisé mon MCD et je me retrouve avec des tables associées par une relation binaire de type (1,1)-(1,1).

    Mais j'ai cru lire que nous ne devions pas avoir ce type de relation. Donc j'aurais aimé savoir si cela est vrai et dans ce cas comment faire pour résoudre ce problème.

    D'avance merci.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Montre-nous ton MCD et on verra si tes cardinalités sont bonnes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Entrepots (1,1) ---- être construit ---- (1,1) Villes (0,n) ---- Contenir ---- (1,n)Structures


    Je veux modéliser ici, qu'une ville ne peux contenir qu'un seul est unique entrepôt (il ne peut pas en avoir aucun).

    De plus je me rends compte maintenant que l'entrepôt serait un type de la table déjà existante dans mon modèle : strucutre.
    Mais la relation avec la tables strucuture ne suffit pas à modéliser les contraintes citées ci-dessus.

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour, effectivement des cardinalités (1,1) de chaque coté d'une association sont inutiles. Si un entrepot est situé dans une ville (ce qui est fortement probable) et qu'il n'y a qu'un entrepot dans une ville, dans ce cas ils ne forment d'une seule table.
    Et en créant la table, il faudra préciser " is not null".
    J'espère avoir été claire
    Aline E.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Oui sur le principe de modélisation je suis entièrement d'accord. Mais je me posais la question par rapport au fait de savoir comment modéliser l'entrepôt dans la table Ville?
    Par exemple un entrepot a un nom, une capacité de stockage maximale, et d'autres champs, ... .

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Est-ce que l'entrepot est un type de structure ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 288
    Points : 412
    Points
    412
    Par défaut
    Citation Envoyé par gralizem Voir le message
    Oui sur le principe de modélisation je suis entièrement d'accord. Mais je me posais la question par rapport au fait de savoir comment modéliser l'entrepôt dans la table Ville?
    Par exemple un entrepot a un nom, une capacité de stockage maximale, et d'autres champs, ... .
    C'est plutôt les informations de la table Ville que tu stockes dans la table Entrepot...
    Quels sont les attributs dans ta table Ville? (mis à part le nom de la ville?)

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    oui Ville devient une proprieté de l'entité Entrepot plutot, au moins que pour la ville tu aies d'autres informations que le nom

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par aline estace
    Est-ce que l'entrepot est un type de structure ?
    Actuellement dans le modèle ce n'est pas une structure mais sinon cela devrait l'être. Mais il faut toujours modéliser la contrainte un unique entrepôt dans une unique ville.

    Citation Envoyé par aline estace
    oui Ville devient une proprieté de l'entité Entrepot plutot, au moins que pour la ville tu aies d'autres informations que le nom
    En effet la ville contient beaucoup d'autres informations (un nom, un nombre d'habitant, ...).

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 288
    Points : 412
    Points
    412
    Par défaut
    Citation Envoyé par gralizem Voir le message
    En effet la ville contient beaucoup d'autres informations (un nom, un nombre d'habitant, ...).
    Ok, dans ce cas là.
    Par contre, est-ce que tu peux nous dire quelles sont les raisons qui te poussent à avoir une contrainte 1,1 entre entrepot et ville?
    Par ailleurs, je ne comprends quel est la signification métier de classe "structure" (mais pour l'instant cela ne concerne pas directement ton problème)

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Peut-être que Ville sert aussi (est en relation avec) autre chose dans le MCD ?
    Pour les adresses de personnes ou d'entreprises par exemple.

    Et donc peut-être que la relation n'est pas :
    Entrepôt -1,1----Situer----1,1- Ville

    Mais plutôt :
    Entrepôt -1,1----Situer----0,1- Ville

    Ville est souvent ce que j'appelle une table de référence, comme des types, des familles, des catégories... qui ne sont utilisées que pour servir en clé étrangère dans d'autres tables mais ne sont pas porteuses de données à gérer spécifiquement. On peut très bien charger la table de toutes les villes de France pour être sûr dès le début de ne jamais avoir une ville mal orthographiée.
    Du coup toutes les villes n'ont pas d'entrepôt mais cela ne remet pas en cause le fonctionnement du logiciel. Par contre, ce qui semble important dans votre règle de gestion, c'est la cardinalité maximale à 1.

    A voir si la cardinalité mini à 1 est vraiment fondamentale.

    Si vraiment il ne vous faut avoir que les villes contenant un entrepôt, alors vous ne pouvez éviter les deux entités et les cardinalités 1,1----1,1. Mais sémantiquement, et compte tenu du fait que vous avez plusieurs attributs dans l'entité Ville, vous ne pouvez pas assimiler un entrepôt à une ville et vice-versa. Il s'agit bien de deux entités indépendantes.

    La question reste : comment choisir quelle entité va recevoir la clé étrangère ?
    Physiquement, si je détruis l'entrepîot, je ne détruis pas la ville. Alors que si la ville est détruite par une catastrophe...
    Donc je mettrais plutôt la clé étrangère du côté de l'entrepôt. Je ferais même une identification relative si vous êtes sûr qu'il n'y aura jamais plus d'un entrepôt par ville : l'entrepôt à le même identifiantque la ville et sa clé primaire est en même temps clé étrangère, comme dans le cas d'un héritage.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    En fait vous avez peut être raison avec la cardinalité : Entrepôts(1,1) --- (0,1)Villes.

    Cela me semble relativement correcte pour ma conception. Si les autres personnes qui se sont penchés à mon projet on une objection, ils peuvent s'exprimer ou se taisent à jamais

    En réponse à montesq:

    Citation Envoyé par montesq
    Par contre, est-ce que tu peux nous dire quelles sont les raisons qui te poussent à avoir une contrainte 1,1 entre entrepot et ville?
    La contrainte suivante: "Je veux que dans une ville il n'y ai qu'un seul et unique entrepôt.

    Citation Envoyé par montesq
    Par ailleurs, je ne comprends quel est la signification métier de classe "structure"
    Cette entité représente des batiments, des infrastructure ... présente dans la ville.

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par gralizem Voir le message
    Cette entité représente des batiments, des infrastructure ... présente dans la ville.
    Donc un héritage entre structure et entrepôt serait peut-être approprié ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    En effet un héritage serait même plus qu'aproprié, le seul soucis est que je ne sais pas comment l'on fait cela en SGBD ...

  15. #15
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    CinePhil a donné la réponse :

    l'entrepôt à le même identifiant que la ville et sa clé primaire est en même temps clé étrangère, comme dans le cas d'un héritage
    Autrement dit, en SQL, à titre d'exemple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE TABLE VILLE
    (
          VilleId        INT            NOT NULL
        , VilleNom       VARCHAR(48)    NOT NULL	
      , CONSTRAINT VILLE_PK  PRIMARY KEY (VilleId)
      ...
    ) ;
    CREATE TABLE ENTREPOT
    (
          VilleId        INT            NOT NULL
        , EntrepotNom    VARCHAR(48)    NOT NULL
        ...
      , CONSTRAINT ENTREPOT_PK  PRIMARY KEY (VilleId)
      , CONSTRAINT ENTREPOT_FK1  FOREIGN KEY (VilleId)
           REFERENCES VILLE (VilleId)
    ) ;
    (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.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ok Merci beaucoup pour cette réponse, elle vient complétement éclaircir les propos de cinePhil.

    Je remercie tous ceux qui ont participé à la résolution de mon problème.

    Etant donné que les réponses viennent résoudre mon problème je le tague en "résolu".

    Encore merci.

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

Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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