ALGEBRA RELACIONAL
Es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como stas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Clculo relacional que es de tipo declarativo.
Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta. Operaciones bsicas
Cada operador del lgebra acepta una o dos relaciones y retorna una relacin como resultado. y son operadores usuarios, el resto de los operadores son binarios. Las operaciones bsicas del lgebra relacional son:
Seleccin () Permite seleccionar un subconjunto de tuplas de una relacin (R), todas aquellas que cumplan la(s) condicin(es) P, esto es: Proyeccin () Permite extraer columnas (atributos) de una relacin, dando como resultado un subconjunto vertical de atributos de la relacin, esto es:
Producto cartesiano (x) El producto cartesiano de dos relaciones se escribe como:
y entrega una relacin, cuyo esquema corresponde a una combinacin de todas las tuplas de R con cada una de las tuplas de S, y sus atributos corresponden a los de R seguidos por los de S.
Unin ()
La operacin
Retorna el conjunto de tuplas que estn en R, o en S, o en ambas. R y S deben ser uniones compatibles. Diferencia (-)
La diferencia de dos relaciones, R y S denotada por:
Entrega todas aquellas tuplas que estn en R, pero no en S. R y S deben ser uniones compatibles. Estas operaciones son fundamentales en el sentido en que (1) todas las dems operaciones pueden ser expresadas como una combinacin de stas y (2) ninguna de estas operaciones pueden ser omitidas sin que con ello se pierda informacin.
EJERCICIO 1
Sea la siguiente base de datos:
PROVEEDORES (nro.-p, nom-p, categora, ciud-p)
TEMS (nro.-i, descripcin-i, ciud.i)
PEDIDOS (nro.-p, nro-c, nro-i, cantida, precio)
Clientes (nro.-c, nom-c, ciud-c)
1. Listar los proveedores de crdoba.
nom-p ( ciud-p =crdoba (PROVEEDORES)
2. Listar los proveedores que proveen el temi1
nom-p ( nro.-i =i1) (PROVEEDORES) (TEMS)
3. Listar los clientes que solicitan tems provistos por p1
nom-c ( nro-p =p1) (CLIENTES) (PROVEEDORES)
4. Listar los clientes que solicitan algn tem provisto por proveedores con categora mayor que 4.
nom-c (CLIENTES* ( descripcin i (TEMS)* ( categora <4>
5. Listar los tems pedidos por clientes de Rosario.
nro-i (PEDIDOS)- nro-i (PEDIDOS * nom-p= Rosario (PROVEEDORES))
6. Listar los pedidos en los cuales un cliente de rosario solicita artculos
fabricados en Mendoza (ciud-i = Mendoza).
cantidad (PEDIDOS)* nom-p =Rosario (PROVEEDORES)* ciud i =Mendoza (TEMS).
7. Listar los pedidos en los que el cliente 23 solicita tems no solicitados por el cliente 30
cantidad ( nro-c =23) (PEDIDOS) cantidad ( nro-c=30) (PEDIDOS)
8. Listar las ciudades en la forma (ciu1, ciu2) tales que un proveedor en ciu1 provea tems solicitados por el cliente de ciu2.
Ciud-p=ciu1 ( ciud-c=ciu2)(PROVEEDORES)(CLIENTES)
9. Listar los nmeros de proveedores cuya categora sea mayor que la de todos los proveedores que proveen el tem cuadernos
nro-p ( categora> Todos proveedores) ( descripcin-i =cuaderno)(PROVEEDORES)( tems)
10. Listar los clientes que han pedido 2 o ms tems distintos.
nom-c ( cantidad > 2)* nro-i > 2 (PEDIDOS)
11. Listar los proveedores que proveen a todos los clientes de crdoba una cantidad mayor que el promedio de las cantidades pedidas por los clientes de Rosario.
nom-p ( ciud-p=crdoba)* cantidad> cantidades ( nom-p=
[Link] cantidad
Rosario) (PROVEEDORES, PEDIDOS)
EJERCICIO 2
Sea la siguiente Base de Datos:
VUELOS (nro-vuelo, desde, hasta)
AVIN UITILIZADO (nro-vuelo, tipo-avion, nro-avin)
INFO-PASAJEROS (nro-vuelo, dni, nombre, origen, destino).
Los vuelos no pueden tener ms de dos escalas y no hay cambio de tipo de avin para un mismo nmero de vuelo.
Realizar las siguientes consultas:
1.-Listar los nmeros de vuelos de A hasta F.
nro-vuelo ( desde=A, hasta=F) (VUELOS)
2.-Listar los tipos de avin que no son utilizados en ningn vuelo que pase por B
tipo-avin ( destino /B) (AVION-UTILIZADO)(INFO-PASAJEROS)
3.- listar los pasajeros y nmeros de vuelos para aquellos pasajeros que viajan de A a D pasando por B.
nombre, nro-vuelo ( origen=A, destino=D) (INFO-PASAJEROS)
4.- listar los tipos de avin que son utilizados en todos los vuelos que pasan por C.
tipo-avin ( destino=C)(AVION-UTILIZADO)(INFO-PASAJEROS)
EJERCICIO 3
Sea la siguiente Base de Datos:
Empleado (nro_ empleado, nombre, domicilio, localidad, antigedad)
Funcin (nro_funcion, descripcin)
Planta (nro_planta, descripcin, localidad)
Tarea (nro_ empleado, nro_funcion)
Organizacin (nro_planta, nro_funcin)
Trabaja (nro_empleado, nro_planta)
Distancia (localidad 1, localidad 2, distancia)
Describir en Algebra Relacional la siguiente consulta:
Listar los nombres de los empleados que viven ms lejos de su lugar de trabajo.
nombre ( distancia>todos) (EMPLEADO)(DISTANCIA).
EJERCICIO 4
Sea la siguiente Base de Datos:
Artculos (nro_art, descripcin, peso, precio_unit, fabricado_en)
Facturas (nro_fact, nro_cli, fecha, fecha_venc)
Detalles factura (nro_fact, nro_art,cant)
Clientes (nro_cli, nombre, domicilio, ciudad, pas, ocupacin)
Expresar la siguiente consulta en Algebra Relacional:
Listar los nombres de los clientes que hayan comprado al menos dos artculos distintos.
( nombre ( cant>2)* descripcin)(CLIENTES, DETALLE FACTURA, ARTICULOS).