Query by Example ( QBE ) es un lenguaje de consulta de bases de datos para 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 introduciría comandos, elementos de ejemplo y condiciones. Muchos front-end gráficos para bases de datos utilizan las ideas de QBE en la actualidad. Originalmente limitado solo al propósito de recuperar datos , QBE se amplió más tarde 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 lo suficientemente completa puede minimizar la carga del usuario para recordar los detalles más finos de SQL, y es más fácil y más productivo para los usuarios finales (e incluso para los programadores) seleccionar tablas y columnas seleccionándolas en lugar de escribir sus nombres.
En el contexto de la recuperación de información , QBE tiene un significado algo diferente. El usuario puede enviar un documento, o varios documentos, y solicitar que se recuperen documentos "similares" de una base de datos de documentos [ver ejemplos de búsqueda por múltiples [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 seminal en el desarrollo del usuario final , frecuentemente citado en artículos de investigación como un ejemplo temprano de este tema.
En la actualidad, QBE se soporta en varias interfaces de bases de datos relacionales, en particular Microsoft Access , que implementa "Visual Query by Example", 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 tabla, aunque QBE le agrega algunas extensiones, de forma muy similar a como SQL se basa en el álgebra relacional .
Se ofrece aquí 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, según la cual solo se utilizan elementos con valores de búsqueda para "filtrar" los resultados. Proporciona una forma 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 (generalmente en segundo plano). A continuación, se muestran algunos ejemplos:
Ejemplo de formulario B :
.....Nombre: Bob..DIRECCIÓN:.....Ciudad:....Estado: TX..Código postal:
SQL resultante :
SELECCIONAR * DE Contactos DONDE Nombre = 'Bob' Y Estado = 'TX' ;
Observe cómo los elementos en blanco no generan términos SQL . Dado que "Dirección" está en blanco, no se genera ninguna cláusula para ella. Por ejemplo, Formulario C :
.....Nombre:..DIRECCIÓN:.....Ciudad: Sampleton....Estado:..Código postal: 12345
SQL resultante :
SELECCIONAR * 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", "Comienza 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 en particular, entonces la búsqueda de apellidos utilizando "Rob * " devolvería (coincidiría) con apellidos como "Rob", "Robert", "Robertson", "Roberto", etc.
Sistema de consulta visual (VQS)