Query by Example

L'interface QBE de Kexi

Query by Example (abrégé QBE, en français interrogation par l'exemple), est un type d'interface utilisateur servant à effectuer des recherches dans des bases de données relationnelles. Le principe d'une interface QBE est que l'utilisateur présente un exemple du résultat de recherche attendu - sous forme d'une matrice, puis le soumet au SGBD. Celui-ci recherchera alors toutes les données qui correspondent à cet exemple. Les tables de la base de données sont présentées à l'écran, et l'utilisateur peut les manipuler en vue de créer l'exemple[1],[2].

QBE a été inventé par Moshe Zloof pour le compte de IBM, en 1977.

Particularités

Avec ce système le résultat prime sur les moyens de mise en œuvre. Avec QBE, il ne s'agit pas, pour l'utilisateur, ni le développeur, d'apprendre un langage de requêtes, mais tout simplement de définir une image de la réponse que l'on veut obtenir, pour voir figurer les données répondant à l'interrogation demandée.

Il a été inventé par Moshe Zloof pour le compte de la compagnie IBM, en 1977. Commercialisé à partir de 1978, il a connu un certain succès grâce à son introduction au sein de la première version de Paradox (1.0 pour DOS) en 1985.

QBE est dès l'origine un langage relationnel complet intégrant la division relationnelle, opération décrite dans l'algèbre relationnelle de Codd qui n'est toujours pas présente de manière simple dans les plus récentes normes SQL (SQL:2003). En revanche QBE ne permet pas la récursivité dans les requêtes, alors que la version normative SQL:1999 le permet.

Exemple

Voici un exemple de requête QBE et son équivalent SQL :

Requête QBE

== T_CLIENT_CLI ===== CLI_NUM ============= CLI_NOM ===
                  | Check _join1!    | Check           |
                  |                  |                 |

== T_COMMANDE_CDE ===== CLI_NUM =========== CDE_DATE ================= CDE_MONTANT ===
                    | _join1         |   ≥  2000-01-01, ≤2000-03-31  | SOMME < 10000   |
                    |                |                               |                 |

Requête SQL

 SELECT CDE.CLI_NUM, CLI_NOM
 FROM   T_CLIENT_CLI CLI
        LEFT OUTER JOIN T_COMMANDE_CDE CDE
             ON  CLI.CLI_NUM = CDE.CLI_NUM
 WHERE  CDE_DATE BETWEEN DATE'2000-01-01' AND '2000-03-31'
 GROUP  BY CDE.CLI_NUM, CLI_NOM
 HAVING SUM(CDE_MONTANT) < 10000

Disponibilité

Les systèmes de gestion de base de données suivant mettent à disposition une interface QBE :

  • Ashton-Tate dBase
  • Corel Paradox
  • Microsoft Access
  • FileMaker
  • Kexi
  • OpenOffice.org Base
  • LibreOffice Base

Notes et références

  1. (en) Gad Ariav et James Clifford, New directions for database systems, Norwood, Ablex Pub. Corp., coll. « Computer-based information systems in organizations », , 269 p. (ISBN 978-0-893-91344-1, OCLC 13063674)
  2. (en) Yannis Vassiliou et Yannis Vassiliou, Human factors and interactive computer systems proceedings of the NYU Symposium on User Interfaces, Norwood, Ablex Publishing Corporation, coll. « Human/computer interaction », , 287 p. (ISBN 978-0-893-91182-9, OCLC 492861019)

Voir aussi

Liens externes

  • Les requêtes QBE en long en large et en travers
  • Syntaxe de QBE et des opérateurs relationnels
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail des bases de données