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

Modélisation Discussion :

Relations entre tables [AC-2010]


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 28
    Points : 23
    Points
    23
    Par défaut Relations entre tables
    J'ai deux tables, la première table : ILOTS et la 2ème table : POSTES

    un ILOT peut contenir plusieurs postes.
    Un poste appartient à un seul ilot.

    Mais le problème, c'est que: par exemple, dans ILOT 1 : j'ai Nom poste: POSTE1 , OBjectif POSTE :350
    dans ILOT 2 : j'ai, Nom poste : POSTE 1, Objectif POSTE: 400
    comment gérer cela?
    Nom : aaaaaaa.PNG
Affichages : 263
Taille : 4,8 Ko
    merci

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 134
    Points : 84 790
    Points
    84 790
    Billets dans le blog
    15
    Par défaut


    Voici une proposition prenant en compte votre relation un à plusieurs :

    Nom : modèle.png
Affichages : 304
Taille : 44,7 Ko
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 28
    Points : 23
    Points
    23
    Par défaut Réponse
    NOM_ILOT est unique, donc il doit être obligatoirement clé primaire.
    Dans la table POSTES, le NOM_POSTE doit être unique pour un ILOT, et non unique pour plusieurs ilots

  4. #4
    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,



    Citation Envoyé par kabbaj.med
    NOM_ILOT est unique, donc il doit être obligatoirement clé primaire.
    Non. Une clé candidate garantissant l’unicité, l’attribut NOM_ILOT fait donc l’objet d’une clé candidate, nuance !


    Dans le digramme de milkoseck, la table POSTE est dotée de deux clés candidates : {idPoste} et {nomPoste}.

    Un clé primaire est une des clés candidates de la table, on la choisit de préférence parce qu’elle est non significative et invariante. Dans ces conditions, {idPoste} étant seule à remplir ces conditions, c’est elle qui doit jouer le rôle de clé primaire (concept du reste évacué de la théorie relationnelle qui ne conserve que celui de clé candidate), tandis que {nomPoste} devient clé alternative. Tout ceci est transparent pour l’utilisateur de la base de données.


    (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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    le même problème réapparaît.
    Il faut que:
    Pour chaque NOM_ILOT, on a plusieurs NOM_POSTE
    Mais le NOM_POSTE est unique pour un seul NOM_ILOT.
    Si je saisi un nouvel Ilot, il faut que le NOM_POSTE sera enregistré
    Le NOM_POSTE est unique pour un seul NOM_ILOT

  6. #6
    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
    Citation Envoyé par kabbaj.med
    Pour chaque NOM_ILOT, on a plusieurs NOM_POSTE
    Mais le NOM_POSTE est unique pour un seul NOM_ILOT.
    « NOM_POSTE est unique pour un seul NOM_ILOT » : cette formulation est bizarre. Il faudrait que vous l’expliquiez.



    Citation Envoyé par kabbaj.med
    Mais le problème, c'est que: par exemple,
    dans ILOT 1 : j'ai Nom poste : POSTE 1, Objectif POSTE :350
    dans ILOT 2 : j'ai Nom poste : POSTE 1, Objectif POSTE: 400
    POSTE 1 est donc en relation à la fois avec ILOT 1 et ILOT 2. Dans ces conditions, les règles deviennent les suivantes :

    Un îlot peut être associé à plusieurs postes ;

    Un poste peut être associé à plusieurs îlots ;

    Pour un îlot et un poste donnés il y a un seul objectif.


    Le diagramme devient :





    Bien entendu, {nomPoste} est clé alternative de la table POSTE et {nomIlot} est clé alternative de la table ILOT.
    (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.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    je vais t'expliquer avec un autre exemple pour mieux comprendre:

    On a 3 tables: VILLE, ECOLE, CLASSE.

    les tables sont présentées comme suit:

    VILLE(NOM_VILLE)

    ECOLE(NOM_ECOLE;NB_ETUDIANTS)

    CLASSE(NOM_CLASSE,NB_ETUDIANTS_CLASSE)

    On a :
    - Le nom de la ville est unique.
    - Le nom de l'école est unique au sein de la ville ( on ne peut pas trouver deux écoles portant le même nom dans la même ville, par contre, on peut trouver le même nom de l'école dans une autre ville).

    -le nom de la classe est unique au sein de l'école, au sein de la ville aussi ( mais on peut trouver le même nom de classe dans une école dans une autre ville)
    - le nombre des étudiants dans l'école est la somme des étudiants des classes qu'ils appartiennent.

    En attente d'une réponse.
    Merci de me joindre la réponse dans un fichier MDB

  8. #8
    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,


    La situation n’a rien à voir avec la précédente. Quoi qu’il en soit, le diagramme ACCESS correspondant à votre dernier exemple est le suivant :






    Citation Envoyé par kabbaj.med
    le nombre des étudiants dans l'école est la somme des étudiants des classes qu'ils appartiennent.
    Donc l’attribut NB_ETUDIANTS de votre table ECOLE provoque une redondance. La redondance étant l’ennemie des bases de données, cet attribut NB_ETUDIANTS doit disparaître de la table ECOLE.

    Pour connaître le nombre d’étudiants pour chaque école, une requête suffit :

    
    SELECT NomVille, NomEcole, SUM(NbEtudiantsClasse) AS NbEtudiantsEcole
    FROM   CLASSE
    GROUP BY NomVille, NomEcole ;
    
    
    Pour étudier tout ça, vous pouvez exécuter la macro GO du fichier joint. Cette macro permet de créer les tables et les peupler.
    (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. Access me change mes relations entre tables
    Par karimspace dans le forum Access
    Réponses: 14
    Dernier message: 29/03/2006, 09h57
  2. Relation entre tables dans bdd différentes
    Par Mandotnet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/03/2006, 08h03
  3. Les relations entre tables
    Par sheira dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 20/03/2006, 15h03
  4. Récupération des relations entre tables
    Par Themacleod1980 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h34
  5. relations entre tables
    Par ilyassou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/11/2005, 07h48

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