Requête par l'exemple (QBE) est un langage de requête de base de données pour les bases de données relationnelles. C'est le premier langage de requête graphique, utilisant des tableaux visuels où l'utilisateur saisit des commandes, des éléments d'exemple et des conditions. La motivation derrière QBE est qu'un analyseur peut convertir les actions de l'utilisateur en instructions exprimées dans un langage de manipulation de données, tel que SQL. En arrière-plan, c'est cette instruction qui est réellement exécutée. Une interface frontale suffisamment complète peut minimiser la charge pour l'utilisateur de se souvenir des détails fins de SQL, et il est plus facile et plus productif pour les utilisateurs finaux (et même les programmeurs) de sélectionner des tables et des colonnes en les choisissant plutôt qu'en les tapant.
Historique
La requête par l'exemple a été conçue par Moshé M. Zloof au centre de recherche IBM durant le milieu des années 1970, en parallèle du développement de SQL, et influencée par les travaux sur les bases de données relationnelles d'Edgar Codd. Initialement limitée à la seule récupération de données, QBE a ensuite été étendue pour permettre d'autres opérations, telles que les insertions, les mises à jour et les suppressions, ainsi que la création de tables temporaires.
Actuellement, QBE est prise en charge par plusieurs interfaces frontales de bases de données, notamment Microsoft Access, qui implémente « Requête par l'exemple visuelle », ainsi que SQL Server Management Studio de Microsoft. Elle est également implémentée dans plusieurs bases de données orientées objet (par exemple, db4o). QBE est basée sur le formalisme logique appelé requête tableau, bien que QBE y ajoute quelques extensions, tout comme SQL est basé sur l'algèbre relationnelle.
Exemple
Un exemple utilisant la base de données Fournisseurs et Pièces est donné ici pour illustrer le fonctionnement de QBE. Un utilisateur remplirait un tableau visuel avec des valeurs d'exemple et des conditions pour récupérer les lignes correspondantes.
En tant que technique générale
Les versions plus avancées de QBE disposent d'autres options de comparaison, souvent via un menu déroulant, telles que « Contient », « Ne contient pas », « Commence par », « Supérieur à », etc. Une autre approche pour les comparaisons de texte consiste à autoriser un ou plusieurs caractères génériques. Par exemple, si un astérisque est désigné comme caractère générique dans un système particulier, alors une recherche de noms de famille utilisant « Rob* » renverrait (correspondrait à) des noms de famille tels que « Rob », « Robert », « Robertson », « Roberto », etc.
Dans SQL standard, le signe pourcentage fonctionne comme un caractère générique dans une clause LIKE. Dans ce cas, le logiciel de traitement de formulaire de requête par l'exemple traduirait l'astérisque en signe pourcentage. (Un astérisque est une convention de caractère générique plus courante en dehors de SQL, donc ici le formulaire tente d'être plus convivial.)
Le logiciel de requête par l'exemple doit faire attention à éviter l'injection SQL. Sinon, des utilisateurs malveillants pourraient pénétrer plus profondément dans la base de données que ne le souhaitent les concepteurs des formulaires de requête.
En recherche d'informations
Dans le contexte de la recherche d'informations, QBE a une signification quelque peu différente. L'utilisateur peut soumettre un document, ou plusieurs documents, et demander que des documents « similaires » soient récupérés depuis une base de documents (voir recherche par exemples multiples). La recherche de similarité est basée sur la comparaison de vecteurs de documents (voir le modèle vectoriel). Cette approche a influencé les systèmes modernes d'intelligence artificielle, en particulier dans l'apprentissage automatique et l'apprentissage profond, où la récupération basée sur la similarité est courante.
Héritage et influence
L'approche graphique de QBE a influencé de nombreuses interfaces frontales de bases de données et des outils de développement pour utilisateurs finaux. Ses principes se retrouvent dans les concepteurs de requêtes visuelles modernes et dans la conception d'interfaces conviviales pour des systèmes complexes. Le concept d'utiliser un exemple comme requête a des parallèles dans l'IA générative et les grands modèles de langage, où des invites ou des exemples guident la génération de sorties. Les travaux au PARC et au MIT CSAIL sur l'interaction homme-machine se sont appuyés sur des idées similaires pour rendre la technologie accessible aux non-spécialistes.
Voir aussi
- CRUD
- Microsoft Query by Example
- GraphQL, un QBE pour les front-ends JSON
- QBIC