|
Publicité ' | ||||||||||||||||||||||||
|
|
#41 |
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Bonsoir diengkals,
Une question : Ce diagramme récapitulant la partie Enseignants vous convient-il ? ![]() N.B. Les entités-types CLASSE et ANNEE figurent deux fois : il n’y a en réalité qu’une seule entité-type CLASSE et une seule entité-type ANNEE. Le dédoublement est une astuce graphique disponible avec PowerAMC, permettant d’éviter d’avoir des liens qui se croisent dans tous les sens (et les yeux par voie de conséquence).
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
20
|
|
|
#42 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Bonjour Fsmrel et Diengkals,
De mon point de vue, il faudrait "éclater" la ternaire Enseignant/Classe/Année en, Classe/Année, d'une part, et Enseignant vers Classe/Année, d'autre part. En effet, il me semble qu'il faut former les couples Année/Classe en premier car des classes peuvent être supprimées d'une année sur l'autre, et d'autres ajoutées. Il faut, en quelque sorte, créer le catalogue des classes pour une année scolaire. C'est l'objet des différents "éclatements" des n,n sur le MCD proposé. Diengkals, tu disposes de plusieurs approches : la balle est dans ton camp.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#43 | ||
|
Membre régulier
![]() kalidou diengDéveloppeur informatique Inscription : janvier 2010 Messages : 319 ![]() |
merci de votre de votre aide:
Citation:
Citation:
ci-joint mon modèle général sans la contrainte de totalité merci d'avance |
||
|
|
00
|
|
|
#44 | |||||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Bonsoir,
Je suppose qu’en fait vous n’y arrivez pas. En tout cas, des outils que je connais, seul l’AGL WinDesign permet de mettre en oeuvre une contrainte de ce genre. => Faites comme moi, complétez graphiquement avec PAINT ou bien signalez la contrainte à l’aide d’un commentaire... De toutes façons, c’est au niveau SQL, en fonction de votre SGBD que vous résoudrez concrètement le problème (cf. ce que j'ai écrit à ce sujet). Citation:
Maintenant, au vu du dernier MCD proposé par l’ami diengkals (appelons « MCD 1 » ce MCD) : 1) Pour une occurrence de l’entité-type CLASSE on a au moins une occurrence de l’entité-type AnneeScolaire_Classe ;Concernant le MCD que j’ai proposé (appelons-le « MCD 2 ») : Si on veut ajouter ne occurrence de l’entité-type CLASSE, simultanément on devra ajouter une occurrence de l’entité-type ANNEE (si elle n’existe pas déjà) ainsi qu’une occurrence de l’association-type enseigner_en_arabe, etc. : on est dans une situation analogue à celle qui se présente avec MCD 1.On en conclut que du point de vue des opérations d’ajout/suppression de classes que vous évoquez, l’éclatement de la ternaire n’apporte rien (et au niveau SQL il est même cause de jointures supplémentaires — du moins en théorie). Cela dit, avec la mise en place d’un catalogue des paires {Classe, Année} préexistant au reste, c'est-à-dire de l’entité-type AnneeScolaire_Classe, MCD 1 est à aménager en ce qui concerne les cardinalités minimales : remplacement de 1 par 0 pour la patte connectant AnneeScolaire_Classe et enseigne_arabe, etc. Ainsi on n’est plus obligé d’insérer une occurrence de l’association-type enseigne_arabe dès qu’on insère une occurrence de l’entité-type CLASSE : Code :
(Noter les cardinalités 1,1 mises entre parenthèses, signifiant que AnneeScolaire_Classe n’est qu’une entité-type faible (déguisement de l'association-type entre CLASSE et ANNEE).)Mais si l'on s’abstient de mettre en place ce catalogue, c'est-à-dire avec MCD 2, on ne perd rien concernant les opérations, il suffit que la cardinalité minimale portée par la patte connectant l’entité-type CLASSE et l’association-type Enseigner_en_arabe soit égale à 0 : Code :
Observation supplémentaire : Si, comme il le fait dans son MCD, diengkals met en oeuvre l’entité-type AnneeScolaire_Classe, alors pour respecter la règle selon laquelle pour une classe et une année données il y a au plus un instituteur enseignant en arabe, etc., la cardinalité maximale portée par la patte connectant l’entité-type AnneeScolaire_Classe et l’association-type enseigne_arabe doit être égale à 1 (en conséquence de quoi la CIF CLASSE X ANNEE -> INSTITUTEUR enseignant en arabe est de facto garantie) : Code :
[AnneeScolaire_Classe]----0,1----(enseigne_arabe)----0,N----[INSTITUTEUR] Après tout cela, et pour conclure, je ne vois pas d’objection à la mise en œuvre de l’entité-type AnneeScolaire_Classe, ne serait-ce qu’au vu du dernier point. @ diengkals Une dernière remarque quand même concernant la cardinalité 0,1 que je viens d'évoquer : Je vous invite à lire ce qu’a écrit CinePhil : Quand faut-il une table associative ? Un MCD dans lequel figure le catalogue suggéré par Richard (entité-type CLASSE_ANNEE) : Le MLD qui en est dérivé : P.-S. Dans votre dernier MCD, vous faites figurer une entité-type SALLE : en l’absence des règles de gestion correspondantes, on ne sait pas formellement quel est son rôle. Même si ça n'est pas la partie la plus palpitante de votre travail, je rappelle à cette occasion que vous devez constituer le corpus exhaustif des règles de gestion (numérotées tant qu’à faire). A défaut, vous me copierez cent fois : « En l’absence des règles de gestion, le MCD relève seulement des arts plastiques »...
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|||||
|
|
10
|
|
|
#45 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Bonjour Fsmrel et Diengkals,
Diengkals, tout est dit par Fsmrel !... notamment, brillamment, sur les arts plastiques... L'entité SALLE va nous entraîner dans la partie "emploi du temps" évoquée précédemment et devant faire l'objet, de mon point de vue, d'une discussion à part entière (disponibilité des enseignants, des salles, spécialisation des salles, etc...). L'histoire des "ternaires" à éclater (ou pas) en "binaire" + "simple" me paraît intéressante, d'un point de vue conceptuel ("binaire"=catalogue, "simple"=choix à partir du catalogue). Le piège étant d'établir des triplets sans contrôle des couples possibles. CinePhil, si tu nous lis, ce serait un thème intéressant pour un futur billet (si j'ai un peu de temps je te préparerai une petite bafouille).
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#46 |
|
Membre régulier
![]() kalidou diengDéveloppeur informatique Inscription : janvier 2010 Messages : 319 ![]() |
bonjour et merci de votre aide ,
j ai pris note de toutes vos suggestions et je viens de mettre à jour mes règles de gestion. j'ai enlevé la salle pour les emploi-temps en attendant de validé cette partie et pour les contrainte de totalité et CIF j attendrais lors de la génération de la base de données voici à nouveau mes règles de gestion : Les règles de gestions : INSCRIPTION1. Un élève s’inscrit dans une seule classe à une année scolaire donnée 2. une classe voit s'inscrire plusieurs élèves à une année scolaire donnée et une année scolaire voit l'inscription de plusieurs élèves dans plusieurs classes 3. Un cycle (primaire, collège ou lycée) contient plusieurs niveaux d’étude (1 année ,2 année …) 4. Un niveau d’étude donné appartient à un seul cycle. 5. Un niveau d’étude peut avoir plusieurs classes. 6. Une classe a un seul niveau d’étude. PARTIE ENSEIGNANT 7. -Nous avons deux type d’enseignant : des instituteurs pour le cycle primaire et les professeurs pour les cycles collège et lycée 8. Un instituteur est un enseignant et un enseignant peut être un instituteur. 9. Un professeur est un enseignant et un enseignant peut être un professeur. 10. Un enseignant est soit un instituteur ou un professeur il ne peut pas être les deux en même temps. 11. un enseignant du primaire peut enseigner dans plusieurs classes la même année scolaire. 12. un enseignant du secondaire peut enseigner plusieurs matières la même année scolaire. 13. une matière peut être enseignée par plusieurs professeurs dans différentes classes dans la même année scolaire. 14. deux professeurs différents ne peuvent pas enseigner en même temps la même matière à la même classe d’élèves mais un professeur peut enseigner dans une classe de la même année deux matières différentes. 15. pour une classe on peut avoir deux Instituteurs par exemple Un instituteur Arabe qui va enseigne toute les matières enseignées en Arabe et un Instituteur français qui va enseigner toutes les matières enseignées en français. 16. On peut avoir aussi un Instituteur qui est bilingue (arabe et français) donc il va jouer le rôle d'enseignant arabe et français EVALUATION DES ELEVES 17. Une année scolaire contient 3 trimestres. 18. pour chaque trimestre l’élève aura deux évaluations, une évaluation en mi-trimestre qui compte 25% et une évaluation vers la fin du semestre qui compte 75%. 19. Un élève peut passer une évaluation d’une matière enseignée dans une classe qu’il est inscrit. 20. une épreuve peut concerner plusieurs matières. Gestion des emploi-temps 21. L’école contient des salles de classe. 22. Pour le cycle de primaire les classes ont des salles fixes pour toute l’année scolaire ; mais pour le cycle secondaire, les classes n’ont pas de salle fixe donc elles varient en fonction des heures d’enseignement de chaque matière pour une classe donnée. 23. Une matière d’une classe est enseignée à une heure donnée dans une classe qui n’est pas occupée. j'ai' ci-joint a nouveau mon modèle voir si ça répond a mes nouvelles regle de gestion sans la dernière partie des régles gestion (gestion emploi du temps que je viens de commencer la redaction ) merci d'avance |
|
|
10
|
|
|
#47 | |||||||||||||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Bonsoir diengkals,
Bel effort de rédaction des règles . Je n’ai pas tout lu car il y a des points que je n’ai pas encore examinés. Une question quand même, car je lis : Règle 14 : [...] un professeur peut enseigner dans une classe de la même année deux matières différentes.Il s’agit bien de deux matières au maximum ? Sinon, en survolant le MCD, je constate que vous avez supprimé l’entité-type associative AnneeScolaire_Classe connectant CLASSE et ANNEE_SCOLAIRE : pas de problème. Je regarderai tout cela de plus près. En attendant, je joins ci-dessous ce que j’ai rédigé avant de lire votre message, donc certains points peuvent être désormais caducs, par exemple ce que je vous raconte à propos du « catalogue » CLASSE_ANNEE (alias AnneeScolaire_Classe). Avant de mettre à niveau mon MCD en fonction de vos mises à jour, voici ce que j’ai écrit : « Jusqu’ici je n’ai pour ma part examiné que la partie « Enseignants ». Voici quelques remarques concernant les élèves en relation avec les classes._______________________ Fin de ce que j’ai écrit avant de lire votre dernier message.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|||||||||||||
|
|
10
|
|
|
#48 | |||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Bonjour Fsmrel,
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||
|
|
00
|
|
|
#49 | ||
|
Membre régulier
![]() kalidou diengDéveloppeur informatique Inscription : janvier 2010 Messages : 319 ![]() |
bonjouet merci de votre aide :
je vais aller doucement avec vos remarques pertinentes et j ai enlevez la partie salle pour trouver une solution convenable de la ou nous somme pour ce qui de votre question : Citation:
Citation:
une question: pour la partie entitté classe et classe_année est ce que une bonne chose d'enlevé la partie classe_année ou je la laisse ? et merci d'avance |
||
|
|
00
|
|
|
#50 | |||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Bonsoir diengkals,
Citation:
14. [...] un professeur peut enseigner dans une classe de la même année plusieurs matières différentes.A la limite, c’est au niveau SQL qu’on pourra éventuellement créer une contrainte fixant le nombre maximum de matières enseignées une année donnée par un professeur à une classe, quitte à modifier ce nombre au besoin (c’est du paramétrage, et imaginez que vous vendiez votre système... Citation:
1) Cas de la CIF Tous les outils ne permettent pas de modéliser les CIF dans le cas des associations de dimension > 2 (dimension = nombre de pattes). Dans ce cas-là, comme je l’ai déjà signalé, vous pouvez attirer l’attention à l’aide d’un commentaire, ou faire comme ci-dessous, surcharger en couleur l’œuvre graphique à l’aide d’un outil comme PAINT : Puis au niveau SQL vous retirez ClasseId de la clé de la table INSCRIRE, clé qui est alors réduite à {EleveId, Annee}. C’est quand même plus simple et plus sûr que d’envisager de garantir la contrainte par programme... Vous pouvez aussi déguiser l’association-type en entité-type, en identifiant INSCRIRE relativement à ELEVE et ANNEE. Dans le style PowerAMC : Là aussi, au niveau SQL la clé de la table INSCRIRE est composée de la paire {EleveId, Annee}, mais sans qu’on ait besoin cette fois-ci d’intervenir manuellement (du moins avec un outil de modélisation connaissant l’identification relative). 2) Cas de la contrainte de totalité » Souvenez-vous de ce que j’ai écrit le 13 novembre dernier : Citation:
Je constate que dans votre MCD l’entité-type CLASSE_ANNEE n’est plus présente : c'est bien comme ça. Etant donné comme on le sait qu’elle n’apporte en fait rien de décisif, inutile de la réintégrer.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|||
|
|
10
|
|
|
#51 |
|
Membre régulier
![]() kalidou diengDéveloppeur informatique Inscription : janvier 2010 Messages : 319 ![]() |
merci bien de votre aide :
pour les contraintes de CIF et de totalité je pense que je vais les gérer au niveau de la création de la base de données. Maintenant je vais passer pour ma partie gestion des emplois du temps pour cela j ai redigé une petite regle de gestion : Gestion des emploi-temps 21. L’école contient des salles de classe. 22. Pour le cycle de primaire les classes ont des salles fixes pour toute l’année scolaire ; mais pour le cycle secondaire, les classes n’ont pas de salle fixe donc elles varient en fonction des heures d’enseignement de chaque matière pour une classe donnée. 23. Une matière d’une classe est enseignée à une heure donnée dans une classe qui n’est pas occupée. toutes vos gestions pour les régles de gestion sont les bienvenues merci d'avance |
|
|
00
|
|
|
#52 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Bonjour Fsmrel et Diengkals,
Citation:
D'autre part, cela permettrait de reconstituer le "catalogue" des classes pour les années passées, sans passer la ternaire par l’entonnoir d'une requête SQL groupée. Mais, effectivement, peut-être est-ce inutile.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#53 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Bonsoir,
Avant de repartir sur la modélisation des horaires et des salles : A propos de la règle 22 : vous parlez de « salles fixes » pour le cycle primaire. Je suppose que l’on doit interpréter cela comme « à usage exclusif », c'est-à-dire qu’une salle affectée à l’usage exclusif d'une classe donnée du cycle primaire ne pourra jamais être « prêtée », même si à tel moment de tel jour de la semaine cette salle est inoccupée (la classe qui l'occupe passant par exemple tel après-midi au stade). C’est bien cela ? A propos de la règle 23 : on pourrait peut-être aménager la règle ainsi : Dans le cas du cycle secondaire, une matière d’une classe est enseignée selon un horaire donné dans une salle qui lui est alors réservée exclusivement, le temps du cours. Il est important de préciser la structure du type HORAIRE, car on aura vraisemblablement à en faire une table du genre : Code :
Cela vous convient-il ? Sinon quelle est votre perception de la chose ? A propos des CIF (encore...) Le fait d’évacuer l’entité-type CLASSE_ANNEE fait que les associations-types Enseigner_en_arabe et Enseigner_en_français sont porteuses de CIF symbolisées ci-dessous par des flèches rouges (cf. le message #40) : Une fois de plus, si lors de l’étape de production du MLD l’outil produit les tables Enseigner_en_arabe et Enseigner_en_français sans réduire des clés : Alors ces clés devront être réduites manuellement (évacuation de l’attribut EnseignantId) : KEY {ClasseId, Annee}Je rappelle en passant que le MLD correspondant est le suivant : Comme dans le cas des élèves qui sont inscrits dans telle classe pour telle année scolaire, et pour ne pas avoir à faire le ménage à la main, vous pouvez préférer transformer les associations-types en entités-types (tout en y rapatriant l’attribut Annee, l’occasion faisant le larron) : Le MLD correspondant est évidemment le même que ci-dessus. A suivre. On en a déjà largement débattu, on a vu que ce catalogue n’a pas de valeur ajoutée décisive, et ça été tranché. Diengkals a fait son choix : on ne va pas lui faire faire du yoyo en permanence.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
||||
|
|
10
|
|
|
#54 |
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
@ Richard_35
Notez qu’avec la modification que vous avez apportée à votre MCD, un élève peut être inscrit la même année dans plusieurs classes. Par ailleurs au niveau MLD, la table AnneeScolaire_Classe comportera deux fois l’attribut IdAnneeScolaire et deux fois l’attribut IdClasse.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
10
|
|
|
#55 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Citation:
Eleve_AnneeScolaire_Classe(#IdEleve, #IdAnneeScolaire, #IdClasse, ...)et non pas : Eleve_AnneeScolaire_Classe(#IdEleve, #IdAnneeScolaire, #IdClasse, ...)
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#56 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Citation:
Soit K La clé de la table Inscription issue de l’association-type Inscription lors de la dérivation du MCD en MLD. Tous les ouvrages traitant de Merise enseignent que lors de la dérivation du MCD en MLD, K hérite d’une part de l’identifiant de l’entité-type Eleve et d’autre part de l’identifiant de l’entité-type AnneeScolaire_Classe, parce que les cardinalités maximales sont N de chaque côté de l’association-type. Etant donné que l’identifiant de l’entité-type AnneeScolaire_Classe est composé des attributs IdClasse et IdAnneeScolaire, il s’ensuit que l’attribut IdClasse appartient bien à K. Exemple avec PowerAMC : MCD MLD produit par l’AGL Pour arriver à K = {ClasseId, Annee}, il faut faire référence à une entité-type CLASSE d’une part et une entité-type ANNEE d’autre part et, par exemple, mettre en œuvre une CIF (flèche rouge ci-dessous). On ne va quand même pas passer la nuit là-dessus, le cas est traité et entériné depuis que Merise existe.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
|
20
|
|
|
#57 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 857 ![]() |
Merci pour la démonstration, brillante, comme d'habitude
.Néanmoins, Eleve_AnneeScolaire_Classe(#IdEleve, #IdAnneeScolaire, #IdClasse, ...) me paraît assez "élégant" pour le cas envisagé bien que, sans doute, hors normes .Mais, c'est vrai, et c'est le plus important : Citation:
Citation:
.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#58 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Citation:
Dans le cadre de la théorie relationnelle, la seule dépendance fonctionnelle non triviale qui existe en conséquence pour la relvar (variable relationnelle) Eleve_AnneeScolaire_Classe est la suivante. {IdEleve, dAnneeScolaire} -> {IdClasse}Mathématiquement parlant, Eleve_AnneeScolaire_Classe respecte en fait la 6NF et on ne peut pas faire mieux : ça tue le débat.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
|
|
|
10
|
|
|
#59 | |||
|
Membre régulier
![]() kalidou diengDéveloppeur informatique Inscription : janvier 2010 Messages : 319 ![]() |
bonjour Richard_35 et fsmrel et merci beaucoup de votre aide: pour ce qui est de l'entité classe et classe_année, je suis entrain de revoir vos posts précédents pour mieux comprendre et voir ce qui m arrangerait .
à Citation:
Citation:
pour les horaires cette partie me convient car pour l'heure d'enseignement d'une matiere on aura besoin de la date (le jour) plus le début et la fin du cours Citation:
|
|||
|
|
00
|
|
|
#60 | ||||||||||||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 639 ![]() |
Bonsoir,
A propos des horaires Vous avez enrichi votre MCD d’un attribut Horaire figurant dans l’association-type ENSEIGNER : Au niveau du MLD, la table ENSEIGNER qui en est inférée a la structure suivante : Mais on est bien d’accord qu’on baigne dans un univers quantique « comaque » comme dirait Raoul Volfoni... En effet, Des situations loufoques comme celles-ci deviennent légales : Code :
Tant qu’à être quantiquement correct, toujours au même moment, M. Harpo donne par ailleurs un cours de maths et une leçon de harpe aux élèves de 4eB ; Et pour faire bonne mesure, toujours au même moment, M. Chico donne lui aussi un cours de maths plus une leçon de piano aux élèves de 5eA ; Etc. Pauvres élèves... Bon, d’accord, on a déjà vu qu’il y avait une CIF empêchant que deux professeurs donnent le même cours aux élèves d’une même classe (cf. message #41) : Quoi qu'il en soit, traduisons la CIF sous forme de règle : Ra - Pour une année scolaire donnée, une classe donnée n’étudie une matière donnée qu’avec seul un professeur.En observant qu’il existe aussi maintenant la règle : Rb - Pour une année scolaire donnée, une classe donnée n’étudie une matière donnée que durant un seul horaire.Mais les horaires viennent ficher la patouille, tout est loin d’être résolu, car seuls sont refusés au motif de la règle Ra les ajouts correspondant aux lignes barrées (on suppose que l’ordre des lignes du tableau ci-dessous reflète le moment auquel ont été effectués les ajouts) : Code :
Rc - Pour une année scolaire donnée, durant un horaire donné, un professeur donné n’enseigne qu’une matière.N.B. La règle Rf n’a en fait pas besoin d’être formulée, puisqu’elle est la conséquence logique des règles Ra et Re. Comme diraient finement Ullman et Fagin : {Ra, Re} ⊨ Rf. En traduisant les règles sous la forme de dépendances fonctionnelles : DF1 : {Annee, ClasseId, MatiereId} -> {EnseignantId, Horaire}Ces DF ne sont pas triviales, leur déterminant (partie gauche) est irréductible, et par ailleurs l’ensemble des attributs qui en sont éléments représente l’en-tête de la table : chaque déterminant est donc clé. Au niveau MLD, la structure de la table ENSEIGNER reste la même, mais elle comporte désormais trois clés conformes à la théorie relationnelle : => On est désormais prémuni contre les situations loufoques. Représentation graphique : Citation:
La représentation de la CIF CLASSE X MATIERE X ANNEE -> PROFESSEUR (c'est-à-dire la règle Ra) s'est compliquée, mais c'est à cause de la présence de la patte connectant l’entité-type HORAIRE et l’association-type ENSEIGNER alors que cette entité-type n’est pas partie prenante dans la CIF. ENSEIGNER représente la « portée » de la CIF et PROFESSEUR en représente la « cible » (flèche rouge), tandis que les entités-types MATIERE, CLASSE et ANNEE en représentent le « pivot » symbolisé par les traits pleins en rouge branchant ces trois entités-types sur la contrainte (CIFa dans l’exemple). L’arc en pointillés sert à brancher la portée sur la contrainte. A titre d’exercice (mais je ne le ferai pas tous les jours, c’est plutôt pénible !) traduisons les autres règles elles aussi sous forme de CIF dans le MCD. Pour traduire la règle Rb : Pour traduire la règle Rc : Pour traduire la règle Rd : Pour traduire la règle Re : Pour traduire la règle Rf : Je dirais que l’expression des CIF est quand même tellement plus simple au stade du MLD (mise en œuvre des clés inférées des règles)... Je suppose que pour votre part vous vous contenterez à juste titre d’agrémenter votre MCD d’un commentaire attaché à ENSEIGNER, signifiant que les contraintes seront traitées au stade MLD, mais n’oubliez quand même pas d’enrichir le corpus des règles de gestion des données... Quoi qu’il en soit, le but de la manœuvre était de montrer les conséquences de l’ajout que vous avez fait de l’attribut Horaire dans l’association-type ENSEIGNER : on peut dire que ça n’est pas anodin ! Des CIF dans tous les sens au niveau conceptuel, des clés supplémentaires au niveau du MLD, tout cela pour éviter des effets quantiques ou l’asile, au choix... A propos des salles Ne va-t-on pas carrément sombrer dans la folie en prenant en compte les salles où les malheureux élèves pourront se demander ce qui va encore leur arriver ? Pas de panique ! On retrouve en fait au niveau logique le MLD figurant dans le message #47, à ceci près qu’entre-temps l’horaire a fait l’objet d’une entité-type dans le MCD, donc d’une table au stade MLD. La transformation à opérer est simple : Je vous laisse faire la rétro-conception du MLD en MCD, mais je suppose une fois de plus qu’au lieu de transpirer sur la représentation graphique des CIF, vous vous contenterez d’agrémenter votre MCD d’un commentaire signifiant que les contraintes seront traitées au stade MLD sous forme de clés, mais là encore n’oubliez pas d’enrichir le corpus des règles de gestion des données...
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) 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 (Bonne lecture !) |
||||||||||||
|
|
10
|
Copyright © 2000-2013 - www.developpez.com