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 :

Aide sur la modélisation


Sujet :

Schéma

  1. #21
    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 arguitxu,


    Je reviens sur le modèle que j’ai proposé le 03/05/2013. Il y manque un lien entre SERVICE et TYPE_INTERVENTION : en effet, vous aviez précisé :
    Citation Envoyé par arguitxu Voir le message
    Un type d'intervention ne peut être pratiqué que par un seul service (spécialité).
    Comme par ailleurs à la question :
    Une activité peut-elle être pratiquée par plus d’un service ?
    Vous avez répondu affirmativement, et qu’à la question :
    Un service peut-il pratiquer plus d’une activité ?
    Vous avez répondu négativement, il s’ensuit que les types d’intervention pour une activité sont connus par le biais des types d’intervention pratiqués par les services liés à cette activité, en conséquence de quoi l’association ACTIVITE - TYPE_INTERVENTION est inférable, donc à ne pas matérialiser (la matérialisation de l'association se traduirait dans le modèle ci-dessous, par l'implication de la table TYPE_INTERVENTION dans ce qu’on appelle un viol de la troisième forme normale, horresco referens !)

    Modélisation correspondante :



    A propos des quotas.

    Je vous cite à nouveau :

    Les salles de Chirurgie Ambulatoire sont disponibles en première intention à la journée. Elles sont dédiées en première intention à une activité. Chaque activité a donc un cota de salles libres par journée et par semaine (ex : lundi : 5 salles, mercredi : 4 salles et jeudi : 5 salles pour l’activité Odontologie).
    Il faut prendre en compte les quotas dans le modèle, sinon comment vérifier qu’un service ne dépasse pas ceux qu’on lui a alloués ?



    A propos des affectations.

    La table AFFECTATION que j’ai précédemment définie se justifie si les secrétaires des services demandeurs effectuent des réservations de place avant même de programmer les interventions. En revanche, si ces réservations « anticipées » n’ont pas lieu d’être, c'est-à-dire si les réservations ne se font qu’au moment de la programmation des interventions, cette table peut ne pas être matérialisée.

    Scénario 1 : effectivement, on préfère ne pas conserver la table AFFECTATION :



    Remarques :

    1. Le service (attribut ServiceId) ne figure pas dans la table INTERVENTION : en effet, du fait de la présence de l’attribut TypeInterventionId, il y aurait viol de la troisième forme normale (3NF) s’il était présent. On connaît le service via le type d’intervention (jointure naturelle de TYPE_INTERVENTION et INTERVENTION).

    2. Il ne faudra pas oublier de s’assurer que dans la table INTERVENTION, les attributs InterventionDate et JourId font bien référence au même jour de la semaine.


    Scénario 2 : on préfère conserver la table AFFECTATION :



    Remarques :

    1. Si vous préférez nommer autrement la table AFFECTATION, n’hésitez pas.

    2. Eu égard à la règle : « Pour un jour donné, une salle (place) donnée est affectée à seul service », la clé de la table AFFECTATION est réduite à la paire {PlaceId, JourId}. En cela, je fais référence à votre tout 1er message.

    Toutefois, vous avez aussi écrit :
    Citation Envoyé par arguitxu Voir le message
    Une salle est réservé pour la journée, mais cela pourra etre modifié si c'est vraiment nécessaire par le secrétariat ambulatoire qui aura pratiquement tous les droits dans l'application.
    En l’occurrence il y a ambiguïté : on ne sait pas si voulez signifier qu’une réservation peut être annulée ou bien si le secrétariat ambulatoire décide que le même jour, il pourra y avoir dans la même salle des interventions de services demandeurs différents : veuillez en l'occurrence être précis et exhaustif...

    3. Il ne faudra pas oublier de s’assurer que dans la table INTERVENTION, les attributs InterventionDate et JourId font bien référence au même jour de la semaine.

    4. Toujours pour la table INTERVENTION, il faudra s’assurer que le service déterminé par le type d’intervention mentionné par l’intervention est identique à celui qui est déterminé par l’affectation mentionnée par l’intervention.


    A propos des utilisateurs.

    Citation Envoyé par arguitxu Voir le message
    la table utilisateur doit permettre d'affecter des droits sur l'application, ex: un service donné pourra planifier des intervention, visualiser son planning alors qu'un autre pourra annuler, réserver et modifier le planning des autres services
    Je suppose que lorsque vous dites « qu’un autre pourra annuler réserver et modifier le planning des autres services », cet « autre » n’est pas un utilisateur d’une UF (service) mais seulement un utilisateur du secrétariat du service de chirurgie ambulatoire ?


    Par ailleurs, j’ai bien pris note de ceci :

    Citation Envoyé par arguitxu Voir le message
    Une fois la planification de l’intervention effectuée, aucune modification ne peut être apportée par le secrétariat du service demandeur. Une demande doit être faite par téléphone ou mail au service de Chirurgie Ambulatoire.
    Je prends note qu’il n’est pas possible de modifier une intervention, à ceci près que si je conçois que le service de Chirurgie Ambulatoire puisse changer l’heure d’une intervention (par exemple parce qu’il y a une urgence ou que le patient ne peut être opéré pour une raison quelconque à l’heure prévue), je suppose que ce service ne peut pas remplacer une intervention concernant le service S1 par une intervention concernant le service S2... Qu’en est-il exactement ?

    Dans le cas du 2e scénario ci-dessus, en ce qui concerne l’affectation des places (table AFFECTATION), donc avant qu’’on ne crée les interventions, quelles sont les règles du jeu au sujet des modifications ? Seul le service de Chirurgie Ambulatoire est habilité à toucher à quoi que ce soit ? Sinon, si Jojo qui n’est pas du secrétariat ambulatoire mais du service (UF) S2 avait le droit de modifier ce qu’a saisi Loulou qui est du service S1, ça serait bien pour attribuer à S2 ce qui appartenait jusque-là à S1 (affectation) ?

    Autrement dit :

    — Que peut-on modifier pour une intervention programmée ? La date de l’intervention ? L’heure ? La place ? L’UF ? (Je sous-entends que seul le service de Chirurgie ambulatoire est habilité à modifier).

    — Que peut-on modifier pour une affectation ? Le jour ? La place ? l’UF ? Par ailleurs, qui est habilité à modifier ? Un service demandeur (donc autre que le service de Chirurgie ambulatoire) peut-il modifier des données qui ne concernent que lui seul ? Les autres services ?


    Proposition de modèle pour les utilisateurs

    De même qu’on a spécialisé les personnes en médecins, chirurgiens et patients, je propose qu’on spécialise les utilisateurs en fonction des droits qui leurs sont octroyés. Par exemple, l’utilisateur Louis qui n’appartient pas à une UF mais au secrétariat du service ambulatoire sera reconnu comme tel et fera partie de la table ADMIN des utilisateurs du secrétariat ambulatoire habilités à modifier le planning (vous pouvez remplacer ce nom de table comme bon vous semble). Seuls les utilisateurs appartenant aux UF demandeuses seront répertoriés dans la table UTILISATEUR_UF.

    Dans la mesure où les utilisateurs UF n’ont pas tous les mêmes droits, on peut éventuellement leur affecter un profil (table PROFIL) : habilitation à affecter les salles pour leur service, habilitation à programmer les interventions (toujours pour leur service), etc., à vous de voir si cela vaut le coup :



    Je ne tire pas les liens avec les autres tables (INTERVENTION, AFFECTATION), j’attends que vous vous prononciez par rapport aux scénarios proposés pour ces tables et aux diverses questions que j’ai posées.


    A propos des intentions :

    J’avais posé la question suivante :
    Qu’est-ce qu’une 1re intention ? Donc par contraste, une 2e, une 3e, une nième intention ?
    Et vous avez répondu :
    Une salle est réservée pour la journée, mais cela pourra être modifié si c'est vraiment nécessaire par le secrétariat Ambulatoire qui aura pratiquement tous les droits dans l'application.
    Ce qui ne répond pas à ma question, donc je la repose : quel sens donner au mot « intention » ? Quel sens donner à l’adjectif « première » ? Ces choses-là ont-elles un rapport avec les autorisations de modification ?
    (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.

  2. #22
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,


    A force de s’enrichir en tables, votre modèle va devenir de moins en moins lisible à l’écran. Or, représenter dans un même schéma les quotas et les médecins ne présente pas d’intérêt, je vous suggère donc d’urbaniser le modèle, c'est-à-dire représenter non pas toutes les tables en même temps, mais seulement des sous-ensembles de tables ayant des liens sémantiques et représentant un thème : le thème des personnes, celui des quotas, celui des utilisateurs, etc. Le modèle complet reste la matrice, bien entendu il est toujours là, mais sans qu’il soit nécessaire que vous le présentiez à vos interlocuteurs (moi par exemple ! )
    C'est effectivement beaucoup plus claire en terme de présentation et assez astucieux




    Citation Envoyé par fsmrel Voir le message
    Dans mon prochain message, je poserai quelques questions au sujet des utilisateurs.
    Navré pour ce retard mais les révisions m'ont un peu capturé. J'ai raté votre dernier message (06/05) sur la deuxième je vous répond rapidement
    Images attachées Images attachées

  3. #23
    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 arguitxu,


    Avez-vous défini une table PLACE ? Sinon pourquoi ?


    Table AFFECTATION_ACTIVITE :

    Il y a un doublon : les attributs ServiceId et SERVICE_ServiceId désignent tous deux le service. Par référence à la règle selon laquelle « Pour un jour donné, une salle (place) donnée est affectée à seul service », je répète que la clé de la table AFFECTATION est réduite à la paire {PlaceId, JourId} : ServiceId n’en fait pas partie, sinon la règle serait violée, on n’aurait aucune difficulté à affecter la même place, le même jour à plusieurs services.

    Ou en êtes-vous à propos des questions que j’ai posées dans mon message précédent ? Pas trop de problèmes avec votre modélisation ? Bien entendu, faites passer vos révisions avant, je me doute que c'est plus important !
    (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.

  4. #24
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,

    A propos des affectations.

    La table AFFECTATION que j’ai précédemment définie se justifie si les secrétaires des services demandeurs effectuent des réservations de place avant même de programmer les interventions. En revanche, si ces réservations « anticipées » n’ont pas lieu d’être, c'est-à-dire si les réservations ne se font qu’au moment de la programmation des interventions, cette table peut ne pas être matérialisée.
    Il n'y a pas de réservations anticipées. Tout se déroule au moment de la programmation de l'intervention. La table Affectation n'a effectivement raison d'être et la table Intervention rassemblera les informations des programmations.

    Citation Envoyé par fsmrel Voir le message

    A propos des utilisateurs.

    Je suppose que lorsque vous dites « qu’un autre pourra annuler réserver et modifier le planning des autres services », cet « autre » n’est pas un utilisateur d’une UF (service) mais seulement un utilisateur du secrétariat du service de chirurgie ambulatoire ?
    Absolument


    Citation Envoyé par fsmrel Voir le message

    Toutefois, vous avez aussi écrit :

    En l’occurrence il y a ambiguïté : on ne sait pas si voulez signifier qu’une réservation peut être annulée ou bien si le secrétariat ambulatoire décide que le même jour, il pourra y avoir dans la même salle des interventions de services demandeurs différents : veuillez en l'occurrence être précis et exhaustif...

    Je prends note qu’il n’est pas possible de modifier une intervention, à ceci près que si je conçois que le service de Chirurgie Ambulatoire puisse changer l’heure d’une intervention (par exemple parce qu’il y a une urgence ou que le patient ne peut être opéré pour une raison quelconque à l’heure prévue), je suppose que ce service ne peut pas remplacer une intervention concernant le service S1 par une intervention concernant le service S2... Qu’en est-il exactement ?
    On peut écrire : "Une salle est réservé par un service pour un type d'intervention à la journée. Une fois la réservation effectuée, la salle n'est plus disponible au planning du jour concerné. Seul le secrétariat de chirurgie ambulatoire aura par la suite des droits sur la programmation de la salle : - modification de l'intervention (date et type d'intervention), - suppression de l'intervention, - programmation d'une seconde intervention dans la salle pour le jour concerné."

    Citation Envoyé par fsmrel Voir le message
    — Que peut-on modifier pour une intervention programmée ? La date de l’intervention ? L’heure ? La place ? L’UF ? (Je sous-entends que seul le service de Chirurgie ambulatoire est habilité à modifier).
    La date de l’intervention, le type d'intervention et le type d'anesthésie et donc seul le service de Chirurgie ambulatoire est habilité à modifier.

    [quote=fsmrel;7272384]— Que peut-on modifier pour une affectation ? Le jour ? La place ? l’UF ? Par ailleurs, qui est habilité à modifier ? Un service demandeur (donc autre que le service de Chirurgie ambulatoire) peut-il modifier des données qui ne concernent que lui seul ? Les autres services ?[QUOTE=fsmrel;7272384] SI "affectation" sous-entend "réservation anticipée" : pas de réservation anticipée.


    Citation Envoyé par fsmrel Voir le message
    Proposition de modèle pour les utilisateurs
    Ce modèle est parfait.


    Citation Envoyé par fsmrel Voir le message
    A propos des intentions :

    J’avais posé la question suivante :
    Qu’est-ce qu’une 1re intention ? Donc par contraste, une 2e, une 3e, une nième intention ?
    Et vous avez répondu :
    Une salle est réservée pour la journée, mais cela pourra être modifié si c'est vraiment nécessaire par le secrétariat Ambulatoire qui aura pratiquement tous les droits dans l'application.
    Ce qui ne répond pas à ma question, donc je la repose : quel sens donner au mot « intention » ? Quel sens donner à l’adjectif « première » ? Ces choses-là ont-elles un rapport avec les autorisations de modification ?
    Par première intention je voulais dire dans "le cas normal" : 1 salle - 1 journée = 1 programmation. Ensuite il existe le cas du doublement de programmation possible par un admin. Pour la vision d'un secrétariat UF, il n'existe que le "cas normal". Soit la salle est prise (1 ou 2 intervention), soit elle est dispo (0 intervention).

  5. #25
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,


    Avez-vous défini une table PLACE ? Sinon pourquoi ?
    La table place représente les salles disponibles pour les interventions.

    Citation Envoyé par fsmrel Voir le message
    Table AFFECTATION_ACTIVITE :

    Il y a un doublon : les attributs ServiceId et SERVICE_ServiceId désignent tous deux le service. Par référence à la règle selon laquelle « Pour un jour donné, une salle (place) donnée est affectée à seul service », je répète que la clé de la table AFFECTATION est réduite à la paire {PlaceId, JourId} : ServiceId n’en fait pas partie, sinon la règle serait violée, on n’aurait aucune difficulté à affecter la même place, le même jour à plusieurs services.
    J'ai rectifié le modèle
    Images attachées Images attachées

  6. #26
    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 arguitxu,


    Citation Envoyé par arguitxu Voir le message
    Il n'y a pas de réservations anticipées. Tout se déroule au moment de la programmation de l'intervention. La table Affectation n'a effectivement raison d'être et la table Intervention rassemblera les informations des programmations.
    Puisque la table AFFECTATION n’a pas de raison d’être, on part donc sur la modélisation suivante pour les interventions, conformément à la proposition faite en ce sens le 6 mai dernier et que vous confirmez dans votre PDF (pour plus de lisibilité, je ne montre pas les quotas) :





    Citation Envoyé par arguitxu Voir le message
    Par première intention je voulais dire dans "le cas normal" : 1 salle - 1 journée = 1 programmation. Ensuite il existe le cas du doublement de programmation possible par un admin. Pour la vision d'un secrétariat UF, il n'existe que le "cas normal". Soit la salle est prise (1 ou 2 intervention), soit elle est dispo (0 intervention).
    Illustrons. Pour que votre application propose les salles disponibles tel jour aux utilisateurs, elle devra comporter une requête SQL du genre :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(*)
    FROM   INTERVENTION
    WHERE  InterventionDate = d ;

    d représente la date fournie par l’utilisateur. C’est bon comme ça ?


    Modélisation des utilisateurs

    La proposition de modélisation que j’ai faite vous convient, je la rappelle ici :




    Programmation des interventions

    Il s’agit maintenant de traiter de la programmation des interventions, c'est-à-dire brancher les utilisateurs sur les interventions.


    Cas des utilisateurs des UF. Une proposition :




    Un utilisateur d’une UF peut programmer des interventions et une intervention est programmée par un utilisateur d’une UF (attribut UtilisateurId de la table INTERVENTION). La programmation effectuée est horodatée (attribut ProgrHorodatage), c'est-à-dire qu’on note la date et l’heure à laquelle l’utilisateur a programmé l’intervention.

    De la traçabilité :

    On horodate les modifications effectuées par les utilisateurs admins, en sorte que l’on ait au besoin un historique de ce qu’ont programmé les secrétariats des UF (table INTERVENTION, attributs UtilisateurId, ProgrHorodatage) puis les altérations effectuées par les admins (table INTERVENTION_MODIF) :




    Votre opinion sur tout cela ? Est-ce que ça prend corps ?
    (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. #27
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,
    Votre opinion sur tout cela ? Est-ce que ça prend corps ?
    Nous sommes vraiment contents de ce travail réalisé grâce à vos compétences.
    Comment sait-on qu'une place est réservée pour une UF tel jour de la semaine ?

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


    Citation Envoyé par arguitxu Voir le message
    Comment sait-on qu'une place est réservée pour une UF tel jour de la semaine ?
    C’était la mission de la table AFFECTATION, laquelle s’est évaporée suite à cette remarque que vous fîtes :
    Citation Envoyé par arguitxu Voir le message
    Il n'y a pas de réservations anticipées. Tout se déroule au moment de la programmation de l'intervention. La table Affectation n'a effectivement raison d'être et la table Intervention rassemblera les informations des programmations.


    Je rappelle ma proposition initiale :



    Dans le contexte, affectation et réservation sont synonymes (je pense).
    (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.

  9. #29
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,



    C’était la mission de la table AFFECTATION, laquelle s’est évaporée suite à cette remarque que vous fîtes :


    Je rappelle ma proposition initiale :



    Dans le contexte, affectation et réservation sont synonymes (je pense).
    OK, il faut donc mieux la conserver Autre question, les salles sont paramétrées pour 1 seul service chaque jour et que seul le service concerné peut réserver la salle ce jour là.
    Pour paramétrer un service pour une salle un jour donné, c'est bien le rôle de la table quota et jour ?
    Je pense que nous allons maintenant pouvoir passer à la phase suivante ? le type de donnée

  10. #30
    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 arguitxu,


    Citation Envoyé par arguitxu Voir le message
    OK, il faut donc mieux la conserver Autre question, les salles sont paramétrées pour 1 seul service chaque jour et que seul le service concerné peut réserver la salle ce jour là.
    Pour paramétrer un service pour une salle un jour donné, c'est bien le rôle de la table quota et jour ?
    A la lecture du dernier modèle que je vous ai proposé, une place (salle) est réservable (affectable) en fonction des quotas pour une activité, conformément à ce que vous aviez écrit :
    Citation Envoyé par arguitxu Voir le message
    Les salles de Chirurgie Ambulatoire sont disponibles en première intention à la journée. Elles sont dédiées en première intention à une activité. Chaque activité a donc un cota de salles libres par journée et par semaine (ex : lundi : 5 salles, mercredi : 4 salles et jeudi : 5 salles pour l’activité Odontologie).

    Toujours à la lecture du modèle une réservation (affectation) est effectivement faite pour un service, une salle et un jour. Lors de l’affectation, il faudra s’assurer par un comptage que le quota ne sera pas dépassé. Ce comptage se fera à l’aide d’une requête SQL effectuant un COUNT appliqué au triplet {ServiceId, PlaceId, JourId} de la table AFFECTATION, et comparant le comptage avec le quota du jour en relation avec l’activité à laquelle appartient le service concerné. La requête SQL devrait pouvoir être incorporée à un trigger.


    Je suppose que, comme pour les interventions, il faut que ce soit un utilisateur du service concerné qui effectue l’affectation d’une salle au service. Dans ce cas, l’affectation effectuée est horodatée (attribut AffectationHorodatage), c'est-à-dire qu’on note la date et l’heure à laquelle l’utilisateur a effectué l’affectation.


    De la traçabilité :

    Toujours comme pour les interventions, on horodate les modifications effectuées par les utilisateurs admins, en sorte que l’on ait au besoin un historique de ce qu’ont effectué les secrétariats des UF (table AFFECTATION, attributs UtilisateurId, AffectationHorodatage) puis les altérations effectuées par les admins (table AFFECTATION_MODIF) :



    Mais, attention ! Balek ! Cuidado ! En théorie, l’attribut ServiceId n’a pas à être présent dans la structure de la table AFFECTATION. En effet, connaissant l’utilisateur ayant réalisé l’affectation, comme celui-ci appartient à un seul service, de la connaissance de l’utilisateur on infère celle du service pour lequel l’affectation est réalisée. En termes plus précis, on dit qu’il existe une dépendance fonctionnelle transitive {UtilisateurId} -> {ServiceId} provoquant un viol de 3NF pour la table AFFECTATION. En conséquence, soit vous contrôlez cette situation par le biais d’une contrainte d’inclusion comme quoi chaque valeur de la paire {UtilisateurId, ServiceId} de la table AFFECTATION existe aussi en tant que valeur de la paire {UtilisateurId, ServiceId} de la table UTILISATEUR_UF, soit vous normalisez en 3NF et le modèle devient :

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

  11. #31
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,




    A la lecture du dernier modèle que je vous ai proposé, une place (salle) est réservable (affectable) en fonction des quotas pour une activité, conformément à ce que vous aviez écrit :

    Toujours à la lecture du modèle une réservation (affectation) est effectivement faite pour un service, une salle et un jour. Lors de l’affectation, il faudra s’assurer par un comptage que le quota ne sera pas dépassé. Ce comptage se fera à l’aide d’une requête SQL effectuant un COUNT appliqué au triplet {ServiceId, PlaceId, JourId} de la table AFFECTATION, et comparant le comptage avec le quota du jour en relation avec l’activité à laquelle appartient le service concerné. La requête SQL devrait pouvoir être incorporée à un trigger.
    OK je me document pour comprendre comment fonctionne et mettre en place un trigger.


    Citation Envoyé par fsmrel Voir le message
    Je suppose que, comme pour les interventions, il faut que ce soit un utilisateur du service concerné qui effectue l’affectation d’une salle au service. Dans ce cas, l’affectation effectuée est horodatée (attribut AffectationHorodatage), c'est-à-dire qu’on note la date et l’heure à laquelle l’utilisateur a effectué l’affectation.
    Absolument.


    De la traçabilité :

    Toujours comme pour les interventions, on horodate les modifications effectuées par les utilisateurs admins, en sorte que l’on ait au besoin un historique de ce qu’ont effectué les secrétariats des UF (table AFFECTATION, attributs UtilisateurId, AffectationHorodatage) puis les altérations effectuées par les admins (table AFFECTATION_MODIF) :



    Citation Envoyé par fsmrel Voir le message
    Mais, attention ! Balek ! Cuidado ! En théorie, l’attribut ServiceId n’a pas à être présent dans la structure de la table AFFECTATION. En effet, connaissant l’utilisateur ayant réalisé l’affectation, comme celui-ci appartient à un seul service, de la connaissance de l’utilisateur on infère celle du service pour lequel l’affectation est réalisée. En termes plus précis, on dit qu’il existe une dépendance fonctionnelle transitive {UtilisateurId} -> {ServiceId} provoquant un viol de 3NF pour la table AFFECTATION. En conséquence, soit vous contrôlez cette situation par le biais d’une contrainte d’inclusion comme quoi chaque valeur de la paire {UtilisateurId, ServiceId} de la table AFFECTATION existe aussi en tant que valeur de la paire {UtilisateurId, ServiceId} de la table UTILISATEUR_UF, soit vous normalisez en 3NF et le modèle devient :
    ce sera plus simple de garder le shema respectant la norme 3NF...je pense que je vais avoir un peu de travail ce week end

  12. #32
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    A propos des quotas.

    Je vous cite à nouveau :



    Il faut prendre en compte les quotas dans le modèle, sinon comment vérifier qu’un service ne dépasse pas ceux qu’on lui a alloués ?
    C'est là que je ne comprends pas. Comment un service peut dépasser un quotas. Le cadre de santé décide que pour telle activité il y aura 5 salles le lundi et 4 salles le jeudi. L'UF gérant cette activité ne pourra pas utiliser plus que ces salles là, sauf en cas de réouverture. Il ne pourra en aucun cas dépasser le quotas alloué. Un service n'a pas les droits pour modifier les attributions ni ouverture de salle...

  13. #33
    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 arguitxu,


    Citation Envoyé par arguitxu Voir le message
    Le cadre de santé décide que pour telle activité il y aura 5 salles le lundi et 4 salles le jeudi.
    C’est l’objet de la table QUOTA, savoir à combien de salles a droit telle activité (simplement on ne sait pas quelles sont les salles correspondantes).


    Citation Envoyé par arguitxu Voir le message
    L'UF gérant cette activité ne pourra pas utiliser plus que ces salles là, sauf en cas de réouverture. Il ne pourra en aucun cas dépasser le quotas alloué.
    Qu’est-ce qui empêchera que l’utilisateur d’une UF créée plus d’affectations que prévu par les quotas, sinon l’application ? Et si c’est l’application, où trouvera-t-elle les valeurs maximales autorisé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.

  14. #34
    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 arguitxu,


    Où en êtes-vous ? Les choses se mettent-elles en place ?
    (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.

  15. #35
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,
    Où en êtes-vous ? Les choses se mettent-elles en place ?
    Bonjour, nous avons eu un grand débat sur la complexité de la BBD car certains souhaitaient simplifier au risque de ne pas respecter certaines règles.Mon dernier partiel étant lundi je me remettrai sur le projet à partir de mardi.
    Consolidation de l'ensemble des schémas. Je crois qu'après il faudra voir le type de valeur dans les tables? est ce bien cela ?
    Bon week-end

  16. #36
    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 arguitxu,


    Bon courage pour lundi, et reposez-vous en attendant.
    (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.

  17. #37
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Les écrits sont terminés et clos mon parcours MIAGE ..... un vrai bonheur car plus de stress et je n'aurai plus à courir plusieurs lièvres, enfin jusqu'au prochain défie.

    Alors ci-joint l'ensemble des schémas mis à jour. Qu'en pensez-vous ?
    Images attachées Images attachées

  18. #38
    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 arguitxu,


    Et un arguitxu en paix ! Bravo !


    Sinon, pour la partie qui nous concerne plus précisément...


    Vue PERSONNES
    Table ADRESSE
    Faire passer à NOT NULL les attributs Numero et Code_Postal.
    Table PERSONNE
    Où est passé le titre de civilité des personnes (attribut PsnCivilite) ?
    Table PATIENT
    Les patients n’ont plus de date de naissance ?
    Table PRESCRIPTION
    A quoi correspond l’attribut PrescriptionMedecin ?

    Vue UTILISATEURS
    Table PROFIL
    Faire passer à NOT NULL l’attribut ProfilLibelle.

    Vue AFFECTATIONS
    Table AFFECTATION
    Du fait de la violation de la 3NF Ne pas oublier de prévoir un trigger pour contrôler la dépendance fonctionnelle {UtilisateurId} -> {ServiceId}.
    Relation entre AFFECTATION et UTILISATEUR_UF : cardinalité 1..* à transformer en 0..* (les utilisateurs UF ne programment pas forcément tous des affectations).
    Vue INTERVENTIONS
    Table INTERVENTION
    Severe error! Contrairement à ce que vous représentez, les relations INTERVENTION - PLACE et INTERVENTION - JOUR sont indirectes ! Il y a relation directe seulement entre INTERVENTION et AFFECTATION :


    Vue PROGRAMMATION INTERVENTIONS
    Même remarque !


    Keep up the good job!
    (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.

  19. #39
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 40
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir arguitxu,

    A quoi correspond l’attribut PrescriptionMedecin ?
    [/Indent]
    un champs de donnée pour indiquer si besoin la prescription
    Tout est corrigé et il y en avait des erreurs.
    Images attachées Images attachées

  20. #40
    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 arguitxu,


    J’ai regardé : c’est muy bien. Je pense qu’on arrive à quelque chose qui devrait tenir la route. Il doit traîner des boulettes, mais vous les découvrirez au fil des tests...

    Sentez-vous une légère différence par rapport au tout début de la discussion ?
    (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. Réponses: 0
    Dernier message: 14/10/2013, 10h27
  2. Aide sur modélisation
    Par Crack1986 dans le forum Conception
    Réponses: 11
    Dernier message: 13/03/2012, 11h59
  3. [MLD] Aide sur une modélisation entre tables
    Par dd_angel dans le forum Schéma
    Réponses: 7
    Dernier message: 20/08/2010, 16h07
  4. Réponses: 5
    Dernier message: 08/04/2009, 17h39
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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