Está en la página 1de 13

Algebra Relacional

Jos e Ram on Param a Gab a

Cap tulo 4

Algebra relacional
Ya hemos visto la estructura y las restricciones del modelo relacional, ahora pasamos a abordar la parte del modelo relacional que nos falta, el conjunto de operaciones para manipular los datos. Codd estableci o dos lenguajes de consulta: el a lgebra relacional y el c alculo relacional. El a lgebra relacional es un lenguaje hasta cierto punto procedimental, mientras que el c alculo relacional es un lenguaje no procedimental. En este cap tulo nos centramos en el a lgebra relacional, que est a formado por un conjunto de operaciones que permiten al usuario especicar peticiones de recuperaci on. El resultado de una recuperaci on es una nueva relaci on, que se ha formado a partir de una o m as relaciones. Por lo tanto, las operaciones del a lgebra relacional producen nuevas relaciones que podr an manipularse m as adelante, utilizando operaciones de la misma a lgebra. Una secuencia de operaciones del a lgebra relacional forma una expresi on del a lgebra relacional, cuyo resultado ser a tambi en una relaci on. Las operaciones del a lgebra relacional suelen clasicarse en dos grupos. Uno contiene el conjunto de operaciones de la teor a de conjuntos (es posible aplicarlas porque las relaciones se denen como conjuntos de tuplas). Entre las operaciones de conjuntos est an la UNI ON, la INTERSECCION, la DIFERENCIA y el PRODUCTO CARTESIANO. El otro grupo consiste en operaciones creadas espec camente para bases de datos relacionales, incluye la (JOIN) entre otras. SELECCION, la PROYECCION y la REUNION

4.1.

Selecci on

n sirve para seleccionar un subconjunto de las tuplas de una La operaci on de Seleccio relaci on que satisfacen una condici on de selecci on. Se puede considerar la operaci on de n como un ltro que mantiene u Seleccio nicamente aquellas tuplas que satisfacen una condici on de cualicaci on. Por ejemplo, para seleccionar de la relaci on empleado los empleados que trabajan en el departamento 2 o aquellas cuyo salario m nimo rebasa los 20.000 e. Podemos especicar individualmente cada una de estas dos condiciones con la operaci on n como sigue: Seleccio

N umDept=4 (EM P LEADO) Salario>20000 (EM P LEADO) R. Parama Gab Jose a 1

CAP ITULO 4. ALGEBRA RELACIONAL n con: En general, denotamos la operaci on Seleccio <codicion
de seleccion> (R)

n, y la condici donde el s mbolo (sigma) denota al operador Seleccio on de selecci on es una expresi on booleana especicada en t erminos de los atributos de la relaci on R. N otese que R normalmente es una expresi on de a lgebra relacional cuyo resultado es una relaci on. La n tiene los mismos atributos que R. La expresi relaci on que resulta de la operaci on Seleccio on booleana especicada en la condici on de selecci on se compone de una o m as cl ausulas de la forma: <nombre de atributo> <operador de comparaci on> <valor constante>, o <nombre de atributo> <operador de comparaci on> <nombre de atributo> donde <nombre de atributo> es el nombre de un atributo de R, <operador de comparaci on> es normalmente uno de los operadores {=, <, , >, , =}, y <valor constante> es un valor constante del dominio del atributo. Las cl ausulas pueden conectarse arbitrariamente mediante los operadores booleanos AN D, OR y N OT para formar condiciones compuestas. Por ejemplo, si queremos seleccionar los empleados que trabajan en el departamento 2 y ganan m as de 35.000 e al a no, o que trabajan en el departamento 1 y ganan m as de 25.000 e, podemos escribir la consulta en a lgebra relacional como sigue: (N umDept=2
AN D Salario>35000) OR (N umDept=1 AN D Salario>25000) (EM P LEADO )

El resultado se puede observar en la Figura 4.1(a).


Nombre Apellido1 Moreira Prez Izquierdo Apellido2 Gonzlez Mosquera Snchez NSS 5874 5544 1122 F-Nac 25-7-85 21-8-69 9-9-70 Direccin Percebe 1 Lechuga 6 Calcetn 5 Sexo Mujer Mujer Varn Salario 38000 50000 30000 Supervisor 5544 Nulo Nulo Num-Dept 2 2 1 Ana Mara Luis

(a)

Nombre Jos Ana Mara Pedro Luis

