Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2010, 16h56   #1
Candidat au titre de Membre du Club
 
Femme
Étudiant
Inscription : décembre 2010
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 52
Points : 12
Points : 12
Par défaut problème - Compréhension - Modélisation Base de données

Bonjour, bonjour,

Je suis nouvelle dans le coin et je suis actuellement entrain de m'auto-former sur la création des BD.

Je suis tombée sur ce superbe cours : http://mhubiche.developpez.com/Access/cours/bases/. Les exercices qui ys ont proposés sont intéressants.

Néanmoins, je n'ai pas compris la solution de l'exercice MEA2 qui a été proposée ici : http://mhubiche.developpez.com/Acces...#LAnnexe%20A-2

Et plus particulièrement la relation entre la table Matériel et la table Composer.

pouvez-vs m'aider s'il vous plait ? Merci
Mélodie_et_rythmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 17h33   #2
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Bonjour,

si tu as compris la présence de empIDResp(FK) dans la table Employe, tu as presque compris cette relation.

La relation de Employe à elle-même correspond au cas suivant :
- Un employé peut superviser plusieurs autres employés
- Un employé ne peut être supervisé que par un seul autre employé
C'est donc une relation 1, n.

Or dans le cas du matériel, la relation doit prendre en compte le cas suivant :
- Un matériel peut être composé de plusieurs autres matériels
- Un matériel peut composer plusieurs autres matériels
C'est donc une relation n, n.

Par conséquent, pour représenter cette relation, tu as besoin d'une table supplémentaire (comme entre Employe et Intervention), mais cette fois entre Materiel et elle-même, d'où les deux flèches.

A ta dispo si je ne suis pas assez clair.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 14/12/2010, 19h04   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonjour,

Citation:
Envoyé par Mélodie_et_rythmes Voir le message
Et plus particulièrement la relation entre la table Matériel et la table Composer.
il y a un exemple très similaire ici avec des pièces d'avion.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 15/12/2010, 21h10   #4
Candidat au titre de Membre du Club
 
Femme
Étudiant
Inscription : décembre 2010
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 52
Points : 12
Points : 12
Superbe Merci à vous deux pour votre aide.

Par contre, il y une autre chose que je n'ai pas comprise dans l'exercice.

Comment modéliser la contrainte qui dit qu'une intervention chez un client peut-être discontinue ?

Pour moi cela revient à dire que pour une intervention X, on doit pouvoir avoir plusieurs lignes avec différentes dates.

Imaginons qu'une intervention X ait duré 3 jours.
Elle a commencé le 15/04/2010, s'est poursuivie le 16, ensuite a té interrompue, weekend oblige. Puis elle reprend et se termine le 19.

Comment modéliser cela ?
J'ai vu que dans la table "réaliser", il y avait un champ PlanDate mais je ne vois pas vraiment comment cela résout le souci...
Mélodie_et_rythmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 21h43   #5
Candidat au titre de Membre du Club
 
Femme
Étudiant
Inscription : décembre 2010
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 52
Points : 12
Points : 12
Citation:
Envoyé par spaiku Voir le message
Bonjour,

si tu as compris la présence de empIDResp(FK) dans la table Employe, tu as presque compris cette relation.

La relation de Employe à elle-même correspond au cas suivant :
- Un employé peut superviser plusieurs autres employés
- Un employé ne peut être supervisé que par un seul autre employé
C'est donc une relation 1, n.

Or dans le cas du matériel, la relation doit prendre en compte le cas suivant :
- Un matériel peut être composé de plusieurs autres matériels
- Un matériel peut composer plusieurs autres matériels
C'est donc une relation n, n.

Par conséquent, pour représenter cette relation, tu as besoin d'une table supplémentaire (comme entre Employe et Intervention), mais cette fois entre Materiel et elle-même, d'où les deux flèches.

A ta dispo si je ne suis pas assez clair.
J'ai encore une petite question à te poser si tu le permet.
J'ai essayé de traduire l'exercice dans Access.
En voulant créer les deux relations entre Matériel et Composé_De, Access me génère une deuxième table : Matériel 1 et la relie à la table Composé_De.

C'est normal ?

Merci
Mélodie_et_rythmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 21h48   #6
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonsoir,

je rappelle ce que dit l'exercice:

Citation:
Une intervention peut nécessiter plusieurs jours, et la présence de plusieurs employés. Il est aussi possible qu'une intervention ne nécessite la présence que d'un seul employé pour une seule journée. La présence de mes employés pour une intervention peut-être discontinue (vacances, week-end,...).
ce qui n'est pas la même chose que:
Citation:
Envoyé par Mélodie_et_rythmes
...qu'une intervention chez un client peut-être discontinue
Prenons une intervention entre le 10/12/2010 et le 15/12/2010.
Dans cette intervention, l'employé n°1 réalise ses tâches tous les jours prévus c.a.d les 10, 11, 12, 13, 14 et 15/12/2010
L'employé n°2 réalise ses tâches uniquement les 10, 11, 12 et 15/12/2010.
L'employé n°3 réalise les tâches en remplacement de l'employé n°2 les 13 et 14/12/2010:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Realiser:
InterventionID    EmployeID    PlanDate
       1             1         10/12/2010
       1             1         11/12/2010
       1             1         12/12/2010
       1             1         13/12/2010
       1             1         14/12/2010
       1             1         15/12/2010
       1             2         10/12/2010
       1             2         11/12/2010
       1             2         12/12/2010
       1             2         15/12/2010
       1             3         13/12/2010
       1             3         14/12/2010
