Création BDD et interface utilisateur avec outils spécifiques
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

Création BDD et interface utilisateur avec outils spécifiques



  1. #1
    ptrs32

    Création BDD et interface utilisateur avec outils spécifiques


    ------

    Bonjour à tous,

    Je suis étudiant en Bioinformatique et en stage dans un service d'un Hôpital qui me demande de développer une base de donnée pour centraliser leurs fichiers (des excels principalement) avec une interface permettant d'utiliser des outil spécifiques au domaine. Il faut que ça soit un système sécurisé avec mots de passe et historique de modifications.

    Alors j'ai effectivement eu des cours d'introduction aux BDD, et je sais programmer en SQL, HTML, CSS, Javascript, Python, vba mais je vous avoue que je ne connais pas la démarche pour un tel projet, comme comment créer une BDD, avec un SGBD (oracle, MySQL..) ? Ou l'interface à privilégier pour ce cas (interface web ou logiciel ) ?

    Pour les outils je devrais forcément les programmer à la main mais pour le reste est ce que je dois faire ça "from scratch" ou me servir d'outils existants ?

    Si certains ont déjà eu ce genre de projet ou s'y connaissent, j'aimerai beaucoup quelques conseils car je suis bloqué pour démarrer, il me manque juste une direction à prendre puis je pourrai me débrouiller avec la programmation.

    Merci beaucoup

    -----

  2. #2
    umfred

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Pour le début, je pense qu'il faut établir ce que va contenir ta base de données (tables (utilisateurs, droits d'accès, log, fichiers, outils,...) relations, ...)
    Voir avec le système informatique pour le SGBD (il doit y en avoir au moins un d'existant, voir également pour l'accès à ce SGBD pour la création/consultation de celle-ci dans le cadre de ton projet)
    Mais dans un premier temps (avec une idée de la base et de comment elle va être utilisée), faire un cahier des charges du besoin pour être sûr que ton interprétation de la demande corresponde à leur demande (tu peux utiliser des outils comme Balsamiq ou Pencil pour présenter un pre-design)

  3. #3
    pm42

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Les conseils d'umfred sont bons mais j'ai quand même plusieurs doutes : il a de nombreux outils pour construire une appli basée sur une base de données avec des formulaires.
    Pourquoi ne pas les utiliser ?
    Parce que tout réinventer en étant débutant, c'est pointu notamment sur la sécurité d'accès. Idem pour garder la trace des modifications : il y a plusieurs techniques pour ça, de la table de log de base à l'approche Event Sourcing.

    Ceci dit, commencer par faire la liste des données et de leur format permet de commencer : on en déduit le schéma de base de données.

  4. #4
    ptrs32

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Merci pour ta réponse umfred, c'est tout à fait ce que je cherchais pour commencer.

    Et je te rejoint pm42 sur la difficulté de coder à la main un système de sécurité et gérer l'historique sachant que je ne l'ai jamais fait. Mais l’inconvénient que j'imagine à utiliser un outil de création d'interface existant, c'est l'incorporation de mes outils externes. Je me trompe peut être mais ces outils fonctionnent avec des modules externes qu'on peut télécharger pour ajouter à la page mais il est compliqué d'intégrer un module personnel. Tous les outils ne se valent peut être pas là dessus..

    Si jamais vous me dites que rien ne vaut une interface totalement codée pour mon projet je pense que je pourrais me contenter de faire les visuel et laisser ça à un professionnel mais si vous connaissez certains outils qui permettent une très grande personnalisation alors je pourrais tenter.

  5. A voir en vidéo sur Futura
  6. #5
    vgondr98

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Citation Envoyé par ptrs32 Voir le message
    Bonjour à tous,
    Je suis étudiant en Bioinformatique et en stage dans un service d'un Hôpital qui me demande de développer une base de donnée pour centraliser leurs fichiers (des excels principalement)
    Quand tu parles de centraliser les fichiers, tu veux dire la localisation des fichiers ou leur contenue ?

  7. #6
    ptrs32

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Leur contenue oui, pour l'instant beaucoup de données sont sur des excels et ils voudraient une solution de stockage plus sûre et performante.

  8. #7
    vgondr98

    Re : Création BDD et interface utilisateur avec outils spécifiques

    J'ai dû faire la même chose pour le travail. Si le format de leurs fichiers est simple (une source de données par onglet avec des colonnes bien formatées), il est possible d'utiliser des ETL pour parser les fichiers.
    Pour ma part, ce n'était pas le cas (3 sources de données différentes dans un même onglet séparées par des lignes vides et avec des lignes inutiles dans chaque source de données) donc j'ai dû coder un parseur en java.

    Côté base de données, comme cela concerne une faible volumétrie, j'utilise une base de données mysql dockerisé et j'ai trois instances de la base de données (test, qualif et prod).

    J'interagis avec la base de donné via une api web (codé avec java spring boot, spring web et spring jpa).
    L'écran permettant de visualiser les données est réaliser avec la technologie Angular.

    Chez moi, par contre les données sont en lecture seule donc je n'ai pas besoin d'historiser.

  9. #8
    Fustigator

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Citation Envoyé par vgondr98 Voir le message
    J'ai dû faire la même chose pour le travail. Si le format de leurs fichiers est simple (une source de données par onglet avec des colonnes bien formatées), il est possible d'utiliser des ETL pour parser les fichiers.
    Pour ma part, ce n'était pas le cas (3 sources de données différentes dans un même onglet séparées par des lignes vides et avec des lignes inutiles dans chaque source de données) donc j'ai dû coder un parseur en java.
    La plupart des ETL ont pourtant des possibilités de scripter des fonctions de split horizontales ou verticales.

    Chez moi, par contre les données sont en lecture seule donc je n'ai pas besoin d'historiser.
    Une fois qu'il a sa db, les problèmes d'historisation se règlent très aisément en alimentant des tables d'histo via des jeux de trigger. (bon, reste à créer un mécanisme de consultation derrière).

  10. #9
    vgondr98

    Re : Création BDD et interface utilisateur avec outils spécifiques

    https://skyvia.com/google-sheets-addon/
    A votre avis, est-ce que ce genre de chose pourrait être une option ?

  11. #10
    ptrs32

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Oui mes données aussi ne sont pas dans un format simple vgondr98 , je ferai un parser mais de ce coté je ne suis pas trop bloqué ça va. Et sur conseil d'une autre bioinformaticienne j'utiliserai aussi MySQL. Par contre qu'est ce que signifie le fait qu'elle soit dockerisée ?

    Alors désolé Fustigator mais je n'ai pas les notions pour comprendre ce que vous m'avez dit , pouvez vous m'en dire d'avantage sur les jeux de trigger pour l'historique ? sinon je vais chercher par moi même parce que ça m'intéresserai bien a priori.

    Et je ne connais pas skyvia mais ça a l'air intéressant, en effet si ils utilisent déjà beaucoup excel ça pourrait leur servir d'interface de visualisation. Maintenant ça nécessiterai beaucoup de Macros pour faire leurs outils spécifiques et ce n'est peut être pas très adapté du coup.

    merci pour vos réponses
    Dernière modification par ptrs32 ; 19/04/2021 à 08h05.

  12. #11
    Fustigator

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Citation Envoyé par ptrs32 Voir le message
    Oui mes données aussi ne sont pas dans un format simple vgondr98 , je ferai un parser mais de ce coté je ne suis pas trop bloqué ça va. Et sur conseil d'une autre bioinformaticienne j'utiliserai aussi MySQL. Par contre qu'est ce que signifie le fait qu'elle soit dockerisée ?

    Alors désolé Fustigator mais je n'ai pas les notions pour comprendre ce que vous m'avez dit , pouvez vous m'en dire d'avantage sur les jeux de trigger pour l'historique ?
    Pour les Trigger ("déclencheurs" en français, mais ce terme ne s'utilise jamais ou quasiment dans le contexte des SGBD) , je vous suggère la lecture de la notice Wikipedia :
    https://fr.wikipedia.org/wiki/Déclencheur
    et surtout la version anglaise : https://en.wikipedia.org/wiki/Log_trigger

    Dans le cas qui nous occupe ici, l'idée est de ne pas utiliser l'application pour gérer la fonction d'historisation, mais d'utiliser des triggers au niveau des tables pour tracer toute modification des données et les stocker (du moins celles que l'on souhaite garder) dans des tables dédiées.
    Ce mécanisme est très classique.

    Bien sur, la visualisation de l'historique nécessitera un composant applicatif, mais pas sa constitution qui sera directement porté par les mécanismes du SGBD.

  13. #12
    pm42

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Citation Envoyé par ptrs32 Voir le message
    Par contre qu'est ce que signifie le fait qu'elle soit dockerisée ?
    Qu'elle n'est pas installée directement sur la machine mais à travers un mécanisme de virtualisation à faible coût appelé un docker. C'est pratique pour de nombreux usages mais dans ton cas, ce n'est vraiment pas important et à la limite, cela dépend plus des gens qui vont faire le déploiement et la production. Tu ne devrais pas t'en préoccuper à cette étape de ton projet.


    Citation Envoyé par Fustigator Voir le message
    P
    Dans le cas qui nous occupe ici, l'idée est de ne pas utiliser l'application pour gérer la fonction d'historisation, mais d'utiliser des triggers au niveau des tables pour tracer toute modification des données et les stocker (du moins celles que l'on souhaite garder) dans des tables dédiées.
    Ce mécanisme est très classique.
    Oui et il est pratique et relativement peu coûteux. Il a aussi des inconvénients : on a moins d'infos qu'au niveau applicatif et par exemple, une requête qui fait un update pourrait avoir plusieurs causes d'un point de vue métier. De la même façon, on peut avoir plus de mal à savoir quel est l'utilisateur qui a déclenché la modif, depuis quel poste, etc.
    Tout cela peut être traité bien sur mais il faut connaitre le besoin pour choisir la meilleure solution.

  14. #13
    Fustigator

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Citation Envoyé par pm42 Voir le message
    Oui et il est pratique et relativement peu coûteux. Il a aussi des inconvénients : on a moins d'infos qu'au niveau applicatif et par exemple, une requête qui fait un update pourrait avoir plusieurs causes d'un point de vue métier. De la même façon, on peut avoir plus de mal à savoir quel est l'utilisateur qui a déclenché la modif, depuis quel poste, etc.
    Tout cela peut être traité bien sur mais il faut connaitre le besoin pour choisir la meilleure solution.
    Dans la mesure où il est étudiant, ma suggestion se voulait avant tout didactique.

  15. #14
    pm42

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Citation Envoyé par Fustigator Voir le message
    Dans la mesure où il est étudiant, ma suggestion se voulait avant tout didactique.
    Je pense qu'elle est très pratique et dans son cas, sans doute bien adaptée en plus d'être didactique.

  16. #15
    ptrs32

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Merci beaucoup pour vos réponses et votre implication, ça m'aide beaucoup.

    Fustigator
    Pour les Trigger ("déclencheurs" en français, mais ce terme ne s'utilise jamais ou quasiment dans le contexte des SGBD) , je vous suggère la lecture de la notice Wikipedia :
    https://fr.wikipedia.org/wiki/Déclencheur
    et surtout la version anglaise : https://en.wikipedia.org/wiki/Log_trigger

    Dans le cas qui nous occupe ici, l'idée est de ne pas utiliser l'application pour gérer la fonction d'historisation, mais d'utiliser des triggers au niveau des tables pour tracer toute modification des données et les stocker (du moins celles que l'on souhaite garder) dans des tables dédiées.
    Ce mécanisme est très classique.

    Bien sur, la visualisation de l'historique nécessitera un composant applicatif, mais pas sa constitution qui sera directement porté par les mécanismes du SGBD.
    En effet c'est tout a fait ce qu'il faudrait d'après moi, mais d'après wikipédia si j'ai bien compris ça nécessite de créer un double de chaque table pour recevoir l'historique des changements, c'est donc bien gérer automatiquement par MySQL ou faut il les prévoir dans mon implémentation ? Et cela implique en quelque sorte de doubler le volume final de la DB ?

    pm42
    Oui et il est pratique et relativement peu coûteux. Il a aussi des inconvénients : on a moins d'infos qu'au niveau applicatif et par exemple, une requête qui fait un update pourrait avoir plusieurs causes d'un point de vue métier. De la même façon, on peut avoir plus de mal à savoir quel est l'utilisateur qui a déclenché la modif, depuis quel poste, etc.
    Tout cela peut être traité bien sur mais il faut connaitre le besoin pour choisir la meilleure solution.
    Je comprends oui, mais dans l'idée il y aurait besoin d'une identification via une interface web pour accéder aux données, ça me permettrais en théorie de récupérer l'identifiant de l'utilisateur qui effectue la modification. Pour le poste ce n'est pas important en revanche.

  17. #16
    vgondr98

    Re : Création BDD et interface utilisateur avec outils spécifiques

    Sinon, pour l'historisation, une solution simple consiste à séparer les données de ton fichier excel en deux tables. Par exemple, si ton fichier excel contient des informations sur des variants issus de séquençage, tu aurais une table variants avec que des informations qui ne seront jamais modifiées comme le chromosome, la position génomique du variant, l'allèle de référence, l'allèle muté, le génome de référence ...
    L'autre table contiendrait les annotations du variant comme divers scores de pathogénécité, des commentaires utilisateurs ... et une colonne date, une colonne id_utisateur (qui pointe vers une ligne dans la table utilisateur) et une colonne id_variant (qui pointe vers une ligne dans la table variant).

    Chaque fois qu'un utilisateur modifie une information d'annotation via l'interface web, il suffit d'ajouter une ligne dans la table d'annotation.

    Je ne sais pas si c'est clair.

Discussions similaires

  1. Script de création de dossier perso par utilisateur avec gestion des droits en bat
    Par jimmy37 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 17/02/2012, 14h34
  2. Créer une interface entre l'utilisateur et matlab
    Par james_83 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 13/04/2010, 15h39
  3. Créer une interface utilisateur.
    Par invited2dbaf38 dans le forum Électronique
    Réponses: 44
    Dernier message: 17/01/2008, 10h31
  4. création d'interface graphique avec le GUI de matlab
    Par invite4d702022 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 30/08/2006, 14h19
  5. Création d'un compte utilisateur avec XP Ed. Fam.
    Par Tom-Tom dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 11/06/2004, 17h31