Apellido1 Lpez Moreira Prez Gonzlez Izquierdo

Apellido2 Gmez Gonzlez Mosquera Ruz Snchez

Salario 34000 38000 50000 25000 30000 Sexo Num-Dept 2 2 1 Varn Mujer Varn

(b)

(c)

n y Proyeccio n. Figura 4.1: Resultados de las operaciones Seleccio n se determina como sigue. Se aplica En general, el resultado de una operaci on Seleccio la <condici on de selecci on> independientemente a cada tupla t de la relaci on R. Esto se hace sustituyendo cada ocurrencia de un atributo Ai en la condici on de selecci on por su valor en la tupla t[Ai ]. Si el resultado de evaluar la condici on es verdadero, se seleccionar a la tupla t. n es unario, es decir, se aplica a una sola relaci El operador Seleccio on. Adem as, la operaci on de selecci on se aplica a cada tupla individualmente, por ello las condiciones de selecci on no pueden implicar a m as de una tupla. El grado de la relaci on resultante de una n es el mismo que el de R. operaci on Seleccio 2

4.2. PROYECCION n es conmutativa, es decir: La operaci on Seleccio <cond1> (<cond2> (R)) = <cond2> (<cond1> (R)) n en cualquier orden. As pues, podemos aplicar una secuencia de operaciones Seleccio

4.2.

Proyecci on

n selecciona algunas Si pensamos en una relaci on como una tabla, la operaci on Selecci o las de la tabla y desecha otras. La operaci on Proyeccion, en cambio, selecciona ciertas columnas de la tabla y desecha las dem as. Si s olo nos interesan ciertos atributos de una n para proyectar la relaci relaci on, usamos la operaci on Proyeccio on sobre esos atributos u nicamente. Por ejemplo, si queremos hacer una lista con el nombre, apellidos y el salario de n: todos los empleados, podemos usar la siguiente operaci on Proyecci o N ombre,
Apellido1, Apellido2, Salario (EM P LEADO )

La relaci on resultante se muestra en la Figura 4.1(b). La forma general de la operaci on n es: Proyeccio <lista
de atributos> (R)

n y <lista de atributos> donde es el s mbolo usado para representar la operaci on Proyecci o es una lista de atributos de la relaci on R. De nuevo n otese que R es, en general, una expresi on de a lgebra relacional cuyo resultado es una relaci on (siempre es as ), la cual en el caso m as n simple es u nicamente el nombre de una relaci on. El resultado de una operaci on Proyecci o contiene u nicamente los atributos especicados en la <lista de atributos> y en el mismo orden que aparecen en la lista. Por ello, su grado es igual al n umero de atributos en la <lista de atributos>. Si la lista de atributos s olo contiene atributos no clave de R, es probable que aparezcan n elimina cualquier tupla repetida, tuplas repetidas en el resultado. La operaci on Proyeccio n es un conjunto de tuplas y por tanto una as que el resultado de la operaci on Proyeccio n: relaci on v alida. Por ejemplo, consideremos la siguiente operaci on Proyecci o Sexo,
N umDept (EM P LEADO )

El resultado se muestra en la Figura 4.1(c). N otese que las tuplas <Mujer, 2> y <Var on, 1> s olo aparecen una vez en dicha gura, aunque su combinaci on de valores aparece en ambos casos varias veces en la relaci on EMPLEADO. n no es conmutativa y adem La operaci on Proyeccio as: <lista1> (lista2 (R)) = <lista1> (R) siempre que <lista2> contenga los atributos que est an en <lista1>. 3

CAP ITULO 4. ALGEBRA RELACIONAL

4.3.

Secuencia de operaciones y la operaci on Renombrar

Las relaciones que aparecen en la Figura 4.1 carecen de nombres. En general, es posible que deseemos aplicar varias operaciones de a lgebra relacional una tras otra. Para ello, podemos escribir las operaciones en una sola expresi on de a lgebra relacional anid andolas, o bien podemos aplicar una operaci on cada vez y crear relaciones que contienen los resultados intermedios. En el segundo caso, tendremos que dar nombre a las relaciones que contienen los resultados intermedios. Por ejemplo, si queremos obtener el nombre, los apellidos y el salario de todos los empleados que trabajan en el departamento n umero 2, debemos aplicar una n y una operaci n. Podemos escribir una sola expresi operaci on Seleccio on Proyeccio on de a lgebra relacional, de la siguiente forma: N ombre,
Apellido1, Apellido2, Salario (N umDept=2 (EM P LEADO ))