la seule contrainte à vérifier est:
- DateDebutIntervention<= DatePlan <= DateFinIntervention

problème: la clé primaire de la table Realiser est définie sur le couple {InterventionID, EmployeID}, donc dans une intervention, un employé ne peut participer qu'une seule journée

Conclusion: soit un truc m'a échappé dans les règles de gestion, soit il y a une boulette dans le schéma

Ton avis ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 21h53   #7
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
Citation:
Envoyé par Mélodie_et_rythmes Voir le message
En voulant créer les deux relations entre Matériel et Composé_De, Access me génère une deuxième table : Matériel 1 et la relie à la table Composé_De.
C'est pas logique mais dans Access il faut effectivement ajouter une deuxième fois la table Materiel.

Materiel-1-----∞-Composer-∞------1-Materiel_1

Note bien que ce n'est qu'une (mauvaise) représentation graphique de la fenêtre des relations d'Access et que dans les faits il y a bien 2 relations avec la même table Materiel.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2010, 22h26   #8
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Effectivement, je comprends le problème de la même manière que toi. Judicieuse remarque dont il faudrait faire part à Maxence Hubiche.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 21h40   #9
Candidat au titre de Membre du Club
 
Femme
Étudiant
Inscription : décembre 2010
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 52
Points : 12
Points : 12
Citation:
Envoyé par f-leb Voir le message
bonsoir,

je rappelle ce que dit l'exercice:



ce qui n'est pas la même chose que:


Prenons une intervention entre le 10/12/2010 et le 15/12/2010.
Dans cette intervention, l'employé n°1 réalise ses tâches tous les jours prévus c.a.d les 10, 11, 12, 13, 14 et 15/12/2010
L'employé n°2 réalise ses tâches uniquement les 10, 11, 12 et 15/12/2010.
L'employé n°3 réalise les tâches en remplacement de l'employé n°2 les 13 et 14/12/2010:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Realiser:
InterventionID    EmployeID    PlanDate
       1             1         10/12/2010
       1             1         11/12/2010
       1             1         12/12/2010
       1             1         13/12/2010
       1             1         14/12/2010
       1             1         15/12/2010
       1             2         10/12/2010
       1             2         11/12/2010
       1             2         12/12/2010
       1             2         15/12/2010
       1             3         13/12/2010
       1             3         14/12/2010
la seule contrainte à vérifier est:
- DateDebutIntervention<= DatePlan <= DateFinIntervention

problème: la clé primaire de la table Realiser est définie sur le couple {InterventionID, EmployeID}, donc dans une intervention, un employé ne peut participer qu'une seule journée

Conclusion: soit un truc m'a échappé dans les règles de gestion, soit il y a une boulette dans le schéma

Ton avis ?
Bonjour et encore un grand merci pour vos réponses.
Je ne sais pas quoi dire si ce n'est que je partage le même avis que toi.
Du fait que InterventionID, EmployeID sont les clés primaires de la table réaliser, il n'est pas possible de gérer les éventuelles redondances...

Peut-être faut-il rajouter une table planning ?
Mélodie_et_rythmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 11h43   #10
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
Bonjour,

réponse un peu tardive

On peut simplement faire rentrer PlanDate dans la clé primaire de la table Realiser :

Realiser(#InterventionID, #EmployeID, PlanDate)
(Clé primaire soulignée, clé étrangère précédée d’un #)


Citation:
Envoyé par Mélodie_et_rythmes
Peut-être faut-il rajouter une table planning ?
Planning(PlanDate)

Puis on rajoute : Realiser-∞-------1-Planning
Realiser(#InterventionID, #EmployeID, #PlanDate)

Pas obligatoire ni indispensable, mais pratique pour créer des calendriers/plannings sans code VBA.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/12/2010, 11h58   #11
Candidat au titre de Membre du Club
 
Femme
Étudiant
Inscription : décembre 2010
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 52
Points : 12
Points : 12
Bonjour
Non,non il n'est jamais trop tard ! Même que le souci est jours d'actualité

Donc, créer une table planning est la seule solution pour satisfaire la condition de discontinuité de l'intervention ?

Cordialement.


Citation:
Envoyé par f-leb Voir le message
Bonjour,

réponse un peu tardive

On peut simplement faire rentrer PlanDate dans la clé primaire de la table Realiser :

Realiser(#InterventionID, #EmployeID, PlanDate)
(Clé primaire soulignée, clé étrangère précédée d’un #)



Planning(PlanDate)

Puis on rajoute : Realiser-∞-------1-Planning
Realiser(#InterventionID, #EmployeID, #PlanDate)

Pas obligatoire ni indispensable, mais pratique pour créer des calendriers/plannings sans code VBA.
Mélodie_et_rythmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 15h44   #12
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Bonjour,

comme l'a dit f-leb à propos de la table planning :
Citation:
Pas obligatoire ni indispensable
Donc non, ce n'est pas la seule solution Tu peux te contenter d'ajouter la date dans la clé primaire, comme l'a judicieusement proposé f-leb. Ca te permettra de faire travailler la même personne sur la même intervention et sur plusieurs jours différents (successifs ou pas), mais tu ne pourras pas créer de doublon (plusieurs fois la même personne sur la même intervention et le même jour).
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2010, 17h28   #13
Candidat au titre de Membre du Club
 
Femme
Étudiant
Inscription : décembre 2010
Messages : 52
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2010
Messages : 52
Points : 12
Points : 12
Merci à toutes et à tous pour votre aide
Mélodie_et_rythmes est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h49.


 
 
 
 
Partenaires

Hébergement Web