Réflexion sur la modélisation
Soit les 3 shémas suivants
Figure A
Figure B
Figure C
Modélisons un centre de formation
Nous aurons donc à gérer:
- des profs
- des groupes d'élèves
- des salles d'enseignement.
On s'en doute, il existera une entité "profs", une entité "groupes" et une entité "salles".
Mais la difficulté est de déterminer quelle sera la nature des relations que ces entités
devront entretenir entre elles.
Hypothèse n°1
Chaque prof a en charge un certain nombre de groupes (toujours les mêmes sur une période donnée), et chaque groupe a toujours cours dans la même salle.
- il faut bien évidemment relier les profs aux groupes (chaque groupe peut avoir au moins un prof ou plusieurs)
- de même, on doit relier les groupes aux salles. On a donc a priori une figure de type A, avec comme entité centrale les groupes.
On peut néanmoins se demander s'il ne faudrait pas ajouter à cela une relation directe entre les profs et les salles,
comme dans la figure B, pour dire « tel prof a cours dans telle salle ». On comprend vite que cela ne servirait qu'à compliquer les choses,
sans apporter la moindre information supplémentaire.
En effet, avec une architecture de type A, on sait déjà que tel prof a en charge telle groupe,
et on sait aussi où chaque groupe a cours. On peut donc facilement retrouver dans quelles classes enseigne chaque prof.
Si j'adopte la figure B, la relation supplémentaire qu'elle introduit signifie qu'on va dorénavant noter ce renseignement indépendamment du cours concerné.
Soit cette information supplémentaire est cohérente avec celle que me donnait la chaîne qui reliait les profs aux classes et les classes aux cours,
et elle n'apporte donc aucune information supplémentaire. Soit elle n'est pas cohérente avec ce qu'on peut reconstituer
au travers de la chaîne profs - classes - salles, et l'administrateur de la base de données va avoir quelques nuits blanches.
Bref, dans les deux cas, ce ne sont que des ennuis et aucun avantage.
Reste la possibilité d'une seule relation tridimensionnelle (figure C). Il faudrait alors informer le système de chaque combinaison prof-classe-salle.
A priori, tout va bien... sauf que nous ouvririons ainsi la possibilité de saisir que le groupe X a cours tantôt en salle 120, tantôt en salle 124, etc.
Or, il était bien stipulé que chaque classe avait toujours cours dans la même salle. Exit donc cette solution.
Hypothèse n°2
Un prof prend en charge un groupe et fait cours dans une salle. Les salles ne sont pas toujours attribuées aux mêmes profs ni aux mêmes groupes.
On reconnaît là la situation où chaque cours rassemble à la fois un prof, un groupe et une salle, sans aucune contrainte ni obligation de régularité.
Autrement dit, il faut que mon modèle autorise à associer à tout moment tout élément des entités profs, groupes et salles : il s'agit évidemment d'une relation du type de la figure C.
Regardons ce qui se passerait si j'optais pour la figure A.
Dans ce cas, je pourrais établir les relations entre profs et groupes et entre groupes et salles.
Mais:
- du fait que chaque prof serait potentiellement associé à plusieurs groupes, chaque groupe à plusieurs profs et à plusieurs salles, et chaque salle à plusieurs groupes,
je n'aurais aucun moyen de reconstituer, à un moment donné, quel prof a cours dans quelle salle
- rajouter une relation directe entre les profs et les salles, avec une figure de type B, ne m'avancerait pas à grand chose : je saurais quels profs ont cours dans quelles salles,
mais pas avec quelle classe (de même, je continuerais à savoir quels groupes ont cours dans quelle salle, mais pas avec quel prof, et quels profs ont cours avec quel
groupe mais pas dans quelle salle)
Hypothèse n°3
Les profs ont en charge certains groupes, qui ont toujours cours dans les mêmes salles. Mais sur certains créneaux horaires,
les salles servent aussi de lieux de permanence pour les profs.
Voilà un cas qui doit être modélisé par la figure B. En effet, dans cette hypothèse, il existe entre les profs et les salles deux relations
de nature tout à fait différente.
D'une part, les profs peuvent accéder à une salle dans le cadre de leur permanence : c'est la relation directe entre
les deux entités.
D'autre part les profs sont affectés à des groupes qui sont eux-mêmes affectés à des salles d'enseignement : c'est la relation indirecte
(des profs aux groupes, et des groupes aux salles).
Opter pour la figure A serait s'interdire de pouvoir enregistrer les permanences.
Opter pour la figure C serait de surcroît ouvrir la porte au fait que chaque classe ne serait pas toujours dans la même salle.
Conclusion
Répétons-le, des trois figures présentées ci-dessus, aucune n'est « juste » ou « fausse » en elle-même. Toutes sont des modélisations pertinentes de certaines situatiosn réelles... et inadaptées à d'autres situations. Je ne peux donc que répéter : il n'y a pas de « truc » qui dispense de réfléchir à chaque problème pour trouver la solution idoine...