La Figura 4.2 muestra el resultado que produce esta expresi on. Como alternativa, podemos mostrar expl citamente la secuencia de operaciones, dando un nombre a cada una de las relaciones intermedias: EM P S DEP T N umDept=2 (EM P LEADO) RESU LT ADO N ombre, Apellido1, Apellido2, Salario (EM P S DEP T ) A menudo es m as sencillo descomponer una secuencia compleja de operaciones especicando relaciones intermedias que escribir una u nica expresi on. Las dos operaciones anteriores se ilustran en la Figura 4.2(b).
Nombre Apellido1 Lpez Moreira Prez Gonzlez Izquierdo Apellido2 Gmez Gonzlez Mosquera Ruz Snchez Salario 34000 38000 50000 25000 30000 Jos Ana Mara Pedro Luis

(a)

EMPS-DEPT Nombre Apellido1 Lpez Moreira Prez Apellido2 Gmez Gonzlez Mosquera NSS 1245 5874 5544 F-Nac 21-1-71 25-7-85 21-8-69 Direccin Real 8 Percebe 1 Lechuga 6 Sexo Varn Mujer Mujer Salario 34000 38000 50000 Supervisor 5544 5544 Nulo Num-Dept 2 2 2 Jos Ana Mara

(b)

RESULTADO Nombre Jos Ana Mara Apellido1 Lpez Moreira Prez Apellido2 Gmez Gonzlez Mosquera Salario 34000 38000 50000

Figura 4.2: Utilizaci on de la operaci on Renombrar. Tambi en se pueden renombrar los nombres de los atributos, esto puede ser u til en ciertos casos. Para renombrar los atributos de una relaci on, bastar a con que incluyamos una lista con los nuevos nombres de atributos entre par entesis, como en el siguiente ejemplo:
T EM P N umDept=2 (EM P LEADO) R(N omb P ila, P rimer Apell, Segundo Apell, Sal) N ombre,
Apellido1, Apellido2, Salario (T EM P )

4.4. OPERACIONES DE LA TEOR IA DE CONJUNTOS

4.4.

Operaciones de la teor a de conjuntos

El siguiente grupo de operaciones del a lgebra relacional son las operaciones matem aticas est andar de conjuntos. Por ejemplo, para obtener los n umeros de la seguridad social de todos los empleados que trabajan en el departamento 2 o que supervisan directamente a un empleado como sigue: que trabaja en dicho departamento, podemos utilizar la operaci on UNI ON EM P S DEP 2 N umDept=2 (EM P LEADO) RESU LT ADO1 N SS (EM P S DEP 2) RESU LT ADO2(N SS ) Supervisor (EM P S DEP 2) RESU LT ADO RESU LT ADO1 RESU LT ADO2 La relaci on RESULTADO1 contiene los n umeros de la seguridad social de todos los empleados que trabajan en el departamento 2, y RESULTADO2 contiene los n umeros de la seguridad social de todos los empleados que supervisan directamente a empleados que n produce las tuplas que est trabajan en el departamento 2. La operaci on de Unio an en RESULTADO1, en RESULTADO2 o en ambas (v ease Figura 4.3).
Empleado
Nombre Jos Ana Mara Pedro Luis Raquel Apellido1 Lpez Moreira Prez Gonzlez Izquierdo Nez Apellido2 Gmez Gonzlez Mosquera Ruz Snchez Izquierdo NSS 1245 5874 5544 8811 1122 8877 F-Nac 21-1-71 25-7-85 21-8-69 7-7-79 9-9-70 8-8-80 Direccin Real 8 Percebe 1 Lechuga 6 Puerro 10 Calcetn 5 Rosa, 8 Sexo Varn Mujer Mujer Varn Varn Mujer Salario 34000 38000 50000 25000 30000 30000 Supervisor 5544 5544 8877 1122 Nulo 1122 Num-Dept 2 2 2 1 1 1

RESULTADO1 NSS 1245 5874 5544

RESULTADO2 NSS 5544 5544 8877

RESULTADO NSS 1245 5874 5544 8877

