jueves, 3 de abril de 2014

BD I - Capítulo 5. Álgrebra Relacional: MINUS

Centraremos nuestra atención en un nuevo operador del álgrebra relacional: MINUS.

El resultado de esta operación es una relación que contiene las tuplas que figuran en la primera relación pero no están presentes en la segunda. Por primera y segunda relación entendemos la que está a la izquierda y derecha de MINUS respectivamente. Es decir, si la operación es R MINUS S, R es la primera relación mientras que S es la segunda.

Sean las relaciones R = {A, B} y S = {A,B}

R
A B
a1 b1
a2 b2

S
A B
a1 b1
a3 b3

Como ocurría con las 2 operaciones vistas en capítulos anteriores, las cabeceras de ambas relaciones deben ser idénticas.

El resultado es todo lo que está en la relación R pero no está en la relación S

R MINUS S
A B
a2 b2

Vemos que la relación resultante sólo contiene una tupla. Esta tupla es la que existía en la relación R pero no estaba en la relación S. La otra tupla, compuesta por (a1, b1) estaba presente en la relación R pero también se hallaba en la relación S. Por este motivo, no forma parte de la relación resultante.

A diferencia de UNION e INTERSECT, no es lo mismo R MINUS S que S MINUS R, es decir, el orden de las operaciones importa (no es conmutativa). La relación resultante de la operación S MINUS R es la tupla (a3, b3).

Para mayor claridad, veamos un ejemplo más concreto. Tenemos las relaciones Empleados = {Nombre, Apellido, Edad} y Gerentes = {Nombre, Apellido, Edad}

Ambas poseen la misma cabecera con lo cual es factible que apliquemos la operación de MINUS.

Empleados
Nombre Apellido Edad
Juan Ordoñez 42
Jorge Hibbert 33
Matías Poirot 21
Ricardo Rubens 48
Martin Perez 52
Carlos Alvarez 25

Gerentes
Nombre Apellido Edad
Juan Ordoñez 42
Jorge Hibbert 33

La relación resultante podría responder a la pregunta ¿Cuáles son los empleados que NO son gerentes?

Empleados MINUS Gerentes
Nombre Apellido Edad
Matías Poirot 21
Ricardo Rubens 48
Martin Perez 52
Carlos Alvarez 25