4 - QBE (Query By Example)

[editar]
Curso gratis creado por Rafael Menéndez-Barzanallana Asensio. Extraido de: http://www.um.es/docencia/barzana
30 de Noviembre de 1999
Es un lenguaje comercial desarrollado por IBM y basado en el cálculo relacional de dominios. En él las consultas se hacen por medio de ejemplos, para ello se usan unas tablas que son "esqueletos" de relaciones. El sistema generaliza los ejemplos.
A) Consultas.
Para una consulta, el usuario solicita un esqueleto de la relación sobre la que quiere realizar la consulta, y lo rellena con columnas muestra, que pueden incluir constantes o variables de dominio. Los nombres de variable van precedidos del carácter de subrayado ‘_’.
Ejemplo: Obtener todos los nombres de los clientes que tienen prestamo en la sucursal principal



|| préstamo || num_prestamo || nombre_sucursal || nombre_cliente || importe || ||
||
|| Principal || P.ALL. _X ||
||


El comando P bajo la columna nombre_cliente indica que se muestren los valores, y com podemos ver, delante de la variable X, hemos introducido el carácter de subrayado, como sólo queremos ver los clientes que tienen préstamo en la sucursal principal, ponemos la constante Principal en la columna nombre_sucursal. Por último veamos el significado del comando ALL: QBE sí elimina los duplicados por defecto, por tanto si no queremos que los elimine tendremos que usar el comando ALL.
Si queremos realizar una consulta en la que empleemos dos relaciones, tendremos que solicitar dos esqueletos (uno para cada relación).
Ej: "Obtener el nombre y ciudad de los clientes que tienen préstamo en la sucursal principal".

|| prestamo || num_prestamo || nombre_sucursal || nombre_cliente || importe || ||
||
|| Principal || P._X ||
||




|| cliente || nombre_cliente || calle || ciudad || ||
|| _X ||
|| P._Y ||


Al emplear la misma variable en ambas tablas para el atributo nombre_cliente, estamos diciendo que queremos sólo aquellas tuplas en las que el nombre de cliente coincida en ambas relaciones, y que además tengan un préstamo en la principal.
B)Operaciones de Grupo.
Las operaciones posibles son: CNT, AVG, MIN, MAX, SUM.
Veamos un ejemplo: Obtener la media de los saldos por nombre de sucursal.

|| deposito || num_cuenta || nombre_sucursal || nombre_cliente || saldo || ||
||
|| P.G._X ||
|| P.ALL.AVG._Y ||


Mediante el comando G, conseguimos agrupar por nombre de sucursal, mientras que el comando AVG, nos da la media aritmética del salso de cada uno de esos grupos.
C) Inserción.
Para la inserción usamos el comando I, que pondremos en la tabla bajo el nombre de la relación.
Si queremos hacer una inserción individual:

|| deposito || num_cuenta || nombre_sucursal || nombre_cliente || saldo || || I. || 207 || Principal || García || 2.000.000 ||


Para una inserción de conjunto de tuplas, necesitamos dos esqueletos. Si por ejemplo, queremos insertar en una relación temp los nombres de todos aquellos clientes que tienen un préstamo en la sucursal principal, haríamos lo siguiente:


|| prestamo || num_prestamo || nombre_sucursal || nombre_cliente || importe || ||
||
|| Principal || _X ||
||





|| temp || nombre_cliente || || I. || _X ||


D)Modificación.
Para las modificaciones se usa el comando U.
Ejemplo: Multiplicar por 2 los importes de los préstamos.

|| prestamo || num_prestamo || nombre_sucursal || nombre_cliente || importe || ||
|| _X ||
||
|| _Y || ||
|| _X ||
||
|| U ._Y * 2 ||


E) Eliminación.
Para eliminar tuplas usamos el comando D, colocándolo en la columna del nombre de la relación.
Ejemplo: Eliminar todas las tuplas de la relación cliente, para las que el nombre del cliente sea "López"

|| cliente || nombre_cliente || calle || ciudad || || D. || Lopez ||
||
||


[editar]

6 opiniones

nandez

esta muy buenos los ejemplos y la neta sirve mucho
Kreo k.

La verdad es k ami si me sirvio mucho, articulos komo este son de gran ayuda.
Comentario.

Si amigo en realidad esta interesante, me ayudo
con mis inquietudes.
Sql.

Me parecio muy buen trabajo felicidades¡.
Ta chido.

Esta buena la informacion.
1 2 | siguiente >

Cursos gratis relacionados con 'Lenguajes Comerciales Relacionales en Bases de Datos'

Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
El más completo curso de Oracle.

Autor y licencia de 'Lenguajes Comerciales Relacionales en Bases de Datos'


Curso gratis de Rafael Menéndez-Barzanallana Asensio. Extraido de: http://www.um.es/docencia/barzana CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.