n. Figura 4.3: Ejemplo del uso de la operaci on Unio De las operaciones de conjuntos cl asicas, en el modelo relacional se utilizan varias: n, Interseccio n, Diferencia y Producto Cartesiano. Todas estas operaciones Unio son binarias, es decir, se aplican a dos conjuntos. Al adaptar estas operaciones al modelo n, Interseccio n y la Diferencia, las dos relaciones de relacional, en el caso de la Unio entrada deben ser del mismo tipo de tuplas, esta condici on se denomina compatibilidad con la uni on o uni on compatibles. Se dice que dos relaciones R(A1 , A2 , . . . , An ) y S (B1 , B2 , . . . , Bn ) son uni on compatibles si ambas tienen el mismo grado n y si dom(Ai )=dom(Bi ) para 1 i n. Esto signica que las dos relaciones tienen el mismo n umero de atributos y que cada par de atributos correspondientes tienen el mismo dominio. n, Interseccio n y Diferencia para dos Podemos denir las tres operaciones Unio relaciones uni on compatibles R y S como sigue: 5

CAP ITULO 4. ALGEBRA RELACIONAL n: el resultado de la operaci Unio on, denotando por R S , es una relaci on que incluye todas las tuplas que est an en R o en S o en ambas. Las tuplas repetidas se eliminan. n: el resultado de esta operaci Interseccio on, denotado por R S , es una relaci on que incluye as tuplas que est an tanto en R como en S . Diferencia: el resultado de esta operaci on, denotado por R S , es una relaci on que incluye todas las tuplas de R que no est an en S . Adoptaremos la convenci on de que la relaci on resultante tiene los mismos nombres de atributos que la primera relaci on R. La Figura 4.4 ilustra las tres operaciones. Las relaciones ALUMNO y PROFESOR (instructor en la gura) de la Figura 4.4(a) son compatibles con la uni on, y sus tuplas representan los nombres y primer apellido de alumnos y profesores n se muestra en la Figura 4.4(b), el de la respectivamente. El resultado de la Unio n en la Figura 4.4(c) y, la Diferencia ALUMNO-PROFESOR en 4.4(d) y Interseccio PROFESOR-ALUMNO en 4.4(e).

