Você está na página 1de 16

ALGEBRA RELACIONAL

Se llama lgebra relacional a un conjunto de operaciones simples sobre tablas


relacionales, a partir de las cuales se definen operaciones ms complejas mediante
composicin. Definen, por tanto, un pequeo lenguaje de manipulacin de datos.
Es un lenguaje de procedimientos de alto nivel que permite, mediante el uso de ciertos
operadores, derivar las tablas deseadas desde las tablas base del modelo relacional.
Consta de un conjunto de operadores que toman como entrada una o dos relaciones y
producen como resultado una nueva relacin.
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.
El elemento fundamental del modelo relacional de bases de datos es la tabla relacional.
Una tabla relacional es una representacin extensional de una relacin definida sobre un
cierto dominio. As, son ejemplos de tablas:

cuyos dominios son, respectivamente: puede_asistir: ALUMNO GRUPO, gusta:


ALUMNO PROFESOR, y da_clase_en: PROFESOR GRUPO.
Se llama tupla a cada ``fila'' de una tabla, y es por supuesto un elemento del producto
cartesiano de los dominios que dan nombre a las columnas (atributos).

5.1 OPERACIONES FUNDAMENTALES DEL ALGEBRA


RELACIONAL
Las operaciones del lgebra Relacional se pueden clasificar en cuatro clases:
1.- Operaciones habituales de los conjuntos (unin, interseccin y diferencia)
2.- Operaciones que suprimen partes de una relacin (la seleccin elimina algunas tuplas
y la proyeccin algunas columnas)
3.- Operaciones que combinan las tuplas de dos relaciones (el producto cartesiano
combina pares de tuplas de dos relaciones y varias clases de reuniones que forman
parejas, de forma selectiva, a partir de dos relaciones)
4.- Operacin renombramiento que modifica el esquema de una relacin (nombres de
atributos y/o nombre de la relacin

Operaciones fundamentales: seleccin, proyeccin, unin, diferencia de conjuntos,


producto cartesiano y renombramiento.
Ejemplo: banco.

SELECCIN.

La operacin seleccin selecciona tuplas que satisfacen un predicado dado y


produce una nueva relacin con un subconjunto de tuplas de la relacin original
Para denotar la seleccin se utiliza la letra griega sigma minscula ()
El predicado aparece como subndice de
La relacin sobre la que se aplica aparece entre parntesis predicado (relacin)
Seleccionar las tuplas de la relacin prstamo en las cuales la sucursal es Fingoi
nombre_sucursal=Fingoi (Prstamo).

Seleccionar las tuplas en las cuales el importe prestado sea mayor que 9000
Importe >9000 (Prstamo).

Se permiten las comparaciones que utilizan


=, , <, , >, en el predicado

Se pueden combinar varios predicados con las conectivas y() y o()


nombre_sucursal=Fingoi importe>9000 (Prstamo)

El predicado puede incluir comparaciones entre dos atributos


nombre_cliente=nombre_banquero(ReponsablePrstamo)

PROYECCIN.

La operacin proyeccin selecciona argumentos de una relacin (elimina filas


duplicadas) y produce una nueva relacin que contiene algunas de las columnas
de la original
Para denotar la proyeccin se utiliza la letra griega pi mayscula ()
Los argumentos aparecen como subndice de
La relacin sobre la que se aplica aparece entre parntesis argumentos
(relacin)
Crear una lista de todos los nmeros de prstamo y del importe de los mismos
numero_prestamo, importe (Prstamo)

COMPOSICIONES DE OPERACIONES.

Es muy importante el hecho de que el resultado de una operacin relacional es


tambin una relacin
Las operaciones del lgebra relacional pueden componerse para formar una
expresin compleja del lgebra relacional
Encontrar los clientes que viven en Santiago
nombre_cliente (ciudad_cliente=Santiago (Cliente))

UNIN.

La operacin unin une tuplas de dos relaciones (que tengan el mismo nmero de
atributos y dominios iguales Compatibles) eliminando las tuplas repetidas
Para denotar la unin se utiliza la notacin de conjuntos (U)
Las relaciones sobre las que se aplica aparecen a los lados del operador
Define una relacin lgica OR

RELACIN1 U RELACIN2

Averiguar el nombre de todos los clientes del banco que tienen una cuenta, un
prstamo o ambas cosas.

DIFERENCIA DE CONJUNTOS.

La operacin diferencia de conjuntos selecciona tuplas de dos relaciones que


estn en una pero que no estn en la otra (que tengan el mismo nmero de
atributos y dominios iguales Compatibles)
Para denotar la diferencia de conjuntos se utiliza la notacin de matemticas (-)
Las relaciones sobre las que se aplica aparecen a los lados del operador.

RELACIN1 - RELACIN2

Buscar todos los clientes del banco que tienen abierta una cuenta pero no tienen
concedido ningn prstamo.

PRODUCTO CARTESIANO.

La operacin producto cartesiano, o producto, combina tuplas de dos relaciones


formando nuevas tuplas que tienen como primera parte una tupla de una relacin y
como segunda parte una tupla de la otra relacin
Para denotar el producto cartesiano se utiliza la notacin de matemticas (X)
Las relaciones sobre las que se aplica aparecen a los lados del operador.
Define una relacin lgica AND

RELACIN1 X RELACIN2

Al combinar dos relaciones puede ocurrir que atributos pertenecientes a ambas


relaciones

Tengan el mismo nombre.


Esquema_prestatario=
(nombre_cliente, numero_prestamo)
Esquema_prestamo=
(numero_prestamo, nombre_sucursal, importe)
Esquema_r [=prestatarioxprestamo] =
(prestatario.nombre_cliente,

prestatario.nmero_prestamo,
prestamo.numero_prestamo,
prestamo.nombre_sucursal, prestamo.importe)

TUPLAS DEL PROD. CARTESIANO.

Se crea una tupla en el Producto Cartesiano a partir de cada posible par de


tuplas de las relaciones que participan La relacin procedente del Producto
Cartesiano suele ser de gran tamao.

Averiguar los nombres de todos los clientes que tienen concedido un prstamo en
la Sucursal de Fingoi.

Ejemplo: banco.

Seleccionamos en el resultado del producto cartesiano las tuplas cuyo valor en


nombre_sucursal sea el que se busca
nombre_sucursal=Fingoi (prestatario x prestamo)

Filtramos el resultado a travs del nmero de prstamo


prestatario.numero_prestamo=prestamo.numero_prestamo
(nombre_sucursal=Fingoi (prestatario x prestamo))

Y proyectamos el resultado buscado nombre_cliente


(prestatario.numero_prestamo=prestamo.numero_prestamo
(nombre_sucursal=Fingoi (prestatario x prestamo)))

RENOMBRAMIENTO.

La operacin renombramiento permite poner nombre a una relacin (obtenida a


travs de una expresin) que no lo tenga.
Para denotar la proyeccin se utiliza la letra griega rho minscula () (tambin la
partcula as en una lista de argumentos).
El nombre a dar a la relacin aparece como subndice de y el nombre a dar a los
atributos como argumentos.
La expresin sobre la que se aplica aparece entre parntesis.
nombre(argumentos) (expresin)

5.2 OTRAS OPERACIONES DEL ALGEBRA RELACIONAL

Las operaciones fundamentales del lgebra relacional son suficientes para


expresar cualquier consulta del lgebra relacional.
Operaciones que no aaden potencial al lgebra pero que simplifican la expresin
de las consultas.
Tienen una expresin equivalente usando slo las operaciones fundamentales.

INTERCESIN.

Obtener relaciones del tipo y


relacin1 relacin2 U
=relacin1(Relacin1-relacin2).

Cuando se utiliza el producto cartesiano, se suele reducir forzando que los


argumentos con contenidos iguales tengan valores iguales
relacin1 relacin2
=relacin1.argumento=relacin2.argumento
(relacin1 x relacin2)

REUNIN THETA

La reunin theta permite reflejar una condicin arbitraria de reunin al producto


cartesiano
relacin1 Condicin relacin2
=condicin (relacin1 x relacin2).

ASIGNACIN.

La operacin asignacin acta de forma similar a la asignacin en los lenguajes


de programacin.
relacin1 Expresin
El resultado de la expresin de la derecha de se asigna a la variable relacin
situada a la izquierda de .

5.3 ALGEBRA RELACIONAL EXTENDIDA


PROTECCIN GENERALIZADA.

La operacin proyeccin generalizada ampla la operacin proyeccin


permitiendo que se utilicen funciones aritmticas en la lista de argumentos
funciones (relacin)

Ejemplo del banco:


Averiguar el importe de crdito disponible para cada lnea de crdito activa (lmite de
crdito: 25000)
numero_prestamo, 25000-importe (Prstamo)
numero_prestamo, (25000-importe) as disponible (Prstamo).

Las funciones de agregacin toman como entrada una coleccin de valores y devuelven
como resultado un valor resumen
Se representa por la G caligrfica: G

Ejemplo del banco:


-Averiguar la suma total de los sueldos de los empleados del banco G sum
(sueldo)(EmpleadosTP)

-Averiguar nmero de sucursales en los que hay al menos un empleado a tiempo parcial
G count-distinct(nombre_sucursal)(EmpleadosTP)

-Hallar la suma total de sueldos de los empleados a tiempo parcial por sucursal.
nombre_sucursal G sum (sueldo)
(EmpleadosTP)

REUNIN EXTERNA.

La operacin reunin externa es una ampliacin de la operacin reunin para


trabajar con informacin ausente (desconocida, no relevante,)
Genera valores nulos!
Ejemplo:
-Generar una nica relacin que contenga toda la informacin de los empleados (calle,
ciudad, sucursal y sueldo)

REUNIN NATURAL.
-Generar una nica relacin que contenga toda la informacin de los empleados (calle,
ciudad, sucursal y sueldo)
Empleado

EmpleadoTC

REUNIN EXTERNA IZQUIERDA.


La reunin externa por la izquierda toma todas las tuplas de la relacin de la izquierda
que no coincidan con ninguna tupla de la relacin de la derecha, las rellana con valores
nulos en los dems atributos de la relacin de la derecha y las aade al resultado de la
reunin natural
Empleado

EmpleadoTC

REUNIN EXTERNA DERECHA.


La reunin externa por la derecha toma todas las tuplas de la relacin de la derecha
que no coincidan con ninguna tupla de la relacin de la izquierda, las rellana con valores
nulos en los dems atributos de la relacin de la izquierda y las aade al resultado de la
reunin natural
Empleado

EmpleadoTC.

REUNIN EXTERNA COMPLETA.


La reunin externa completa realiza las operaciones de la reunin externa por la
izquierda y de la reunin externa por la derecha
Empleado

EmpleadoTC

5.4 VALORES NULOS.


TRATAMIENTO DE VALORES NULOS.

Es necesario analizar la forma en la que las operaciones del lgebra relacional


manejan los valores nulos (y las complicaciones que surgen)
Las operaciones y comparaciones con valores nulos se deberan evitar
siempre que sea posible
o Valor nulo: Valor desconocido o no existente

OPERACIONES ARITMTICAS.

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

COMPARACIONES.

Cualquier comparacin (como <, <=, >, >=, = y ) que incluya un valor nulo se
evala al valor especial desconocido
Como no se puede decir si el resultado de la comparacin es cierto o falso, se dice
que el resultado es un nuevo valor lgico denominado desconocido.

OPERACIONES LGICAS.

SELECCIN.

La operacin seleccin evala el predicado P enP(E) sobre cada tupla de E.


Si el predicado devuelve el valor cierto, se aade la tupla al resultado.
Si el predicado devuelve desconocido o falso, la tupla no se aade al resultado.

PROYECCIN.

La operacin proyeccin trata los nulos como cualquier otro valor al eliminar
duplicados.
La decisin es un tanto arbitraria porque sin saber cul es el valor real no se sabe
si los dos valores nulos son duplicados o no.

UNIN, INTERSECCIN, DIFERENCIA.

La unin, interseccin y diferencia tratan los valores nulos de la misma forma


que la operacin proyeccin.
El 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 los mismos.

REUNIN.

Las reuniones se pueden expresar como un producto cartesiano seguido de una


seleccin
La definicin de la forma en la cual la seleccin trata los nulos tambin define la
forma en que la operacin reunin trata los nulos

En una reunin natural, si dos tuplas tienen valor nulo en el atributo comn, las
tuplas no casan

PROYECCIN GENERALIZADA.

Los nulos en las expresiones de los atributos en la proyeccin generalizada se


tratan como en cualquier expresin
Las tuplas duplicadas que contienen valores nulos se tratan como en la operacin
proyeccin.

FUNCIONES DE AGREGACIN.

Cuando hay nulos en atributos agregados, la operacin borra los valores nulos
del resultado antes de aplicar la agregacin.
El tratamiento de los valores nulos aqu es diferente al realizado en las
operaciones aritmticas aplicarlo como en las operaciones aritmticas
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 como las operaciones de


reunin, excepto sobre las tuplas que no aparecen en el resultado.

5.5 OPERACIONES DE MODIFICACION A LAS BASES DE DATOS


MODIFICAR LA BASES DE DATOS.

Las modificaciones de la Base de Datos se expresan utilizando la operacin


de asignacin.
Las principales operaciones de modificacin de una Base de Datos son el
Borrado, la Insercin y la Actualizacin.

LAS RELACIONES COMO BOLSAS EN LOS SISTEMAS COMERCIALES.


En los sistemas comerciales de bases de datos, las relaciones son en realidad bolsas y
en ellas se permite que una misma tupla aparezca varias veces.
Las operaciones del lgebra relacional con conjuntos pueden aplicarse a las bolsas, pero
hay algunas leyes algebraicas que no se cumplen.
Adems de emplear el modelo de bolsas para las relaciones, estos sistemas ofrecen
operaciones que no existen en el lgebra relacional.
Entre ellas figuran: insercin, eliminacin y actualizacin de las tuplas en relaciones,
agregaciones en las relaciones y valores nulos en las tuplas.

BORRADO.
Las solicitudes de borrado es expresan, bsicamente, igual que las consultas en
lugar de mostrar las tuplas resultantes se eliminan de la Base de Datos
Slo se pueden borrar tuplas enteras.
rr E, E consulta
Del lgebra Relacional
Ejemplo del banco:
Borrar todas las cuentas de Gmez impositor impositor
nombre_cliente=Gmez (impositor)
Insercin.
Para insertar datos hay que especificar la tupla que se va insertar o escribir una
consulta cuyo resultado sea el conjunto de tuplas a insertar
r r U E, E expresindel lgebra Relacional una relacin constante
Ejemplo:
Insertar el hecho de que Gmez abre una cuenta (C-973) en la sucursal de la Plaza Roja
de Santiago con 1200
Cuenta cuenta U {(C-973, Plaza Roja, 1200)}
Impositor impositor U {(Gmez, C-973)}

ACTUALIZACIN.
Puede que, en algunas situaciones, se desee modificar slo algunos valores en una
tupla.
r F1, F2, , Fn (p (r)) U (r-p (r))
r F1, F2, , Fn (r)
Realizar un pago de intereses del 2% a todas las cuentas activas
Cuenta numero_cuenta, nombre_sucursal, saldo*1.02 (cuenta).

Você também pode gostar