Query by Example ( QBE ) es un lenguaje de consulta de base 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 . Es el primer lenguaje gráfico de consulta, que utiliza tablas visuales donde el usuario ingresa 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 propósito de recuperar datos , QBE se extendió 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. Un front-end adecuadamente completo puede minimizar la carga del usuario para 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 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 pedir que se recuperen documentos "similares" de una base de datos de documentos [ver búsqueda por múltiples ejemplos [1] ]. La búsqueda de similitudes se basa en la comparación de vectores de documentos (ver Modelo de espacio vectorial ).
QBE es 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 varios front-end 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 [2] ).
QBE se basa en el formalismo lógico llamado consulta de cuadro , aunque QBE agrega algunas extensiones a eso, al igual que SQL se basa en el álgebra relacional .
Ejemplo
Aquí se ofrece un ejemplo que utiliza la base de datos de proveedores y repuestos para ilustrar cómo funciona QBE.
S | S# | NOMBRE DE | DUEÑO | CIUDAD |
---|---|---|---|---|
P. SX | J. DOE | ROMA |
Como técnica general
El término también se refiere a una técnica general influenciada por el trabajo de Zloof en la que 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 entre bastidores). Aquí hay unos ejemplos:
Ejemplo de formulario B :
..... Nombre: Bob..Habla a:.....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: ..Habla a:..... Ciudad: Sampleton....Expresar: .. 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 operador de comparación, a menudo a través de un menú desplegable, como "Contiene", "No contiene", "Empieza por", "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 un carácter comodín en un sistema en particular, la búsqueda de apellidos con "Rob * " devolvería (coincidiría) con apellidos como "Rob", "Robert", "Robertson", " Roberto ", etc.
Ver también
- CRUD
- Microsoft Query por ejemplo
- GraphQL a QBE para interfaces JSON.
- QBIC
Referencias
Fuentes
- Zloof, Moshé M (mayo de 1975), "Query by Example", NCC (procedimientos), 44 , Anaheim , California: AFIPS.
- Ramakrishnan, Raghu ; Gehrke, Johannes , "6. QBE" (PDF) , Sistemas de gestión de bases de datos (3ª ed.), Wisc.
- Fecha, Christopher 'Chris' J. (2004), "8. Cálculo relacional", Introducción a los sistemas de bases de datos , Addison-Wesley Pearson, págs. 242–7, ISBN 978-0-321-18956-1.
- Definiciones de Oracle , objetivo tecnológico.
- Zaiane, "5" , CC 354 notes , Canadá: SFI.
enlaces externos
- Consulta por ejemplo para PostgreSQL , fundición de páginas.
- "Consulta por ejemplo en Java usando Hibernate", Jboss.
- "Experimentar OptiqueVQS: un sistema de consulta visual multiparadigma y basado en ontologías para usuarios finales", Optique (PDF).