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

Algorithmes et structures de données Discussion :

analyseur de requete sql


Sujet :

Algorithmes et structures de données

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut analyseur de requete sql
    Bonjour
    Est ce quelqu'un connaitrait un algo pour analyser la justesse d'une requete sql.
    Merci.

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Ca dépend de ce que tu entends pas justesse. Au niveau syntaxique ou sémantique ?

    Le langage SQL doit avoir une grammaire particulière. Il "suffit" donc d'appliquer un analyseur syntaxique en utilisant cette grammaire.

    Après, il se peut qu'il faille utiliser un analyseur sémantique pour vérifier si il n'y a pas de problème de type (ou qu'il manque des tables...)


    Si tu veux créer à toi tout seul l'analyseur lexical, syntaxique, ce n'est pas marrant Donc, je te conseillerai d'utiliser des outils suivant le langage que tu utilises (par exemple, lex et yacc sont disponibles en C, C++, camL, java...). Ensuite, je ne crois pas qu'il y ait d'analyseur sémantique tout fait, il faut surement se le farcir... Il y a peut être des outils qui vérifie automatiquement la syntaxe de commande SQL, mais je ne connais pas.

    Enfin, tout ça pour dire que l'algorithme pour faire ça. C'est une application de toute la théorie qui définie les langages et les analyseurs. Et c'est pas simple

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    c'est un analyseur syntaxique que je cherche en fait. j'ai un peu commencer à débroussailler mais je pense que je vais trop me prendre la tête dessus, c'est pour ca que je me demandais s'il n'y avait pas un algo.

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Un algo pour réaliser un analyseur syntaxique ? C'est vraiment compliqué, je te conseille vraiment d'utiliser une bibliothèque externe qui inclue un tel analyseur suivant ton langage (en plus qu'il faut faire l'analyse lexical avant).

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    et en sql tu en connais des bibliothèques externes?

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    C'est à quel niveau que tu veux faire l'analyse ? Quelque chose doit m'échapper.

  7. #7
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    ex: select * toto where id = 10
    là il te manque le from. ou bien
    select * from toto inner join toto where etc...
    il te manque le on plus les éléments de jointure. en gros savoir si la requete est correctemment rédigée.

  8. #8
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Oui, oui, c'est bien de l'analyse syntaxique, mais ce n'était pas ma deuxième question .

    Tu veux l'intégrer où dans l'application ton analyseur de requête. Il va te servir à quoi ? Est-ce qu'il faut un SGBD avec, où c'est juste un analyseur de requête qui dit si c'est bien écrit ou non ?

  9. #9
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    Bah en fait je trouve l'outil d'oracle un peu merdique. donc je me disais que j'allais me faire mon éditeur qui ressemble plus au query analyzer de Sql Server. je faisais un peu ca aussi pour bosser sur la derniere version du framework.Net 3.0.

  10. #10
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    pourquoi ne pas simplement soumettre un EXPLAIN de ta requête au SGBD ?

  11. #11
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    Explain? c'est mysql?

    En fait je pense que je vais balancer la requete et c'est le SGBD qui va me dire où ca plante. ca demanderait trop de boulot.

  12. #12
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Ça existe dans MySQL, Oracle, SQL Server, etc. Ça demande au SGBD de calculer le plan d'exécution ; du coup, c'est bcp plus rapide que de soumettre la requête (si elle est grosse), et ça interceptera les erreurs de syntaxe.

  13. #13
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    je viens d'essayer sous Oracle effectivement c'est pas mal. je vais opter pour ça.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pb de connexion a l'analyseur de requete de SQL server
    Par houda86 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/04/2007, 12h23
  2. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 10h31
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 17h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 12h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 14h43

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