n, Interseccio n y Diferencia. Figura 4.4: Ilustraci on de las operaciones Unio n e Interseccio n son conmutativas, Como se puede observar las operaciones Unio mientras que la Diferencia no lo es. La otra operaci on de conjuntos que incorpora el a lgebra relacional es el Producto Cartesiano. Tambi en es una operaci on binaria de conjuntos, pero las relaciones no tienen porque ser uni on compatibles. El resultado del producto cartesiano de R(A 1 , A2 , . . . , An ) S (B1 , B2 , . . . , Bm ) es una relaci on Q con n + m atributos Q(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ), en ese orden. La relaci on resultante Q tiene una tupla por cada combinaci on de tuplas: una de R y una de S . Por tanto, si R tiene nR tuplas y S tiene nS tuplas, R S tendr a n R nS tuplas. Generalmente la operaci on de producto cartesiano por s sola no tiene mucho sentido, pero combinada puede tener utilidad. Como se aprecia en la Figura 4.5, el producto cartesiano de DEPARTAMENTO con LOCALIZACIONES DE DEPARTAMENTO no aporta ninguna informaci on, pero si al resultado del producto cartesiano le aplicamos una selecci on, podemos tener informaci on relevante. Por ejemplo, si calculamos:
R1 Departamento Localizaciones Dept RESU LT ADO N ombre Dept, Localizacion Dept (Departamento.N um
Dept=Localizaciones Dept.N umero Dept (R1)

obtenemos las diferentes localizaciones de un departamento (ver Figura 4.6). 6

4.5. JOIN

Departamento
Nombre_Dept Direccin Desarrollo Num_Dept 1 2 NSS-Jefe 1122 5544 Fech_Ini_Jefe 12-8-95 25-5-97 1 2 2 2

Localizaciones_Dept
Nmero_Dept Localizacin_Dept A Corua Ferrol Lugo Vigo

Departamento X Localizaciones_Dept
Nombre_Dept Direccin Direccin Direccin Direccin Desarrollo Desarrollo Desarrollo Desarrollo Num_Dept 1 1 1 1 2 2 2 2 NSS_Jefe 1122 1122 1122 1122 5544 5544 5544 5544 Fech_Ini_Jefe 12-8-95 12-8-95 12-8-95 12-8-95 25-5-97 25-5-97 25-5-97 25-5-97 Nmero_Dept 1 2 2 2 1 2 2 2 Localizacin_Dept A Corua Ferrol Lugo Vigo A Corua Ferrol Lugo Vigo

Figura 4.5: Ilustraci on de la operaci on Producto Cartesiano.


Resultado
Nombre_Dept Direccin Desarrollo Desarrollo Desarrollo Localizacin_Dept A Corua Ferrol Lugo Vigo

Figura 4.6: La relaci on RESULTADO.

4.5.

Join

La operaci on Join, denotada por 1, sirve para combinar tuplas relacionadas de dos relaciones en una sola tupla. Esta operaci on es muy importante en cualquier base de datos relacional que comprenda m as de una relaci on, porque permite procesar las asociaciones establecidas por las claves externas entre las relaciones. Volviendo al ejemplo de los departamentos y sus localizaciones, antes para poder saber las distintas localizaciones de cada departamento, primero realiz abamos un producto cartesiano de las relaciones DEPARTAMENTO y LOCALIZACIONES DEPT para obtener todas las posibles combinaciones de tuplas de las dos relaciones. Sobre el resultado del producto cartesiano, seleccionamos aquellas tuplas que tienen el mismo valor en los atributos Num Dept de DEPARTAMENTO y Numero Dept de LOCALIZACION DEPT, puesto que Numero Dept en LOCALIZACION DEPT es una clave externa que hace referencia a la clave primaria de DEPARTAMENTO (Num Dept). Este mismo efecto se logra aplicando el Join. En la Figura 4.7 se puede ver que las dos expresiones de a lgebra relacional que aparecen en la gura dan como resultado la misma relaci on. De este modo ahorramos una operaci on, es decir, en el caso de utilizar el producto cartesiano, habr a que luego aplicar una selecci on, pero con el join, s olo es necesaria una operaci on. 7

CAP ITULO 4. ALGEBRA RELACIONAL

Departamento.Num_Dept=Localizaciones_Dept.Numero_Dept (Departamento X Localizaciones_Dept)


Departamento
Departamento.Num_Dept=Localizaciones_Dept.Numero_Dept

Localizaciones_Dept
Nmero_Dept 1 2 2 2 Localizacin_Dept A Corua Ferrol Lugo Vigo

Nombre_Dept Direccin Desarrollo Desarrollo Desarrollo

Num_Dept 1 2 2 2

NSS_Jefe 1122 5544 5544 5544

Fech_Ini_Jefe 12-8-95 25-5-97 25-5-97 25-5-97

Figura 4.7: Ilustraci on de la operaci on Join. La forma general de una operaci on Join con dos relaciones R(A 1 , A2 , . . . , An ) y S (B1 , B2 , . . . , Bm ) es: R 1<condicion
de join>

El resultado del Join es una relaci on Q con n+m atributos Q(A1 , A2 , . . . , An , B1 , B2 , . . . , Bm ), en ese orden. Q tiene una tupla por cada combinaci on de tuplas (una de R y otra de S ) siempre que la combinaci on satisfaga la condici on de join. Esta es la principal diferencia entre el Producto Cartesiano y el Join; en el Join s olo aparecen en el resultado combinaciones de tuplas que satisfagan la condici on de join. En cambio, en el Producto Cartesiano, aparecen todas las combinaciones de tuplas. La condici on de join se especica en t erminos de los atributos de las dos relaciones, R y S , y se eval ua para cada combinaci on de tuplas de las dos relaciones. Cada combinaci on que de verdadero al evaluarse la condici on de join sobre ella aparecer a en la relaci on resultado Q como una sola tupla. Una condici on de join tiene la forma: < condicion > AN D < condicion > AN D . . . AN D < condicion > donde cada condici on tiene la forma Ai Bj , donde Ai es un atributo de R, Bj es un atributo de S , Ai y Bj tienen el mismo dominio y es uno de los operadores de comparaci on {=, <, , >, , =}. Una operaci on de Join con una condici on general de join como esta se denomina Theta Join. Las tuplas cuyos atributos de join sean nulos no aparecen en el resultado. El Join m as com un implica condiciones de join con comparaciones de igualdad exclusivamente. Un Join as en la que el u nico operador de comparaci on empleado es =, se denomina Equijoin. El ejemplo presentado anteriormente es un Equijoin. Obs ervese que en el resultado de un Equijoin siempre tenemos uno o m as pares de atributos con valores id enticos en todas las tuplas (aquellos que especican la condici on de join). Por ejemplo en la Figura 4.7, los valores de los atributos Num Dept y N umero Dept son id enticos en todas las tuplas porque se especic o una condici on de igualdad para estos dos atributos. Puesto que uno de cada par de atributos con valores id enticos es superuo, se ha creado una nueva operaci on, llamada Join Natural, para deshacerse de los atributos superuos en el resultado de un Equijoin. La denici on de Join Natural (denotado por 1 sin nada m as) exige que los pares de atributos sobre los que el Equijoin establece las condiciones de igualdad tengan el mismo nombre en las dos relaciones. En el siguiente ejemplo primero se renombra 8

4.6. DIVISION el atributo Numero Dept de LOCALIZACIONES DEPT a Num Dept para posteriormente aplicar un Join Natural. LOC (N um Dept, Loc Dept) LOCALIZACION ES DEP T DEP T DEP ART AM EN T O 1 LOC El atributo Num Dept se denomina atributo de join. La Figura ?? muestra el resultado de la expresi on anterior.
DEPT
Nombre_Dept Direccin Desarrollo Desarrollo Desarrollo Num_Dept 1 2 2 2 NSS_Jefe 1122 5544 5544 5544 Fech_Ini_Jefe 12-8-95 25-5-97 25-5-97 25-5-97 Localizacin_Dept A Corua Ferrol Lugo Vigo

Figura 4.8: Resultado de una operaci on de Join Natural. En la relaci on DEPT, cada tupla combina una tupla de DEPARTAMENTO y otra de LOCALIZACIONES DEPT, pero s olo se conserva un atributo de join. En general, el Join Natural se realiza igualando todos los pares de atributos que tienen el mismo nombre en las dos relaciones. Puede haber una lista de atributos de join de cada relaci on, y cada par correspondiente debe tener el mismo nombre.

4.6.

Divisi on

n es u La operaci on Divisio til para un tipo especial de consultas que se presenta a veces en aplicaciones de bases de datos. Un ejemplo es: obtener los datos de los empleados que trabajan en todos los proyectos en los que trabaja Ana Moreira. Para expresar esta n, procedemos como sigue. Primero, obtenemos la lista de consulta con la operaci on Divisio los n umeros de los proyectos en los que trabaja Ana Moreira, colocando el resultado en la relaci on intermedia NUMP ANA: AN A N ombre= AnaM oreira AN D Apellido1= M oreira (EM P LEADO) N U M P AN A N um P roy (T RABAJA EN 1N SSE =N SS AN A) Despu es, creamos una relaci on intermedia que incluye una tupla <Num Proy, NSSE> por cada vez que el empleado cuyo n umero de seguridad social es NSSE trabaja en el proyecto cuyo n umero es Num Proy: N SS N U M P N um
P roy, N SSE (T RABAJAE N )

n a las dos relaciones, obteniendo los n Por u ltimo, aplicamos la operaci on Divisio umeros de seguridad social de los empleados que queremos: N SSS (N SS ) N SS N U M P N U M P AN A RESU LT ADO N ombre, Apellido1 (N SSS 1 EM P LEADO) 9

CAP ITULO 4. ALGEBRA RELACIONAL


Empleado
Nombre Jos Ana Mara Pedro Luis Apellido1 Lpez Moreira Prez Gonzlez Izquierdo Apellido2 Gmez Gonzlez Mosquera Ruz Snchez NSS 1245 5874 5544 8811 1122 F-Nac 21-1-71 25-7-85 21-8-69 7-7-79 9-9-70 Direccin Real 8 Percebe 1 Lechuga 6 Puerro 10 Calcetn 5 Sexo Varn Mujer Mujer Varn Varn Salario 34000 38000 50000 25000 30000 Supervisor 5544 5544 Nulo 1122 Nulo Num-Dept 2 2 2 1 1

Trabaja-en
NSSE 1245 1245 5874 5544 5544 8811 1122 5874 Num-Proy 1 3 1 3 1 4 2 3 Horas 10 15 20 50 5 10 20 10 NSSE 1245 1245 5874 5544 5544 8811 1122 5874

NSS_NUMP
Num-Proy 1 3 1 3 1 4 2 3

Nump_Ana
Num-Proy 1 3

NSSS
NSS 1245 5874 5544

n. Figura 4.9: Ilustraci on de la operaci on Divisio En la Figura 4.9 se muestran las relaciones resultado de las operaciones anteriores. En n se aplica a dos relaciones R(Z ) S (X ), donde X Z . Sea general, la operaci on Divisio Y = Z X (y por tanto Z = X Y ), es decir, Y es el conjunto de atributos de R que non n es una relaci son atributos de S . El resultado de la Divisio on T (Y ) que incluye una tupla t si hay un conjunto de tuplas tR que aparecen en R, tal que para todas las tuplas tRi en tR , tRi [Y ] = t y tRk [X ] = tSj , tRk tR para cada tupla tSj en S . Esto signica que, para que n, los valores de t deben aparecer en R una tupla t aparezca en el resultado T de la Divisio en combinaci on con todas las tuplas de S . n donde X = {A}, Y = {B } y Z = {A, B }. La Figura 4.10 ilustra la operaci on Divisio Obs ervese que b1 y b4 aparecen en R en combinaci on con las tres tuplas de S , por eso aparecen en la relaci on resultante T . Todos los dem as valores de B en R no aparecen con todas las tuplas de S y no se seleccionan. n se puede expresar como una secuencia de operaciones , y , La operaci on Divisio como sigue: T1 Y (R) T2 Y ((S T1 ) R) T T1 T2

4.7.

Extensiones del algebra relacional

Despu es de que Codd introdujera el a lgebra relacional como lenguaje de consulta de bases de datos relacionales, numerosos investigadores han propuesto nuevos operadores, en general, necesarios para consultas comunes a bases de datos relacionales. De entre todas ellas vamos a destacar una extensi on que est a presente en la mayor a de los SGBD comerciales y es de utilidad, el Join Externo. 10

4.7. EXTENSIONES DEL ALGEBRA RELACIONAL

Figura 4.10: T R S .

4.7.1.

Join Externo

Las operaciones de Join antes descritas seleccionan tuplas que satisfacen la condici on de join. Las tuplas sin una tupla relacionada se eliminan del resultado. Las tuplas que tienen un nulo en los atributos de join tambi en se eliminan. Podemos utilizar el Join Exterior cuando queramos conservar en el resultado todas las tuplas que est en en R, en S o en ambas, ya sea que tengan o no tuplas coincidentes en la otra relaci on. Esto satisface la necesidad de las consultas donde las tuplas de las dos tablas se van a combinar para emparejar las correspondientes las, pero algunas tuplas se van a perder por no tener valores coincidentes con tuplas de la otra relaci on. En tales casos, es deseable tener una operaci on que conserve todas las tuplas tanto si se pueden emparejar como si no. Por ejemplo, sup ongase que deseamos una lista de todos los nombres de empleados y tambi en el nombre de los departamentos que dirigen, si es el caso de que dirijan un departamento. Podemos aplicar una operaci on Join Exterior Izquierdo, denotado por = , para obtener el resultado como sigue: T EM P (EM P LEADO = N SS =N SS Jef e DEP ART AM EN T O) RESU LT ADO N ombre, Apellido1, Apellido2, N ombre Dept (T EM P ) La operaci on de Join Exterior Izquierdo conserva todas las tuplas de la primera relaci on R (o relaci on de la izquierda) en R = S , si no se encuentra una tupla coincidente en S . Los atributos de S del resultado se rellenan con valores nulos. El resultado de estas operaciones se muestra en la gura 4.11. Una operaci on similar, el Join Exterior Derecho, denotado por <, conserva en el resultado de R < S todas las tuplas de la segunda relaci on S (la de la derecha). Una tercera operaci on, Join Exterior Completo, denotado por = <, conserva todas las tuplas de ambas relaciones, izquierda y derecha, cuando no se encuentran tuplas coincidentes, rellen andolas con valores nulos si es necesario.

11

CAP ITULO 4. ALGEBRA RELACIONAL

Resultado
Nombre Jos Ana Mara Pedro Luis Apellido1 Lpez Moreira Prez Gonzlez Izquierdo Apellido2 Gmez Gonzlez Mosquera Ruz Snchez Nombre-Dept Nulo Nulo Desarrollo Nulo Direccin

Figura 4.11: Operaci on Join Exterior Izquierdo.

12

También podría gustarte