Está en la página 1de 16

INSTITUTO TECNOLOGICO DE ACAPULCO

FUNDAMENTOS DE BASE DE DATOS


ALGEBRA RELACIONAL
El algebra 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 algebra relacional son
seleccin, proyeccin, unin, diferencia de
conjuntos, producto cartesiano y renombramiento.
Adems de las operaciones fundamentales hay otras
apreciaciones, por ejemplo, interseccin de conjuntos,
reunin natural, divisin y asignacin. Estas
operaciones se definirn en funcin de las operaciones
fundamentales.
OPERACIONES FUNAMENTALES

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 lo tanto operaciones
binarias.
La operacin SELECCIN
La operacin seleccin, selecciona tuplas que satisfacen un predicado dado. Se utiliza la
letra griega sigma minscula () para denotar la seleccin. El predicado aparece como
subndice de . La relacin del argumento se da entre parntesis a continuacin de . Por
tanto para seleccionar las tuplas de la relacin Salarios en que la sucursal es <<Estel>>,
hay que escribir:
NomSuc = << Estel>>(Salarios)

El resultado del primer ensayo de seleccin seria:


Se pueden buscar todas las tuplas donde el salario devengado sea mayor a C$7,000 escribiendo:
Salario>7000 (Salarios), y el resultado sera el siguiente:

En general se permiten las comparaciones que utilizan =, , <, , >, o en el predicado de


seleccin. Adems se pueden combinar varios predicados en uno mayor usando las conectivas
y () y o (V). por tanto, para encontrar las tuplas correspondientes a la sucursal Estel, con
salarios mayores a 7,000 hay que escribir:
NomSuc = << Estel>> Salario > 7000 (Salarios)
y el resultado sera el siguiente:

En el caso que el predicado de la operacin de seleccin no genere ninguna tupla el resultado de


la seleccin ser un valor especial nulo que expresa valor desconocido o inexistente y se evalua
como falso, por elemplo:
NomSuc = << Estel>> Salario > 8500 (Salarios)
La operacin PROYECCIN
Supngase que se desea imprimir una lista determinada en las que no interesan
algunos datos como cdigo de empleado, cdigo de sucursal, ni el salario. La
operacin de proyeccin permite producir esta relacin. La operacin de
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 operacin de proyeccin se denota por la letra
mayscula pi (). Se crea la lista de atributos que se desea que aparezcan en el
resultado como subndice de . La relacin de argumentos se escribe a
continuacin entre parntesis. Por tanto; la consulta para crear una lista de todos los
empleados y sucursales puede escribirse como:
NomSuc, Empleado (Salarios)
Resultado:
Composicin de operaciones relacionales

Es importante el echo de que el resultado de una operacin


relacional sea tambin una relacin. Considrese una relacin
mas compleja, Encontrar los empleados de la sucursal de Estel,
en este caso habra que escribir:

Empleado (NomSuc = << Estel>>(Salarios))

Tngase en cuenta que, en vez de dar el nombre de una relacin en


el argumento de la operacin proyeccin se da una expresin que
se evala como una relacin.
Dado que las operaciones de algebra relacional se aplican a
relaciones y estas a su vez dan como resultado una nueva
relacin, las expresiones de algebra relacional pueden
combinarse para formar una expresin de algebra relacional.
La operacin UNION
Considrese la relacin Incentivos .

y la relacin Antigedad:

Se desea generar una lista que muestre los empleados que perciben ingresos por
incentivos, antigedad o ambos. Se puede observar que ambas relaciones no satisfacen
completamente la lista a generar.
No obstante se conoce la manera de generar la lista de empleados de la relacin incentivos:
Empleado (Incentivos)
de igual manera en la relacin Antigedad:
Empleado (Antigedad).
Para generar una lista que contenga ambos listados es necesario la operacin unin, de estos
dos conjuntos; es decir, hacen falta todos los nombres de los empleados que aparecen en
alguna de las dos relaciones o en ambas. Estos datos se pueden averiguar mediante la
operacin binaria unin, denotada igual que en la teora de conjuntos por U. por tanto la
expresin buscada es:
Empleado (Incentivos) U Empleado (Antigedad)
y el resultado mostrara lo siguiente:

Cabe sealar que la operacin de unin que efectuamos se dio entre dos relaciones que son
compatibles, es decir que poseen el mismo tipo de dominio, como lo es Empleado, no tendra
sentido tratar de hacer una operacin de unin entre el dominio empleado de la relacin
incentivo, con el dominio NomSuc de la relacin Salarios. Adems se debe tomar en cuenta el
numero de campos de la relacin, en el caso de incentivos tiene dos campos, mientras que
Salarios tiene cinco campos. Por tanto para que la relacin que una operacin unin rUs sea
vlida hay que exigir que se cumplan dos condiciones:
Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo nmero de
atributos.
Los dominios de los atributos i-esimos de r y de s deben ser iguales para todo i.
La operacin DIFERENCIA DE CONJUNTOS
La operacin diferencia de conjuntos denotada por el operador aritmtico -, permite buscar
las tuplas que estn en una relacin pero no en otra.
La expresin r-s da como resultado una relacin que contiene las tuplas que estn en r pero
no estn en s.
Se pueden buscar todos los empleados que no tengan incentivos, o antigedad, escribiendo:
Empleado (Salarios) - Empleado (Incentivos)

