Sei sulla pagina 1di 4

LGEBRA RELACIONAL

El lgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de


operaciones que toman como entrada una o dos relaciones y producen como resultado una
nueva relacin. las operaciones fundamentales del lgebra relacional son seleccin, proyeccin,
unin, diferencia de conjuntos, producto cartesiano y renombramiento.

Estas operaciones son suficientes para expresar cualquier consulta, sin embargo, en algunas
ocasiones suele resultar un poco complicado expresar las consultas en base a estas operaciones.
Es por que se definen nuevas operaciones, las cuales, aunque no aaden potencia al lgebra
ayudan a simplificar las consultas habituales. Estas operaciones son la interseccin de conjuntos,
reunin natural, divisin, divisin y asignacin, se definirn en trminos de las operaciones
fundamentales.

Interseccin de conjuntos.
La interseccin de conjuntos se representa con el smbolo ().

La interseccin corresponde al conjunto de las tuplas que estn en R y S, siendo R y S compatibles.

Esta operacin puede expresarse en funcin de un par de operaciones de diferencias de


conjuntos, siendo as:

= ( )
Como ejemplo tendremos dos tablas, una llamada Titular_cuenta y otra llamada Prestatario
y en esta ocasin queremos saber el nombre de aquellos clientes que tienen tanto un prstamo
como una cuenta abierta.

Titular_cuenta Prestatario
nombreCliente numeroCuenta nombreCliente numPrstamo
Santos C-101 Santos P-17
Gmez C-215 Gmez P -23
Lpez C-102 Lpez P-15
Abril C-305 Soto P-14
Gonzles C-201 Prez P-93
Santos C-217 Gmez P-11
Rodriguez C-222 Fernndez P-16

() ( )

Como resultado de la operacin tendremos la siguiente tabla:


nombreCliente
Santos
Gmez
Lpez

Reunin Natural.
La unin natural es la que permite reconstruir las tablas originales previas al proceso de
normalizacin. Consiste en combinar la proyeccin, seleccin y producto cartesiano en una sola
operacin. Su smbolo es ( ).

En este ejemplo obtendremos los nombres de todos los clientes que tengan un prstamo, as
como el importe del mismo y la sucursal donde fue otorgado.

Prestatario Prstamo
nombCliente numPrestamo nombSucursal numPrestamo Importe
Santos P-17 Miraflores P-17 200,000
Gmez P-23 La Aurora P-23 400,000
Lpez P-15 Lima Cercado P-15 300,000
Soto P-14 Chacarilla P-14 300,000
Prez P-93 Primavera P-93 100,000
Gmez P-11 Surquillo P-11 180,000
Fernndez P-16 La Molina P-16 260,000

Primero se calcula el producto cartesiano de las relaciones Prstamo y Prestatario. Luego se


selecciona las tuplas vlidas, es decir, aquellas que tiene el mismo numPrestamo. Finalmente se
realiza la proyeccin del nombCliente,nombSucursal e importe. Teniendo as:
,,.,(.=. ( ))

Con la reunin natural la expresin anterior quedara reducida a:


Teniendo para ambas expresiones el siguiente resultado:

Nombcliente nombSucursal numPrestamo importe


Santos Miraflores P-17 200,000
Gmez La Aurora P-23 400,000
Lpez Lima Cercado P-15 300,000
Soto Chicarilla P-14 300,000
Prez Primavera P-93 100,000
Gmez Surquillo P-11 180,000
Fernndez La Molina P-16 260,000
Divisin
La operacin de divisin se denota por el smbolo () y resulta adecuada para las consultas que
incluyen la expresin para todos.

Para esto tendremos dos relaciones: A(x,y) y B(x,y), siendo los dominios de A y B los mismo. El
operador divisin nos retorna una nueva relacin formada por los atributos de A que no estn
en B, donde los valores de los otros atributos concuerdan con todos los valores de la relacin B.

Para el ejemplo vamos a hallar todos los clientes que tengan abierta una cuenta en todas las
sucursales de Surco.

Tenemos las siguientes tablas:

TitularCuenta Cuenta1
N_Cliente Cuenta N_Sucursal Cuenta Saldo
Gonzles C-101 Chacarilla C-101 100,000
Gmez C-215 La Aurora C-215 140,000
Lpez C-102 Lima Cercado C-102 80,000
Abril C-305 Chacarilla C-305 70,000
Gonzles C-201 Primavera C-201 180,000
Santos C-217 Surquillo C-222 140,000
Rodrguez C-222 La Molina C-217 150,000

Sucursal
N_Sucursal N_Distrito
Miraflores Miraflores
La Aurora Surquillo
Lima Cercado Lima
Chacarilla Surco
Primavera Surco
Surquillo Surquillo
La Molina La Molina
Barrios Altos Lima

Como primer paso vamos a obtener todas las sucursales de Surco:

N_Sucursal
Chacarilla
Primavera

Procedemos a encontrar todos los pares (nombre-cliente, nombre-sucursal) para los que el
cliente tiene una cuenta en una sucursal:
N_Cliente N_Sucursal
Gonzles Chacarilla
Gmez La Aurora
Lpez Lima Cercado
Abril Chacarilla
Gonzles Primavera
Santos La Molina
Rodrguez Surquillo

Ahora encontraremos los clientes que aparecen en R2 con los nombres de todas las sucursales
de R1, teniendo as como resultado final:

N_Cliente
Gonzles

Asignacin
La operacin de asignacin est denotada por el smbolo (). Es utilizado cuando es conveniente
escribir una expresin por partes utilizando la asignacin a una variable temporal y acta de
manera parecida a la asignacin de los lenguajes de programacin.

La evaluacin de una asignacin no da como resultado una relacin que se presenta al usuario,
ms bien, el resultado de la expresin a la derecha de () se asigna a la variable relacin a la
izquierda de (). Esta variable relacin puede utilizarse en expresiones posteriores.

Con la operacin asignacin se pueden escribir las consultas como programas secuenciales
consistentes en una serie de asignaciones seguida de una expresin cuyo valor se muestra como
resultado de la consulta. En las consultas del lgebra relacional la asignacin siempre debe
hacerse a una variable de relacin intermedia. Las asignaciones a relaciones permanentes
constituyen una modificacin de la base de datos, pero resulta, sin embargo, una manera
conveniente de expresar las consultas complejas.

Potrebbero piacerti anche