Algebra Relacional Extendido
Algebra Relacional Extendido
Algebra Relacional Extendido
Las operaciones bsicas del Algebra Relacional se han ampliado de varias maneras. Una aplicacin sencilla es permitir operaciones aritmticas como parte de la proyeccin. Una ampliacin importante es permitir operaciones de agregacin.
Otra ampliacin importante es la operacin reunin externa, que permite a las expresiones del algebra relacional trabajar con los valores nulos que modelan la informacin que falta.
La operacin Proyeccin Generalizada amplia la operacin de proyeccin permitiendo que se utilicen funciones aritmticas en la lista de proyeccin.
F1,F2,...,Fn(E)
En donde E es cualquier expresin del algebra relacional y F1, F2, . . . , Fn son expresiones aritmticas. De forma trivial, la expresin aritmtica puede ser simplemente un atributo o una constante.
Ejemplos de Actualizacin
interes y paga al resto un 5 por ciento cuenta NC, NS, SAL * 1.06 ( SAL 10000 (cuenta)) NC, NS, SAL * 1.05 (SAL 10000 (cuenta))
FUNCIONES DE AGREGACION
Las funciones de agregacin son funciones que toman una coleccin de valores y devuelven como resultado un nico valor. Las funciones de agregacin ms habituales son sum (Suma), avg (Media aritmtica), count (nmero de elementos), min y max (Mnimo y mximo, respectivamente). En la siguiente tabla se muestran algunos ejemplos de funciones de agregacin.
sum: suma de los valores avg: media de los valores count: nmero de valores min: valor mnimo de los valores max: valor mximo de los valores
Conjunto de valores
Funcin
resultado
{1, 1, 3, 4, 4, 11}
{1, 1, 3, 4, 4, 11} {1, 1, 3, 4, 4, 11} {1, 1, 3, 4, 4, 11} {1, 1, 3, 4, 4, 11}
Sum
avg count min max
24
4 6 1 11
La expresin del algebra relacional para el uso de una funcin de agregacin es Gf(a)(R)
Gf(a)(R) Donde f es la funcin de agregacin, R es la relacin considerada, y a es el atributo a utilizar. Por ejemplo: Gsum(sueldo)(empleado)
Es una relacin con un nico atributo, que contiene una sola la con un valor correspondiente a la suma de los sueldos de todos los empleados.
Las colecciones en las que operan las funciones de agregacin pueden tener valores repetidos; el orden en el que aparezcan los valores no tiene importancia. Pero hay casos en los que se desea borrar los valores repetidos antes de calcular la funcin de agregacin. Para ello hay que utilizar los mismos nombres de funciones que antes, con la cadena de texto -distinct al nal del nombre de la funcin (por ejemplo, count-distinct)
Es posible dividir una relacin en grupos, y aplicar las funciones de agregacin de forma independiente en cada grupo. La sintaxis seria as:
G1,G2,...,GnGF1(a1),F2(a2),...,Fm(am)(E)
donde E es cualquier expresion del algebra relacional; G1, G2, . . . , Gn constituyen una lista de atributos que indican como se realiza la agrupacin, cada Fi es una funcin de agregacin y cada Ai es el nombre de un atributo. La relacin resultante consistira en las tuplas con los atributos usado para agrupar, mas los resultado de las funciones de agregacin. .
EJEMPLO: Averiguar la suma total de los sueldos de los empleados del banco G sum(sueldo)(EmpleadosTP)
EMPLEADO
Gonzalez Diaz
SUCURSAL
Principal Atanasio Tzul
SUELDO
2700 3500
Relaci n r:
7
7 3 10
g sum(c) (r)
sum-C
27
Nombre-sucursal
sum(saldo)
(cuenta)
XXXX 1300 1500 700
Nombre-sucursal
La operacin reunin externa es una ampliacin de la operacin reunin para trabajar con la informacin que falta.
Esta operacin tiene tres formas diferentes: reunin externa por la izquierda, denotada por X, reunin externa por la derecha, denotada por X y reunin externa completa, denotada por X.
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
La reunin externa por la derecha (X) es simtrica de la reunin externa por la izquierda.
La reunin externa completa ( X) realiza estas dos operaciones, rellenando las tuplas de la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha y las tuplas de la relacion de la derecha que no coincidan con ninguna tupla de la relacin de la izquierda, y aadindolas al resultado de la reunin.
A menudo hay varias formas de tratar los valores nulos. Las operaciones y las comparaciones con valores nulos se deberan evitar siempre se sean posibles.
Dado que el valor especial nulo indica valor desconocido o no existente, cualquier operacin aritmtica que incluya valores nulos devolver un valor nulo. De manera similar, cualquier comparacin (como <,<, > >, ) que incluya un valor nulo se evala al nuevo valor lgico desconocido. Las operaciones lgicas tantn los valores desconocidos tal y como se muestra en la siguiente tabla
A la hora de efectuar operaciones en el algebra relacional que impliquen valores nulos, hay que tener en cuenta que las operaciones de proyeccin, unin, interseccin y diferencia tratan los valores nulos como cualquier otro valor al eliminar duplicados.
Si dos tuplas del resultado de alguna de estas operaciones son exactamente iguales, y ambos tiene nulos en los mismos campos, se tratan como duplicados. La decisin es un tanto arbitraria porque sin saber cual es el valor real no se sabe si los dos valores nulos son duplicados o no.
Para funciones de agregacin, hay que tener en cuenta que cuando hay nulos en los atributos agregados, las operaciones borra los valores nulos del resultado antes de aplicar la agregacin. Si el multiconjunto resultante esta vacio, el resultado antes de aplicar la agregacin. Si el multiconjunto resultante eta vacio, el resultado agregado ser nulo, Obsrvese que el tratamiento de los valores nulos aqu es diferente que en las expresiones aritmticas ordinarias.
FIN