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

C# Discussion :

[Conseil]Application avec un base de données sans liens


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 15
    Points : 23
    Points
    23
    Par défaut [Conseil]Application avec un base de données sans liens
    Bonjour,

    Je suis actuellement en stage d'entreprise. Mon sujet de stage consiste à remettre en état une application C# qui ne fonctionne plus.

    Lors de la première revue de code je me suis aperçu que la base de données existante ne possédai que très peu de clé étrangère malgré une multitudes de liens entre chaque tables.(présence de clé non référencé).

    De plus la personne qui été avant moi à rajouté quelques liens directement dans la base déjà créer sans rajouté ses modifications dans le script de création.
    Je me retrouve donc avec un script de plus de 107 tables avec, aucune clé étrangère.

    l'ensemble des composants de l'application (à savoir 30 fenêtres) comporte une multitude de bugs dû à une programmation sans test. De plus l'interface utilisateur est très peu clair.

    Dois-je tout refaire (base de données, application...) ou bien essayer de réparer ce qui à été fait?
    Avez vous des idées pour retrouvé les liens non référencé?
    Comment être productif pour reconstruire cette base?(méthodologie à employer)

    Par avance merci.
    Cordialement

  2. #2
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Il faut vraiment discuter de cela avec ton chef.

    Pour ma part, je procèderais ainsi :
    - Créer un nouveau script de bdd avec les clés étrangères (en se basant sur l'existant et en l'améliorant)
    - Développer un petit outil de migration (en gros pour avoir les données incohérentes)
    - Analyser l'application afin de déterminer le niveau de criticité des anomalies (petit bug d'affichage, erreurs graves de traitement et d'insertion/mise à jour en base de données)

    Après il faut le vendre. Certes c'est un peu plus lourd dans un premier temps (surtout au niveau de la base de données) mais le gain de temps se verra ensuite sur les futures évolutions / corrections.

  3. #3
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Entièrement d'accord !
    Déjà, il faut tenir compte du temps qui t'est imparti et de ce qui est faisable durant ce temps; ensuite, si une autre personne prendra le relais (ou toi en cas d'embauche)

    Pour un débutant, il est extrêment difficile de chiffrer le projet, mais ce qui est attendu, c'est de l'esprit d'analyse.
    1/ Liste des problèmes
    2/ Solution(s) pour y remédier
    3/ validation par ton chef.

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    A ce qu'on dit mes collègues supra, que j'approuve tout à fait, je n'ajouterai qu'une chose, concernant les priorités.

    La priorité ici, c'est la base de donnée : tu peux faire la meilleure appli du monde, si elle s'appuie sur une base pourrie, le résultat sera pourri. (généralisation du principe bien connu : "Garbage in, garbage out" )

    Ici, donc, tu dois en priorité consolider le schéma de la base (clef externes, mais aussi contraintes, etc ....). Si ta base est consolidée (notamment au niveau des contraintes d'intégrité), les bugs de l'appli, aussi génant soient-ils, ne mettent pas en cause l'intégrité des données et on peut les régler petit à petit.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 15
    Points : 23
    Points
    23
    Par défaut
    merci de vos réponses.

    La base de données ne respect pas le modèle Merise.
    pour donner un exemple j'ai des types de ligne de commande qui sont relié avec un article par une cardinalité de 0-1 alors qu'il peut y avoir plusieurs types de ligne de commande pour un même article.
    Toute la base de données et saturé de débilité comme celle-là.
    J'ai recommencé un MCD au propre, dans lequel je met ma base à jours use case par use case.
    Je travail en Entity framework pour cette application et je n'ai aucun MCD ni MLD de la version précédente.

    pour reprendre ce qui à été dis précédemment, l'application à été réalisé par le biais de DataSet et DataTable avec des requêtes LINK. à chaque accés à la base de connaissance, la personne refait une connexion ce qui rend l'application lente. Je ne sais pas si essayer de corriger les 30 fenêtres soit vraiment utile en terme de gain de temps tant il y a des choses à réparer.

    es-ce une bonne façon de procéder?

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par ferranzo Voir le message
    à chaque accés à la base de connaissance, la personne refait une connexion ce qui rend l'application lente.
    Non, avec les pools de connexion, cette façon de faire n'entraine normalement pas de ralentissement. C'est d'ailleurs ainsi qu'on procède pour les applis web (ouverture de la connexion, chargement de la page, fermeture).

  7. #7
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    A mon avis, la lenteur est surtout dû au manque d'index et de fk... Ce genre de choses. Bref de l'optimisation de base. Le travail du DBA s'il y en a un. Sinon celui du dev !

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par kheironn Voir le message
    Bref de l'optimisation de base. Le travail du DBA
    Je ne suis pas tout à fait d'accord : le DBA doit s'assurer de l'intégrité et du maintien des perfs des bases en fonctionnement. Optimiser le schema d'une base de donnée relève des études, avec éventuellement le support technique du DBA, mais ne relève pas du DBA lui même.

Discussions similaires

  1. [Débutant] Exporter son application avec une base de données
    Par Invité dans le forum VB.NET
    Réponses: 13
    Dernier message: 20/02/2015, 10h57
  2. [VB.NET] application avec une base de donnée - quelles options ?
    Par wabdev dans le forum Débuter
    Réponses: 2
    Dernier message: 28/03/2012, 23h03
  3. Synchroniser une application avec une base de données centrale
    Par Sayrus dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 25/08/2009, 20h22
  4. Une application avec une base de données
    Par nabil148911 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/03/2008, 11h21
  5. [Modèle Relationnel] Une base de données sans liens ni triggers
    Par Promeneur dans le forum Schéma
    Réponses: 15
    Dernier message: 27/05/2005, 10h35

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