Query by Ejemplo ( QBE ) es un lenguaje de consulta de bases de datos relacionales . Fue ideado por Moshé M. Zloof en IBM Research a mediados de la década de 1970, en paralelo al desarrollo de SQL . [1] Es el primer lenguaje de consulta gráfico, que utiliza tablas visuales donde el usuario ingresaría comandos, elementos de ejemplo y condiciones. Muchas interfaces gráficas para bases de datos utilizan las ideas de QBE en la actualidad. Originalmente limitado solo con el fin de recuperar datos , QBE se amplió posteriormente para permitir otras operaciones, como inserciones, eliminaciones y actualizaciones, así como la creación de tablas temporales.
La motivación detrás de QBE es que un analizador puede convertir las acciones del usuario en declaraciones expresadas en un lenguaje de manipulación de bases de datos, como SQL . Detrás de escena, es esta declaración la que realmente se ejecuta. Una interfaz de usuario adecuadamente completa puede minimizar la carga que supone para el usuario recordar los detalles más finos de SQL, y es más fácil y productivo para los usuarios finales (e incluso los programadores) seleccionar tablas y columnas seleccionándolas en lugar de escribirlas. nombres.
En el contexto de la recuperación de información , QBE tiene un significado algo diferente. El usuario puede enviar uno o varios documentos y solicitar que se recuperen documentos "similares" de una base de datos de documentos [ver búsqueda por múltiples ejemplos [2] ]. La búsqueda por similitud se basa en la comparación de vectores de documentos (ver Modelo de espacio vectorial ).
QBE representa un trabajo fundamental en el desarrollo del usuario final , citado con frecuencia en artículos de investigación como un ejemplo temprano de este tema.
Actualmente, QBE es compatible con varias interfaces de bases de datos relacionales, en particular Microsoft Access , que implementa "Visual Query by Ejemplo", así como Microsoft SQL Server Enterprise Manager. También se implementa en varias bases de datos orientadas a objetos (por ejemplo, en db4o [3] ).
QBE se basa en el formalismo lógico llamado consulta de cuadro, aunque QBE agrega algunas extensiones, al igual que SQL se basa en el álgebra relacional .
Aquí se proporciona un ejemplo que utiliza la base de datos de proveedores y repuestos para ilustrar cómo funciona QBE.
El término también se refiere a una técnica general influenciada por el trabajo de Zloof mediante la cual sólo se utilizan elementos con valores de búsqueda para "filtrar" los resultados. Proporciona una manera para que un usuario de software realice consultas sin tener que conocer un lenguaje de consulta (como SQL ). El software puede generar automáticamente las consultas para el usuario (normalmente entre bastidores). Aquí hay unos ejemplos:
Ejemplo de formulario B :
.....Nombre: Bob..DIRECCIÓN:.....Ciudad:....Estado: TX..Código postal:
SQL resultante :
SELECCIONE * DE Contactos DONDE Nombre = 'Bob' Y Estado = 'TX' ;
Tenga en cuenta que los elementos en blanco no generan términos SQL . Dado que "Dirección" está en blanco, no se genera ninguna cláusula para ello. Por ejemplo, formulario C :
.....Nombre:..DIRECCIÓN:.....Ciudad: Sampleton....Estado:..Código postal: 12345
SQL resultante :
SELECCIONE * DE Contactos DONDE Ciudad = 'Sampleton' Y Código postal = '12345' ;
Las versiones más avanzadas de QBE tienen otras opciones de operadores de comparación, a menudo a través de un menú desplegable, como "Contiene", "No contiene", "Empieza con", "Mayor que", etc.
Otro enfoque para las comparaciones de texto es permitir uno o más caracteres comodín . Por ejemplo, si un asterisco se designa como carácter comodín en un sistema particular, la búsqueda de apellidos usando "Rob * " arrojaría (coincidiría) apellidos como "Rob", "Robert", "Robertson", " Roberto", etc.
Sistema de consulta visual (VQS)