Query By Example
Un article de Wikipédia, l'encyclopédie libre.
![]() |
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique. |
QBE : Query By Example
Query By Example ou QBE, c’est-à-dire interrogation par l'exemple, est un langage de requête révolutionnaire et concurrent à SQL, destiné aux bases de données relationnelles.
Sommaire |
[modifier] 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. 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.
[modifier] Exemple
Voici un exemple de requête QBE et son équivalent SQL :
[modifier] 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 | | | | |
[modifier] 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