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 :

[MCD] Probleme de comprehension avec la cardinalite 0,1


Sujet :

Schéma

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut [MCD] Probleme de comprehension avec la cardinalite 0,1
    Bonjour,

    Alors voila on est plusieurs a pas etre d'accord sur une relation entre deux entites :

    Supposons que nous avons une entite "Personne" avec comme attribut nom, prenom et addresse.

    Cette personne peut avoir deux status a savoir : Staff ou Etudiant represente par l'entite "PersonneStatus" qui est liee avec "Personne".

    Maintenant, dans le cas ou cette personne est un etudiant, elle doit fournir un numero d'etudiant. Donc nous avons gere ceci en creant une entite "EtudiantNumber" et nous l'avons egalement liee avec "Personne".

    Il conviendrait alors de pour l'association entre "Personne" et "EtudiantNumber" de mettre comme cardinalites 0,1 du cote de "Personne" et 1,1 du cote de "EtudiantNumber".
    Car, pour une occurence de Personne, il peut y avoir 0 ou 1 numero d'etudiant.
    Et inversement, un numero d'etudiant correspond obligatoirement a une et une seule personne.

    Mais voila, certains disent que c'est inutile d'avoir une telle association et qu'il suffirait de mettre un champ numeroEtudiant dans "Personne" et de le renseigner seulement en cas de besoin. Est-ce juste de raisonner comme ceci ?

    A-t-on le droit de mettre un champs non renseigne dans une entite ? Et l'association 0,1 -- 1,1 est-elle correcte ?

    Merci de nous eclaircir a ce niveau la
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    Dans un premier temps, essayez de modéliser des objets concrets, c'est plus facile, par la suite, vous modéliserez des paniers dans un site de ecommerce ou des comptes dans une application de gestion!

    A la place de statutpersonne, vous avez plusieurs classes : professeurs, etudiants, ... et l'étudiant à une propriété numéro étudiant toujours renseignée, toutes ces classes dependent d'une super classe personne qui rassemble les élèments commun comme nom et prenom ( un professeur a un nom, un etudiant aussi ).

    référence : http://sqlpro.developpez.com/cours/m...n/heritage/#L2

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


    Si vous souhaitez prendre l'habitude de modéliser proprement, étudiez les techniques de spécialisation/généralisation et d'héritage (Cf. la FAQ Merise) et étudiez le cas présenté par Chtouk, car le vôtre est proche du sien.

    Vous devriez donc mettre en oeuvre une entité-type Etudiant, spécialisation de Personne. D'autant plus que le numéro d'étudiant sera peut être un jour accompagné d'autres attributs spécifiques des étudiants. De la même façon, en pensant à l'avenir, vous serez peut-être amené à mettre en oeuvre d'autres spécialisations pour l'entité-type Personne, et ne pas vouloir polluer cette dernière.
    (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.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    En fait, nous avons bel et bien une entite qui contient les proprietes communes et l'entite EtudiantNumber correspond a un etudiant (il contient son numero etudiant et pourra par la suite contenir d'autres parametres propre a un etudiant).

    En fait, ce que nous nous demandons est :

    A-t-on le droit d'avoir des champs dans une entite que nous ne voulons pas specifier ?

    Actuellement nous utilisons cette modelisation propre ou nous affectons une entite Etudiant a part. Et nous sommes entierement d'accord sur le fait que c'est plus propre. Nous voulions juste savoir si on a le droit ou pas aux proprietes non renseignees (affectees a NULL par exemple)

    Merci de vos reponses et pour la FAQ qui va etre surement servir
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

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


    Citation Envoyé par Raiden1234 Voir le message
    A-t-on le droit d'avoir des champs dans une entite que nous ne voulons pas specifier ?
    Dans l’absolu, on ne peut pas l’interdire, puisqu'avec SQL il suffit d'autoriser NULL lors de la définition des colonnes des tables. Mais je vous ai fourni des éléments de réflexion qui devraient vous inciter à bien peser le pour et le contre dans le cadre de la modélisation. Et côté pragmatique, plus d’une fois j’ai eu à auditer puis "casser" des tables comportant de l’ordre de 400 millions de lignes, dont la moitié des colonnes n’étaient pas valorisées, parce que ne correspondant qu’à des cas très particuliers (entre 10 et 10000 lignes moins enneigées que les autres). Et cette fois-ci, ça n’était plus la théorie qui était concernée, mais bien la durée des traitements (je ne parle même pas de la pertinence des résultats...)
    (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 régulier
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Points : 85
    Points
    85
    Par défaut
    Ok merci beaucoup pour vos explications, je part maintenant entierement satisfait car c'est egalement ce que je pensais
    "La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !" -Albert Einstein

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

    C'est toujours agréable d'avoir affaire à quelqu'un qui part satisfait et qui remercie ses interlocuteurs. A mon tour je vous remercie et vous souhaite bonne route.
    (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.

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

Discussions similaires

  1. [Débutant] MCD Probleme de comprehension association porteuse de données .
    Par oshigamie dans le forum Accès aux données
    Réponses: 1
    Dernier message: 27/04/2015, 11h34
  2. [MCD] Probleme de cardinalité
    Par fredangel dans le forum Schéma
    Réponses: 16
    Dernier message: 18/05/2006, 21h39
  3. [Kylix] Probleme de séparateur avec Kylix2 ?
    Par jeanphy dans le forum EDI
    Réponses: 4
    Dernier message: 10/02/2003, 16h41
  4. Réponses: 12
    Dernier message: 23/10/2002, 11h56
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26

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