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 :

Gestion scolaire première partie


Sujet :

Schéma

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Gestion scolaire première partie
    Bonjour tout le monde.
    Dans le cadre d'un projet pour les élèves on veut créer une application de gestion scolaire en ligne.
    Pour le début on s’intéresse juste à :
    la répartition des élèves dans des classes
    quels sont les matières pour un niveau
    quels sont les profs pour une classe et pour quel cours
    voici donc quelques règles de gestion

    ##############################################################################
    Pour une année scolaire
    Un ELEVE appartient à une CLASSE : une CLASSE contient plusieurs ELEVES
    Un ELEVE appartient à 0 ou un Groupe : un Groupe contient plusieurs ELEVES (de différentes classes), les groupes sont créés pour les cours optionnels
    Une CLASSE appartient à une NIVEAU : un NIVEAU contient plusieurs CLASSES
    Un Groupe appartient à une NIVEAU : un NIVEAU contient 0 ou plusieurs Groupes
    Un PROFESSEUR est spécialisé dans plusieurs MATIERE : une MATIERE est la spécialité de plusieurs PROFESSEURS
    Une MATIERE concerne plusieurs NIVEAU : un NIVEAU est concerné par plusieurs MATIERES
    Un coefficient est attribué à la MATIERE selon le NIVEAU
    Un PROFESSEUR enseigne plusieurs CLASSES : une CLASSE est enseignée par plusieurs PROFESSEURS
    Un PROFESSEUR enseigne 0 ou plusieurs Groupes : un Groupe est enseigné par un PROFESSEUR
    L’année scolaire est formé de trois PERIODES (trimestre 1, trimestre 2 et trimestre 3)
    Une EVALUATION concerne un NIVEAU, une MATIERE et une PERIODE données et elle est de type (orale, contrôle, sysnthèse..)
    Un EXAMEN appartient à une EVALUATION : une EVALUATION contient un EXAMEN
    Un ELEVE passe un EXAMEN par EVALUATION, une note est attribuée à l’élève dans cet examen
    #####################################################################

    voici mon MCD

    https://my.vertabelo.com/public-mode...=4138&zoom=0.9

    est ce qu'on est dans le bon chemin? y'at'il des erreurs à corriger?
    faut il simplifier le nombres des entités?
    avez vous des suggestions?

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



    Un 1er lot de remarques.


    Votre diagramme n’est pas un MCD, mais un MLD (présence des clés étrangères). Vous présentez les concepts en français, mais dans le diagramme ils sont en anglais : c’est moyen, car vous nous obligez à utiliser deux termes pour un seul concept.


    Clés alternatives

    Vous écrivez que pour une année scolaire donnée, un élève se trouve dans une classe, sous-entendu : une et une seule classe. En l’état, votre table StudentHasClass ne permet pas de garantir cette contrainte, en effet il manque une clé alternative (alternate key) : {StudentId, SchoolYearId}. A défaut, rien n’empêche que, dans la base de données, un élève soit dans deux classes en même temps. Par ailleurs l’attribut StudentHasClassId est inutile, il représente une surcharge pondérale, personne ne plaindra sa disparition si on l’élimine, et c’est la paire {StudentId, SchoolYearId} qui retrouvera alors son rôle naturel et légitime de clé primaire. A noter que, mutatis mutandis, StartDate doit faire l’objet d’une clé alternative de la table SchoolYear (cela vaut pour EndDate), sinon pour une année scolaire donnée, on pourrait se retrouver avec différentes valeurs de SchoolYearId (horresco referens !)

    La table StudentHasClass n’est évidemment pas la seule concernée par la présence superflue de prétendues clés primaires quand les clés authentiques sont absentes.


    A quoi correspond la table Contact ? Qu’est-ce qu’un contact ? Quel rôle joue-t-il par rapport aux autres acteurs du système (école, area, professeur, élève) ?

    Table Area : de quoi s’agit-il ?


    Citation Envoyé par hdh7881
    Un Groupe appartient à une NIVEAU : un NIVEAU contient 0 ou plusieurs Groupes
    Quelle table héberge les groupes ?


    Citation Envoyé par hdh7881
    Une CLASSE appartient à une NIVEAU
    Dans votre diagramme, la table Class fait facultativement référence à un niveau. Qu’en est-il exactement ?


    Pour mémoire, à chaque fois que vous permettez qu’une clé étrangère soit marquée NULL, vous enfreignez la théorie relationnelle, et le bonhomme NULL ne manquera pas de ficher la zoubia dans 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.

Discussions similaires

  1. Strstr -> première partie d'une chaine
    Par Dsphinx dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2007, 13h07
  2. fonction stockée : récupérer la première partie d'un email
    Par mikebranque dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/02/2007, 19h52

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