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 :

Est-ce possible d'avoir une clé étrangère vide?


Sujet :

Schéma

  1. #1
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut Est-ce possible d'avoir une clé étrangère vide?
    Bonjour,

    j'aimerai modéliser la conception d'un examen d'analyse bio-médical. Je développe sous VB 6.0 et Access 2003 (d'où l'importance de souligner la limite de la taille de ma Base de Données). Un examen peut avoir une ou plusieurs propriétés et une propriété peut avoir une ou plusieurs valeurs. Maintenant mon problème est que je dois ABSOLUMENT "économiser" de l'espace à cause de la limitation des BD Access. Certains examens ont des propriétés avec des valeurs uniquement numérique (pas plus de 12 caractères) alors que pour d'autres examens les propriétés peuvent être alphanumérique (et pouvant faire plus de 80 caractères). Comment faire pour que je puisse économiser le plus d'espace possible? Je pensais à créer une table examen, une table valeurnumerique et une table valeuralphanumerique ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Examen(numexamen,dateexamen,numpatient)
    Propriete(numpropriete,numexamen,numvaleurnumerique,numvaleuralphanumerique)
    Valeurnumerique(numvaleurnumerique,valnumerique)
    Valeuralphanumerique(numvaleuralphanumerique,valalphanumerique)
    Mais comme un examen a soit des propriétés dont les valeurs sont numériques soit alphanumérique, cela veut dire que je risque d'avoir une valeur vide dans ma table Examen selon que la propriété et numérique ou alphanumérique.

    Suis-je sur la bonne voie?

    Je reste ouvert à toutes vos questions, suggestions et critiques.

    Merci d'avance.

    Cordialement.

  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 113
    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 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    Bonjour,


    Citation Envoyé par js8bleu Voir le message

    Examen (numexamen, dateexamen, numpatient)
    Propriete (numpropriete, numexamen, numvaleurnumerique, numvaleuralphanumerique)
    Valeurnumerique (numvaleurnumerique, valnumerique)
    Valeuralphanumerique (numvaleuralphanumerique, valalphanumerique)
    Est-ce que les attributs que vous présentez pour la table Propriete sont complets, ou en existe-t-il d’autres que vous n’avez pas montrés ?
    S’ils sont tous là, dans la mesure où une valeur est une propriété multivaluée d’un examen, la table Propriete est inutile. Vous pouvez utiliser la représentation suivante :





    Si dans le cas des valeurs alphanumériques, vous souhaitez réutiliser telle valeur occupant de la place et revenant souvent, toujours la même, vous pouvez utiliser la représentation ci-dessous (qui ne s’impose pas pour les valeurs numériques, très peu consommatrices d’espace) :





    Quant à consommation en espace due aux données alphanumériques, il faudrait que vous posiez les questions sur le forum Access : fondamentalement les possibilités de compression. Si elles sont efficaces (façon zip), la 1re solution suffit.

  3. #3
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut
    Bonjour et Merci fsmrel pour votre aide. Voici mon MCD complet :

    MCD

    Qu'en pensez-vous s'il plaît?

    Merci d'avance.

    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 113
    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 113
    Points : 31 588
    Points
    31 588
    Billets dans le blog
    16
    Par défaut
    Quels sont vos commentaires sur les représentations graphiques que je vous ai proposées dans mon précédent message ?


    Considérons maintenant votre MCD :





    1) D’après la ternaire TRAITER, un dossier peut ne concerner aucun patient, ce qui est louche, mais il peut aussi concerner plusieurs patients, ce qui est extrêmement louche. En tant que patient, je ne serais pas très rassuré de partager mon dossier avec d’autres.

    2) Un dossier fait référence à un examen, sans que ce dernier fasse mention d’un patient : on en déduit qu’un examen vaut pour tous les patients, donc qu’il s’agit d’un type d’examen. Et pourtant, l’entité-type VALALPHA comporte un attribut nommé ValalphaPat, qui ressemble fort à une abréviation de valeur alpha pour un certain patient, ce qui dénoterait une contradiction. Qu’en est-il ?

    3) L’entité-type PROPRIETE n’a pas d’identifiant (mais je suppose que cela viendra, même chose pour VALALPHA). Cette entité-type est dotée d’un attribut Libprop. Est-ce un attribut de circonstance, ou bien a-t-il un rôle sémantique véritable ? Merci de fournir des exemples.

  5. #5
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut
    Bonjour fsmrel et Merci pour votre intérêt. Je suis désolé pour le silence concernant vos propositions précédentes. Je me suis dit que si je vous envoyais mon MCD complet vous auriez une meilleure vision du Système d'Information. Sinon concernant votre première proposition je les trouve bien toutes les deux (surtout la 2ème) sauf que je ne vois pas comment gérer les propriétés car elles ont des libellés selon l'examen et ce sont les mêmes pour le même examen. Avez-vous une idée de comment gérer cela? Par rapport à vos nouvelles critiques, vous avez encore une fois entièrement raison (j'en ai honte). Je vous envoies mon nouveau MCD :

    MCD

    Merci d'avance.

    Cordialement.

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


    En tant que patient, je suis rassuré de savoir que je ne partage pas mon dossier avec d’autres patients...

    Citation Envoyé par js8bleu Voir le message
    je ne vois pas comment gérer les propriétés car elles ont des libellés selon l'examen et ce sont les mêmes pour le même examen.
    Si je vous suis, si l’examen e1 comporte les propriétés p1, p2, ..., pn, alors ces dernières ont toutes un libellé identique. Qu’en est-il exactement ?



    Je constate que l’attribut ValalphaPat a été gommé : ok. Mais qu’en est-il de l’attribut ValnumPat ?

    Pourquoi avoir éclaté VALALPHA en VALALPHA et PROP_AlpHA ?

  7. #7
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut
    Rebonjour fsmrel ,

    Je suis sincèrement ravi d'avoir de vos nouvelles.

    Si je vous suis, si l’examen e1 comporte les propriétés p1, p2, ..., pn, alors ces dernières ont toutes un libellé identique. Qu’en est-il exactement ?
    en fait ce que j'aimerai faire c'est enregistrer les examens dès le début. Par exemple lorsque j'enregistre un nouvel examen E1, j'enregistre en même temps ses propriétés (E1P1,E1P2 et E1P3 par exemple), lorsque que j'enregistre un nouvel examen E2, j'enregistre ses propriétés également (E2P1 et E2P2 par exemple) et ainsi de suite pour tous les nouveaux examens. Les propriétés (donc les libellés) diffèrent d'un examen à un autre et sont uniques à un examen. Lorsque je dois saisir la fiche d'examen d'un patient (table dossier, table Patient, etc.), je choisi l'examen dans la table Examen (donc ses propriétés aussi). Je choisi l'examen dans une liste déroulante et ses propriétés s'afficheront dans une autre liste déroulante, comme ça je n'ai plus qu'à saisir la valeur de chaque propriété dans un textbox. Je souhaiterai utiliser ce système non seulement pour éviter de saisir chaque fois les mêmes examens et ainsi que leurs propriétés mais aussi pour faciliter l'ajout d'un nouvel examen. Qu'en pensez-vous?

    Je constate que l’attribut ValalphaPat a été gommé : ok. Mais qu’en est-il de l’attribut ValnumPat ?

    Pourquoi avoir éclaté VALALPHA en VALALPHA et PROP_AlpHA ?
    J'ai remplacé Valalphapat par valalpha (par rapport à ce que j'ai compris sur vos conseils concernant l'enregistrement des valeurs alphanumériques qui reviendraient souvent, je pense qu'il serait effectivement judicieux pour cause de gain d'espace d'enregistrer par avance les valeurs alphanumériques).

    Merci d'avance.

    Cordialement.

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


    Citation Envoyé par js8bleu Voir le message
    en fait ce que j'aimerai faire c'est enregistrer les examens dès le début.
    Le début de quoi ? Conformément au MCD, je vais supposer qu’il s’agit de créer des examens-types, avant saisie des dossiers qui y feront référence. C’est bien cela ?


    Citation Envoyé par js8bleu Voir le message
    Par exemple lorsque j'enregistre un nouvel examen E1, j'enregistre en même temps ses propriétés (E1P1,E1P2 et E1P3 par exemple), lorsque que j'enregistre un nouvel examen E2, j'enregistre ses propriétés également (E2P1 et E2P2 par exemple) et ainsi de suite pour tous les nouveaux examens. Les propriétés (donc les libellés) diffèrent d'un examen à un autre et sont uniques à un examen.
    Soit. Mais pour qu'on y voie plus clair, j’aimerais que vous donniez des exemples de libellés, pour {E1, P1}, {E1, P2},{E1, P3}, {E2, P1}, {E2, P2}, {E2, P3}. Il s’agit pour moi de comprendre ce que vous appelez une propriété, concept on ne peut plus ambigu. C’est un peu comme si l’on parlait de titres et que l'on disait : le titre t1 a un libellé l1, le titre t2 un libelle l2, etc. Mais qu’est-ce qu’un titre ? Un titre boursier (l’Eurotunnel, Google, Natixis...) ? Un titre de civilité (Monsieur, Madame, Mademoiselle, Docteur, Maître...) ? Un titre d’ouvrage (Les trois mousquetaires, Mes vingt ans, Les misérables...) ? Une dose d’alcool ?

    Rien de tel que de prendre des exemples concrets pour éviter les quiproquos et ne pas se ramasser. Si je prends par exemple comme libellé d’examen-type : « Examen chimique du sang », alors « Acide urique », « glycémie » (liste à compléter, ou à remplacer svp) sont-ils des libellés de propriétés de cet examen-type ?


    Citation Envoyé par js8bleu Voir le message
    comme ça je n'ai plus qu'à saisir la valeur de chaque propriété dans un textbox
    Dans l’exemple que j’ai pris, ces valeurs sont-elles les fourchettes des valeurs normales ? Par exemple, [20:70] pour l’acide urique, [0,74:1,06] pour la glycémie ? Merci de donner quelques exemples.

    Concernant le dossier 1234 (patient : Alexandre Keszkipu-Celboucq), où trouvera-t-on les résultats (acide urique = 53 mg/l et glycémie = 0,91 g/l) de l’examen du 14/10/2009 concernant ce sympathique patient, suivi par le Docteur Dac (le célèbre inventeur du biglotron) ?

    Vous comprendrez qu’en restant dans le flou artistique, on ne peut pas modéliser correctement.


    Citation Envoyé par js8bleu Voir le message
    Je souhaiterai utiliser ce système non seulement pour éviter de saisir chaque fois les mêmes examens et ainsi que leurs propriétés mais aussi pour faciliter l'ajout d'un nouvel examen
    L’intention est louable, mais il nous reste à démontrer que ce qui est modélisé est pertinent.

  9. #9
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut
    Bonjour fsmrel,

    J'espère que tout va comme vous le souhaitez? Je vous pries de bien vouloir m'excuser pour le manque de précision. Je vais toutefois tenter de vous éclaircir un peu plus.

    Conformément au MCD, je vais supposer qu’il s’agit de créer des examens-types, avant saisie des dossiers qui y feront référence. C’est bien cela ?
    C'EST EXACTEMENT CELA.

    voici deux exemples d'examens:

    NB: Les noms des examens sont en gras. Vous avez en italique ce que que j'appelle les propriétés de ces examens.

    1 - Examen de sang (nom de l'examen et ce qui suit le constitue)
    Calcium : 2,210 mmoles/l
    Phosphore : 1,360 mmoles/l
    Magnésium Sérique : 0,970 mmoles/l
    Chlore : 107,000 mmoles/l
    Bicarbonate : 30,400 meq/l
    Protides Totaux : 84,000 g/l
    Sodium : 143,000 meq/l
    Potassium : 4,400 meq/l

    2 - ECBU (nom de l'examen et ce qui suit le constitue)
    Aspect : Urines jaune-paille limpides
    P.H : 6,0
    Protéine : Néant
    Glucose : Néant
    Sang : Néant
    Leucocytes : +
    Hématies : Néant
    Culot : Minime
    Sédiments : Nombreux cristaux d'oxalate de calcium
    Cellules : Rares cellules épithéliales
    Parasites : Néant
    Germes : Cocci
    Levures : Néant
    Examens après colorations : Quelques cocci gram+
    Cultures : Bactériurie 100 000 UFC / ml
    Identification : Streptocoque D

    Merci d'avance pour votre altruisme et n'hésitez pas à me questionner en cas de besoin.

    Cordialement.

  10. #10
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Avec l'exemple concret, c'est effectivement un peu plus clair.

    Ce que je vois, ce sont des Examens types dotées de ce que vous appelez des propriétés et il semble que vous y ayiez associé des mesures.

    La question qui vient immédiatement à l'esprit est :
    Ces mesures sont-elles les valeurs normales des propriétés ou des exemples de valeurs mesurées ?

    J'en arrive à imaginer les règles de gestion suivantes :
    1) Un examen type comporte une à plusieurs propriétés et une propriété peut faire partie de plusieurs examens types.
    On peut en effet supposer que, par exemple, la propriété 'aspect' peut concerner plusieurs examens types.

    2) Une propriété faisant partie d'un examen type à une valeur normale (ou une plage de valeurs normales, ce sera à vous de le définir mais c'est ici le principe qui compte)
    La valeur normale est donc ici une donnée associée au couple (examen type, propriété).

    La règle de gestion 1) donnerait le MCD :
    Examen -1,n----Comporter----0,n- Propriété

    La règle de gestion 2) fait que l'association Comporter est porteuse de données relatives à la valeur normale ou à la plage de valeurs normales.

    Voilà le genre d'exercice intellectuel auquel vous devez vous plier pour modéliser correctement votre domaine. Des règles de gestion bien écrites entraîne de façon quasi naturelle la découverte des entités et de leurs attributs, les associations entre les entités ainsi que des données portées par les associations. Dès lors le MCD vient tout seul.

    fsmrel a proposé un MCD plus complet mais qui concerne plutôt relevé des examens effectivement réalisés pour les patients que bibliothèque d'examens types dans laquelle on pioche pour chaque patient. Yapuka rassembler les deux !

  11. #11
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut
    Bonjour CinePhil et Merci pour votre intervention.

    Ces mesures sont-elles les valeurs normales des propriétés ou des exemples de valeurs mesurées ?
    Ces mesures sont justes les unités de mesure des propriétés. De plus, ce ne sont pas toutes les propriétés qui ont des unités de mesures. Je ne souhaiterai pas gérer les unités de mesure.

    Quant aux valeurs normales, elles ne concernent pas toutes les propriétés. Il y en a qui n'en ont pas. De plus, les valeurs normales dépendent du réactif qui a été utilisé. Je n'aimerai pas également gérer les réactifs.

    Ce qui m'intéresse surtout c'est comment faire pour faire économiser le plus d'espace possible tout en sachant que les longueurs (tailles) des valeurs des propriétés d'un examen sont très variable (puisque que cela dépend d'un examen à un autre). Sinon, toutes vos remarques sont très pertinentes (malheureusement je suis coincé par le temps).

    Merci d'avance.

    Cordialement.

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Concernant le problème de place que vous évoquez dans votre premier message et qui vous préoccupe encore dans le dernier, dites-vous bien que le nom de l'examen et le nom des propriétés n'existeront qu'une seule fois dans la BDD.
    Ensuite, on utilise l'identifiant pour y faire référence, lequel identifiant est un entier et prend donc très peu de place.
    Je pense qu'avant de dépasser la capacité d'Access, vous aurez les moyens d'investir dans un vrai SGBDR sur serveur et vous roulerez en Ferrari !

  13. #13
    Membre actif
    Inscrit en
    Décembre 2007
    Messages
    528
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 528
    Points : 211
    Points
    211
    Par défaut
    Tout à fait d'accord (et je vous remercie pour la ferrari ). Merci aussi pour les encouragements.

Discussions similaires

  1. Est-ce possible d'avoir 2 clés primaires pour une table ?
    Par angell dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 01/06/2008, 18h59
  2. Réponses: 15
    Dernier message: 24/01/2007, 12h54
  3. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 13h59
  4. Est-il possible de sélectionner une valeur d'un menu déroula
    Par pontus21 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2005, 09h44
  5. Réponses: 3
    Dernier message: 29/07/2003, 09h38

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