Empleado (Salarios) - Empleado (Antigedad)


La operacin PRODUCTO CARTESIANO
La operacin producto cartesiano denotada por una x permite combinar informacin
de dos relaciones cualquiera. El producto cartesiano de las relaciones r1 y r2 esta
dado por r1 x r2.
Recurdese que las relaciones se definen como subconjuntos del producto cartesiano
de un conjunto de dominios.
Dado que en este tipo de relaciones puede existir el mismo nombre de dominio en
ambas relaciones como lo es Empleado, en las relaciones Incentivos, Antigedad,
hay que crear un esquema de denominaciones para distinguir entre ambos
atributos. En este caso se logra adjuntando al atributo (dominio), el nombre de la
relacin de la que proviene originalmente. Por ejemplo, el esquema de la relacin r=
Incentivo x Antigedad es:

(Incentivo.Empleado, Incentivo.Incent, Antigedad.Empleado, Antigedad.Antig)

El acuerdo de denominaciones precedente exige que las relaciones que sean


argumentos de la operacin de producto cartesiano tengan nombres diferentes. Esta
exigencia causa problemas en algunos casos, como cuando se desea calcular el
producto cartesiano de una relacin consigo misma. Se produce un problema
similar si se utiliza el resultado de una expresin del algebra relacional en un
producto cartesiano, dado que har falta un nombre para la relacin para poder
hacer referencia a sus atributos.
La operacin RENOMBRAMIENTO
A diferencia de las relaciones de la base de datos, los resultados de las expresiones de algebra
relacional, no tienen un nombre que se pueda utilizar para referirse a ellas. Resulta til
poder ponerles nombre: el operador renombramiento, denotado por la letra griega rho
minscula (), permite realizar esta tarea. Dada una expresin E, se le puede resignar un
nombre x mediante la siguiente expresin:

x(E)
devuelve el resultado de la expresin E, con el nombre de x. las relaciones r por si mismas se
consideran expresiones (triviales), del algebra relacional. Por tanto, tambin se puede
aplicar la operacin renombramiento a una relacin r para obtener una misma relacin
con un nombre nuevo, de esa manera podemos darle una solucin al problema del
producto cartesiano cuando intentamos aplicar esta operacin con la misma relacin.

Por ejemplo: Incentivo x Incentivo2(Incentivo)


Otra forma de la operacin de renombramiento es la siguiente. Supngase que una
expresin de algebra relacional E tiene aridad n. Por tanto, la expresin :

x(A1, A1, An)(E)


Devuelve el resultado de la expresin con el nombre x, y los atributos con el nombre
cambiado a A1, A1, An respectivamente.
OPERACIN INTERSECCION DE
CONJUNTOS
La interseccin de conjuntos () comunes a dos
relaciones, por ejemplo encontrar los clientes que
tienen unacuenta y un prstamo en una sucursal sera:
nombre_cliente( nombre_sucursal=Nombre(prstamo) nombre_cliente(
nombre_sucursal=nombre (depsito))

Cualquier expresin del lgebra relacional que use la


interseccin de conjuntos puede reescribirse
sustituyendo laoperacin interseccin por un par de
operaciones diferencia de conjuntos: r s = r-(r-s).
As, la interseccin de conjuntos no es una
operacin fundamental y no aade potencia al lgebra.
OPERACIN REUNION NATURAL
Tpicamente, una consulta que implica un producto cartesiano incluye
una operacin de seleccin en el resultado del producto. Considrese la
consulta encontrar a todos los clientes que tiene un prstamo y las
ciudades en las que viven. Primero formamos el producto cartesiano de
las relaciones prstamo y cliente, despus seleccionamos aquellas
tuplas que presenten un nico nombre cliente.

prstamo.nombre_cliente, ciudad_cliente ( prestamo.nombre_cliente=cliente.nombre_cliente


(prstamo x cliente))
OPERACIN DIVISION
La operacin divisin () se establece para aquellas
consultas que incluyen la frase para todos2.
Supngase que queremos encontrar a todos los clientes
que tienen una cuenta en todas las sucursales que
estn en Brooklyn. Podemos obtener todas las
sucursales en Brooklyn mediante:
r1=nombre_sucursal( ciudad_sucursal=Brooklyn(depsito)
OPERACIN DE ASIGNACION
A veces es conveniente escribir una expresin del lgebra relacional por
partes usando la asignacin a una variable de relacin temporal. La
operacin asignacin (), funciona de forma 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 es asignado a la variable de relacin de la parte izquierda.
Esta variable de relacin puede usarse en subsiguientes expresiones.
Con la operacin asignacin, una consulta puede escribirse como un
programa secuencial que consta de una serie de asignaciones seguidas
de una expresin cuyo valor se presenta como el resultado de la
consulta. En lgebra relacional, la asignacin debe hacerse siempre a
una variable de relacin temporal. Es importante observar que la
operacin de asignacin no proporciona potencia adicional al lgebra,
es una forma conveniente de expresar consultas complejas de forma
ms sencilla

También podría gustarte