You are on page 1of 9

Moreno Garca Luis Eduardo 29/02/16

Fundamentos de Base de Datos 8:00 9:00

Unidad 5: lgebra relacional


Introduccin
El lgebra relacional es un conjunto de operaciones que describen paso a paso cmo 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.

5.1 Operaciones fundamentales del algebra relacional


Las operaciones seleccin, proyeccin y renombramiento se denominan operaciones unarias porque
operan sobre una sola relacin. Las otras tres operaciones operan sobre pares de relaciones y se
denominan, por tanto, operaciones binarias.
Operacin seleccin
La operacin seleccin selecciona tuplas que satisfacen un predicado dado. Se usa la letra griega
sigma minscula () para denotar la seleccin. El predicado aparece como subndice de . La
relacin de argumentos se da entre parntesis a continuacin de . Por tanto, para seleccionar las
tuplas de la relacin prstamo en que la sucursal es Navacerrada se escribe:

La relacin que resulta de la consulta anterior es como aparece en la Figura 5.1

El predicado de seleccin puede incluir comparaciones entre dos atributos. Para ilustrarlo,
considrese la relacin responsable_prstamo, que consta de tres atributos: nombre_cliente,
nombre_responsable y nmero_prstamo, que especifica que un empleado concreto es el

1
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

responsable del prstamo concedido a un cliente. Para hallar todos los clientes que se llaman igual
que su responsable de prstamos se puede escribir:

Operacin proyeccin
Supngase que se desea obtener una relacin de todos los nmeros e importes de los prstamos,
pero sin los nombres de las sucursales. La operacin proyeccin permite obtener esa relacin. La
operacin proyeccin es una operacin unaria que devuelve su relacin de argumentos, excluyendo
algunos argumentos.
Dado que las relaciones son conjuntos, se eliminan todas las filas duplicadas. La proyeccin se
denota por la letra griega mayscula pi (). Se crea una lista de los atributos que se desea que
aparezcan en el resultado como subndice de . Su nico argumento, una relacin, se escribe a
continuacin entre parntesis. La consulta para crear una lista de todos los nmeros e importes de
los prstamos puede escribirse como:

Operacin unin
Considrese una consulta para determinar el nombre de todos los clientes del banco que tienen una
cuenta, un prstamo o ambas cosas. Obsrvese que la relacin cliente no contiene esa informacin,
dado que los clientes no necesitan tener ni cuenta ni prstamo en el banco.
Para determinar los nombres de todos los clientes con prstamos en el banco con las operaciones
estudiadas se escribe:

Igualmente, para determinar el nombre de todos los clientes con cuenta en el banco se escribe:

Para contestar a la consulta es necesaria la unin de estos dos conjuntos; es decir, hacen falta todos
los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos se
pueden averiguar mediante la operacin binaria unin, denotada, como en la teora de conjuntos,
por [. Por tanto, la expresin buscada es:

2
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

Operacin diferencia de conjuntos


La operacin diferencia de conjuntos, denotada por , permite hallar las tuplas que estn en una
relacin pero no en la otra. La expresin r - s da como resultado una relacin que contiene las tuplas
que estn en r pero no en s.
Se pueden buscar todos los clientes del banco que tengan abierta una cuenta pero no tengan
concedido ningn prstamo escribiendo:

Como en el caso de la operacin unin, hay que asegurarse de que las diferencias de conjuntos se
realicen entre relaciones compatibles. Por tanto, para que una operacin diferencia de conjuntos r
s sea vlida se exige que las relaciones r y s sean de la misma aridad y que los dominios de los
atributos i-simos de r y de s sean iguales.
Operacin producto cartesiano
La operacin producto cartesiano, denotada por un aspa (), permite combinar informacin de
cualesquiera dos relaciones. El producto cartesiano de las relaciones r1 y r2 se escribe r1 r2.
Recurdese que las relaciones se definen como subconjuntos del producto cartesiano de un
conjunto de dominios.

A partir de esa definicin ya se debe tener una intuicin sobre la definicin de la operacin producto
cartesiano. Sin embargo, dado que el mismo nombre de atributo puede aparecer tanto en r1 como
en r2, es necesario crear un convenio de denominacin para distinguir unos atributos de otros.

3
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

Operacin renombramiento
A diferencia de las relaciones de la base de datos, los resultados de las expresiones de lgebra
relacional no tienen un nombre que se pueda usar para referirse a ellas. Resulta til poder ponerles
nombre; la operacin renombramiento, denotada por la letra griega ro minscula (), permite
hacerlo.

5.2 Otras operaciones del algebra relacional


Las operaciones fundamentales del lgebra relacional son suficientes para expresar cualquier consulta
del lgebra relacional1. Sin embargo, limitndose exclusivamente a las operaciones fundamentales,
algunas consultas habituales resultan complicadas de expresar.

Por tanto, se definen otras operaciones que no aaden potencia al lgebra, pero que simplifican las
consultas habituales. Para cada operacin nueva se facilita una expresin equivalente usando slo las
operaciones fundamentales.

Operacin interseccin de conjuntos


La primera operacin adicional del lgebra relacional que se va a definir es la interseccin de
conjuntos ( ). Supngase que se desea conocer todos los clientes con un prstamo concedido y
una cuenta abierta. Empleando la interseccin de conjuntos se puede escribir:

Obsrvese que se puede volver a escribir cualquier expresin del lgebra relacional que utilice la
interseccin de conjuntos sustituyendo la operacin interseccin por un par de operaciones de
diferencia de conjuntos, de la manera siguiente:

Operacin reunin natural


La reunin natural es una operacin binaria que permite combinar ciertas selecciones y un producto
cartesiano en una sola operacin. Se denota por el smbolo de reunin 1. La operacin reunin
natural forma un producto cartesiano de sus dos argumentos, realiza una seleccin forzando la
igualdad de los atributos que aparecen en ambos esquemas de relacin y, finalmente, elimina los
atributos duplicados.

Suele resultar deseable simplificar ciertas consultas que exijan un producto cartesiano.
Generalmente, las consultas que implican un producto cartesiano incluyen un operador seleccin
sobre el resultado del producto cartesiano. Considrese la consulta Hallar los nombres de todos los
clientes que tienen concedido un prstamo en el banco y averiguar su nmero e importe.

4
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

En primer lugar se calcula el producto cartesiano de las relaciones prestatario y prstamo. Despus
se seleccionan las tuplas que slo ataen al mismo nmero_prstamo, seguidas por la proyeccin
de nombre_cliente, nmero_prstamo e importe resultantes:

Operacin divisin
La operacin divisin, denotada por , resulta adecuada para las consultas que incluyen la expresin
para todos. Supngase que se desea hallar a todos los clientes que tengan abierta una cuenta en
todas las sucursales ubicadas en Arganzuela. Se pueden obtener todas las sucursales de Arganzuela
mediante la expresin:

Operacin asignacin
Con la operacin asignacin se pueden escribir las consultas como programas secuenciales que
constan de 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 temporal.

Las asignaciones a relaciones permanentes constituyen una modificacin de la base de datos.


Obsrvese que la operacin asignacin no aade potencia alguna al lgebra. Resulta, sin embargo,
una manera conveniente de expresar las consultas complejas.

5
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

5.3 Algebra relacional extendida


Las operaciones bsicas del lgebra relacional se han extendido de varias formas. Una sencilla es permitir
operaciones aritmticas como parte de las proyecciones. Una importante es permitir operaciones de
agregacin, como el clculo de la suma de los elementos de un conjunto, o su media. Otra extensin
importante es la operacin reunin externa, que permite a las expresiones del lgebra relacional trabajar
con los valores nulos, que modelan la informacin ausente.

Proyeccin generalizada
La operacin proyeccin generalizada extiende la proyeccin permitiendo que se utilicen funciones
aritmticas en la lista de proyeccin. La operacin proyeccin generalizada es de la forma:

Donde E es cualquier expresin del lgebra relacional y F1; F2; : : : ; Fn son expresiones aritmticas que
incluyen constantes y atributos del esquema de E. Como caso especial, la expresin aritmtica puede ser
simplemente un atributo o una constante.

Funciones de agregacin
Las funciones de agregacin toman un conjunto de valores y devuelven como resultado un nico valor.
Por ejemplo, la funcin de agregacin sum toma un conjunto de valores y devuelve su suma. Por tanto,
la funcin sum aplicada al conjunto
{1; 1; 3; 4; 4; 11}
Devuelve el valor 24. La funcin de agregacin avg devuelve la media de los valores. Cuando se aplica al
conjunto anterior devuelve el valor 4. La funcin de agregacin count devuelve el nmero de elementos
del conjunto, y devolvera 6 en el caso anterior. Otras funciones de agregacin habituales son min y max,
que devuelven los valores mnimo y mximo del conjunto; en el ejemplo anterior devuelven 1 y 11,
respectivamente.

Reunin externa
La operacin reunin externa es una ampliacin de la operacin reunin para trabajar con informacin
ausente. Supngase que se dispone de relaciones con los siguientes esquemas y que contienen datos de
empleados a tiempo completo:

6
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

5.4 Valores nulos


En este apartado se define la forma en que las diferentes operaciones del lgebra relacional tratan los
valores nulos y las complicaciones que surgen cuando los valores nulos participan en las operaciones
aritmticas o en las comparaciones. Como se ver, a menudo hay varias formas de tratar los valores
nulos y, en consecuencia, las siguientes definiciones pueden ser a veces arbitrarias. Las operaciones y
las comparaciones con valores nulos se deben evitar siempre que sea posible.

Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operacin aritmtica
(como +;; y =) que incluya valores nulos debe devolver un valor nulo.
De manera parecida, cualquier comparacin (como <;<=; >;>= y 6=) que incluya un valor nulo tiene como
resultado el valor especial desconocido; no se puede decir si el resultado de la comparacin es cierto o
falso, as que se dice que el resultado es el nuevo valor lgico desconocido.

Las comparaciones que incluyen valores nulos pueden aparecer dentro de expresiones booleanas que
incluyan las operaciones y (conjuncin), o (disyuncin) y no (negacin). Por tanto, se debe definir la
forma en que estas tres operaciones lgicas tratan el valor lgico desconocido.

Ahora es posible describir la forma en que las diferentes operaciones del lgebra relacional tratan los
valores nulos:

Seleccin. La operacin seleccin evala el predicado P en P (E) sobre cada tupla t de E. Si el


predicado devuelve el valor cierto, se aade t al resultado. En caso contrario, si el predicado
devuelve desconocido o falso, t no se aade al resultado.

Reunin. Las reuniones se pueden expresar como un producto cartesiano seguido de una
seleccin. Por tanto, la definicin de la forma en que la seleccin trata los nulos tambin define
la forma en que lo hacen las operaciones reunin. En una reunin natural, por ejemplo, r 1 s se
puede observar de la definicin anterior que si dos tuplas, tr 2 r y ts 2 s, tienen un valor nulo en
un atributo comn, entonces las tuplas no coinciden.

Proyeccin. La operacin proyeccin trata los valores nulos como cualesquiera otros valores al
eliminar valores duplicados. As, si dos tuplas del resultado de la proyeccin son exactamente
iguales y las dos tienen valores nulos en los mismos campos, se tratan como duplicados.

Esta decisin es un tanto arbitraria ya que, sin conocer el valor real, no se sabe si los dos valores
nulos son duplicados o no.

Unin, interseccin y diferencia. Estas operaciones tratan los valores nulos igual que la
operacin proyeccin; tratan las tuplas que tienen los mismos valores en todos los campos como
duplicados, aunque algunos de los campos tengan valores nulos en ambas tuplas.

7
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

Este comportamiento es un tanto arbitrario, especialmente en el caso de la interseccin y la


diferencia, dado que no se sabe si los valores reales (si existen) representados por los nulos son
iguales.

Proyeccin generalizada. Se describi la manera en que se tratan los nulos en las expresiones al
comienzo del Apartado 2.5. Las tuplas duplicadas que contienen valores nulos se tratan como
en la operacin proyeccin.

Funciones de agregacin. Cuando hay valores nulos en los atributos agregados, las operaciones
de agregacin los tratan igual que en el caso de la proyeccin: si dos tuplas son iguales en todos
los atributos de agregacin, la operacin las coloca en el mismo grupo, aunque parte de los
valores de los atributos sean valores nulos.

Cuando aparecen valores nulos en los atributos agregados, la operacin borra los valores nulos
del resultado antes de aplicar la agregacin. Si el multiconjunto resultante est vaco, el
resultado agregado es nulo.

Obsrvese que el tratamiento de los valores nulos en este caso es diferente que en las
expresiones aritmticas ordinarias; se podra haber definido el resultado de una operacin de
agregacin como nulo si tan slo uno de los valores agregados fuera nulo.

Sin embargo, esto significara que un nico valor desconocido en un gran grupo podra hacer
que el resultado agregado sobre el grupo fuese nulo, y se perdera una gran cantidad de
informacin til.

Reunin externa. Las operaciones de reunin externa se comportan igual que las operaciones
de reunin, excepto sobre las tuplas que no aparecen en el resultado de la reunin. Esas tuplas
se pueden aadir al resultado (dependiendo de si la operacin es 1;1 o 1 ) rellenando con valores
nulos.

5.5 Operaciones de modificacin a la base de datos


Borrado
Las solicitudes de borrado se expresan bsicamente igual que las consultas. Sin embargo, en lugar de
mostrar las tuplas al usuario, se eliminan de la base de datos las tuplas seleccionadas. Slo se pueden
borrar tuplas enteras; no se pueden borrar valores de atributos concretos. En el lgebra relacional los
borrados se expresan mediante:

8
Moreno Garca Luis Eduardo 29/02/16
Fundamentos de Base de Datos 8:00 9:00

Insercin
Para insertar datos en una relacin hay que especificar la tupla que se va a insertar o escribir una consulta
cuyo resultado sea el conjunto de tuplas que se van a insertar. Evidentemente, el valor de los atributos
de las tuplas insertadas debe ser miembro del dominio de cada atributo. De manera parecida, las tuplas
insertadas deben tener la aridad correcta. El lgebra relacional expresa las inserciones mediante:

Actualizacin
Puede que, en algunas situaciones, se desee modificar un valor de una tupla sin modificar todos los
valores de esa tupla. Se puede usar el operador proyeccin generalizada para llevar a cabo esta tarea:

Para ilustrar el uso de la operacin actualizacin supngase que se va a realizar el pago de los intereses
y que hay que aumentar todos los saldos en un cinco por ciento:

You might also like