Вы находитесь на странице: 1из 5

Clculo Relacional de Tuplas

Es un lenguaje de consulta formal que permite expresar las consultas a partir de frmulas bien formadas, donde las variables son interpretadas como variantes sobre las tuplas de las tablas. Fue presentado por Codd en 1972 y se deduce del Clculo de Predicados. tomos: 1. 2. las variables estn asociadas a las tuplas de las tablas y se denota como relacin(variable). Ejm: Modelo(M). los valores constantes estn asociados a los valores de los dominios de los atributos y las funciones generadoras de los mismos se denotan como variable.atributo. Ejm: M.marca 3. los predicados utilizados se construyen con los operadores de comparacin {<, , >, , =, } y constantes. Ejm: M.marca fiat. Una frmula bien formada (fbf) se define como: 1. 2. 3. 4. Todo tomo es una frmula bien formada F Si F1 y F2 son fbf, entonces F1 and F2, F1 or F2, not F1 o not F2 son fbf F1 es una fbf F1 es una fbf

Ejemplos de consultas segn el esquema relacional siguiente: Producto(nroPro, nombrePro, cantidad, color) Venta(nroVen, fechaVen, nombreCliente, nroProVen, cantidadVen) Compra(nroCom, fechaCom, nombreProveedor, nroProCom, cantidadComp) a. Cul es el nombre y el color de cada producto en almacn? { P.nombrePro, P.color / Producto( P ) } b. Cul es el nombre y la cantidad de cada producto de color rojo en el almacn? { P.nombrePro, P.cantidad / Producto( P ) P.color = rojo } c. Cul es el nombre del proveedor de cada producto en el almacn?

{ C.nombreProveedor, P.nombrePro / Producto( P ) Compra( C ) P.nroPro = C.nroProCom } d. Cules son los clientes que han comprado al menos un producto de color verde? { V.nombreCliente, P.nombrePro / P Venta( V ) Producto( P ) V.nroProVen = P.nroPro P.color = verde } e. Cules son los nombres de los productos comprados a todos los proveedores y vendidos a por lo menos un cliente? { P.nombrePro, C.nombreProveedor / B A V Venta( V ) Producto( P ) Compra( A ) Compra( C ) P.nroPro = V.nroProVen P.nroPro = A.nroProCom A. nombreProveedor = C.nombreProveedor }

Lenguaje QUEL
Este lenguaje est basado en el Clculo Relacional de Tuplas, fue presentado por Zook en 1977 y es el lenguaje del SMBD Ingres. La sintaxis de sus instrucciones es la siguiente:

Declaracin de variables
Range of <listaDeVariables> is <listaDeTablas> Esta instruccin se coloca antes de realizar una consulta o una actualizacin, para indicar qu variable est asociada a qu tabla. La asociacin se realiza siguiendo el orden y nmero indicado en cada lista. Ejemplo: Range of P, V, C, A is Producto, Venta, Compra, Compra

Consultas
Retrieve [ [into] <nombreTabla> ] <listaDeAtributosConSuVariable> [ where <condicin> ] Indica que se quiere recuperar los atributos indicados en la lista con sus variables asociadas. Opcionalmente, se puede indicar que el resultado de la consulta sea almacenado temporalmente en la tabla indicada y tambin, que las tuplas recuperadas cumplan con la condicin adjunta a la clusula where. A continuacin se muestran las instrucciones QUEL para las consultas indicadas en la seccin anterior, utilizando la declaracin de variables colocada en el ejemplo anterior. a. Cul es el nombre y el color de cada producto en almacn? retrieve P.nombrePro, P.color b. Cul es el nombre y la cantidad de cada producto de color rojo en el almacn? retrieve P.nombrePro, P.cantidad where P.color = rojo c. Cul es el nombre del proveedor de cada producto en el almacn? retrieve C.nombreProveedor, P.nombrePro

where P.nroPro = C.nroProCom d. Cules son los clientes que han comprado al menos un producto de color verde? retrieve V.nombreCliente, P.nombrePro where V.nroProVen = P.nroPro and P.color = verde e. Cules son los nombres de los productos comprados a todos los proveedores y vendidos a por lo menos un cliente? retrieve P.nombrePro, C.nombreProveedor where P.nroPro = V.nroProVen and P.nroPro = A.nroProCom and A. nombreProveedor = C.nombreProveedor

Funciones
Las funciones bsicas disponibles son: avg (Promedio), sum (sumatoria), count (contar), min (mnimo), max (mximo) Dichas funciones se aplican a los atributos en cualquier parte de las sentencias. Adems, las funciones se pueden aplicar segn las estructuras siguientes: <funcin> ( <atributo> [ where <condicin> ] ) <funcin> ( <atributo1> by <atributo2> [ , <atributo3> ] where <condicin> ]) Ejemplo: Retrieve P.color, sum( P.cantidad by P.color where P.cantidad > 100 ) Where P.nroPor = V.nroProVen and V.fechaVen > 10/10/01

Cuantificadores
El cuantificador existencial ( ) se expresa normalmente con las variables declaradas y el cuantificador universal ( ) se indica con ayuda de la funcin count verificando que todas las tuplas satisfacen la condicin colocada en la instruccin.

Actualizaciones
Insercin de una tupla nueva Append [to] <variable> ( at = valor, ... ) [ where <condicin>] Inserta la tupla nueva que se encuentra entre parntesis, en la tabla indicada si se cumple la condicin descrita. Ejemplo: Append to V (nroVen=max(nroVen)+1, fechaVen = 12/12/01, nombreCli = Molina, nroProVen = P.nroPro, cantidadVen = 10) where P.nombrePro = Paraguas Modificacin de una o varias tuplas Replace <variable> ( <listaDeAtributos>) [ where <condicin> ] Modifica la(s) tupla(s) de la tabla asociada a la variable en aquellos atributos incluidos en la lista si cumplen con la condicin indicada. Ejemplo: Replace P (cantidad = cantidad + 10 ) where P.nombrePro = Paraguas Eliminacin de una o varias tuplas Delete <variable> [ where <condicin> ] Elimina la(s) tupla(s) de la tabla asociada a la variable si cumple con la condicin indicada. Si no se coloca la condicin, se eliminan todas las tuplas. Ejemplo: Delete P where P.color = verde

Вам также может понравиться