You are on page 1of 9

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=

N.de 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).

You might also like