Bases de datos querys

Solo disponible en BuenasTareas
  • Páginas : 10 (2466 palabras )
  • Descarga(s) : 0
  • Publicado : 21 de noviembre de 2010
Leer documento completo
Vista previa del texto
Capitulo 5

Query-by-Example

Query-by-Example (QBE, Consulta mediante ejemplos) es el nombre tanto de un lenguaje de manipulación de datos como el de un sistema de base de datos que incluyó a este lenguaje.

1. A diferencia de muchos lenguajes de consulta yde programación, QBE presenta una sintaxis bidimensional. Las consultas parecen tablas. Una consulta en un lenguaje unidimensional(como SQL) se puede formular en una línea (posiblemente larga). Un lenguaje bidimensional necesita dos dimensiones para la formulación de consultas. (Existe una versión unidimensional de QBE, pero no se considerará en este estudio.)

2. Las consultas en QBE se expresan «mediante un ejemplo». En lugar de incluir un procedimiento para obtener la respuesta deseada, se usa un ejemplo de qué es lodeseado. El sistema generaliza este ejemplo para obtener la respuesta a la consulta.

A pesar de estas características tan poco comunes existe una correspondencia entre QBE y el cálculo relacional de dominios. Las consultas en QBE se expresan utilizando
esqueletos de tablas. Estos esqueletos de tablas presentan el esquema de la relación.
QBE también permite formular consultas que conllevencomparaciones aritméticas (por ejemplo >), además de las comparaciones de igualdad.
Por ejemplo: Encontrar todos los números de préstamo de aquellos préstamos con una cantidad mayor que 700.

[pic]

Las comparaciones sólo pueden contener una expresión aritmética en el lado derecho de la operación de comparación (por ejemplo, > (_x + _y 20)). La expresión puede contener tanto variables comoconstantes.El lado izquierdo de la comparación debe estar vacío. Las operaciones aritméticas que son compatibles con QBE son =, y ¬. Obsérvese que la restricción del lado derecho a una única expresión aritmética implica que no se pueden comparar dos variables de distinto nombre. Considérese, como otro ejemplo, la consulta «Obtener los nombres de todas las sucursales que no tienen sede en Barcelona». Estaconsulta se puede formular del siguiente modo:

[pic]

La función principal de las variables en QBE es la de obligar a ciertas tuplas a tener el mismo valor en algunos atributos. Considérese la consulta «Obtener los números de préstamo de todos los préstamos pedidos conjuntamente por Santos y Gómez»:

[pic]

Para ejecutar la consulta anterior el sistema localiza todos los pares de tuplas dela relación prestatario que coinciden en el atributo número-préstamo, donde el valor del
atributo nombre-cliente es «Santos» para una tupla y «Gómez» para la otra. Una vez localizadas dichas tuplas, se muestra el valor del atributo número-préstamo. En el cálculo relacional de dominios la consulta se podría escribir como:

{ApS | x (Ax, pS prestatario x =«Santos»)
x (Ax, pS prestatario x=«Gómez»)}

Consultas sobre varias relaciones

QBE permite formular consultas que involucren varias relaciones distintas (de igual forma que el producto cartesiano o la reunión natural en el álgebra relacional). Las conexiones entre varias relaciones se llevan a cabo a través de variables, que obligan a algunas tuplas a tomar el mismo valor en ciertos atributos. Como ejemplo, supóngase que se deseaencontrar los nombres de todos los clientes que tienen un préstamo en la sucursal Navacerrada. Esta consulta se puede formular del siguiente modo:

[pic]

Para ejecutar la consulta anterior, el sistema localiza las tuplas en la relación préstamo que tienen el atributo nombre-sucursal igual a «Navacerrada». Para cada una de esas tuplas, el sistema busca las tuplas de la relación prestatario conel mismo valor para el atributo número-préstamo que el mismo atributo de la tupla de la relación préstamo. Finalmente, se muestra el valor del atributo nombre-cliente de todas las tuplas de la
relación prestatario que cumplan las condiciones anteriores.

Caja de condición

Algunas veces es poco conveniente o imposible expresar todas las restricciones de las variables de dominio dentro de...
tracking img