5.1. Operaciones conjuntistas

5.1. Operaciones conjuntistas Dataprix 11 Diciembre, 2009 - 15:04

Las operaciones conjuntistas del álgebra relacional son la unión, la intersección, la diferencia y el producto cartesiano.

 

5.1.1. Union

5.1.1. Union Dataprix 11 Diciembre, 2009 - 15:05

                                         

La unión de las relaciones EMPLEADOS_ADM EMPLEADOS_PROD proporciona una nueva relación que contiene tanto a los empleados de administración como los empleados de producción; se indicaría así: EMPLEADOS_ADM  EMPLEADOS_PROD.

Sólo tiene sentido aplicar la unión a relaciones que tengan tuplas similares.

Por ejemplo, se puede hacer la unión de las relaciones EMPLEADOS_ADM EMPLEADOS_PROD porque sus tuplas se parecen. En cambio, no se podrá hacer la unión de las relaciones EMPLEADOS_ADM DESPACHOS porque, como habéis podido observar en las tablas, las tuplas respectivas son de tipo diferente.

Más concretamente, para poder aplicar la unión a dos relaciones, es preciso que las dos relaciones sean compatibles. Decimos que dos relaciones son relaciones compatibles si:

•Tienen el mismo grado.

•Se puede establecer una biyección entre los atributos de y los atributos de que hace corresponder a cada atributo Ai  de un atributo Aj  de S, de modo que se cumple que dominio(Ai) = dominio(Aj).

Ejemplo de relaciones compatibles

Las relaciones EMPLEADOS_ADM EMPLEADOS_PROD tienen grado 5. Podemos establecer la siguiente biyección entre sus atributos:

•   A DNI de EMPLEADOS_ADM le corresponde DNIemp de EMPLEADOS_PROD.

•   A nombre de EMPLEADOS_ADM le corresponde nombreemp de EMPLEADOS_PROD.

•   A apellido de EMPLEADOS_ADM le corresponde apellidoemp de EMPLEADOS_PROD.

•   A edificiodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.

•   A númerodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD. Además, supondremos que los dominios de sus atributos se han declarado de forma que se cumple que el dominio de cada atributo de EMPLEADOS_ADM sea el mismo que el dominio de su atributo correspondiente enEMPLEADOS_PROD.

Por  todos  estos  factores,  podemos  llegar  a  la  conclusión  de  que  EMPLEADOS_ADM  EMPLEADOS_PROD son relaciones compatibles.

A continuación, pasaremos a definir los atributos y la extensión de la relación resultante de una unión.

 

                                      

No-repetición de tuplas
Notad que en caso de que 
una misma tupla esté en las 
dos relaciones que se unen, 
el resultado de la unión no la 
tendrá repetida. El resultado 
de la unión es una nueva rela-
ción por lo que no puede tener repeticiones de tuplas.

Ejemplo de unión

Si queremos obtener una relación que tenga a todos los empleados de la empresa del ejemplo anterior, llevaremos a cabo la unión de las relacionesEMPLEADOS_ADM EMPLEADOS_PROD de la forma siguiente:

R := EMPLEADOS_ADMEMPLEADOS_PROD.

Entonces la relación R resultante será la reflejada en la tabla siguiente:

El hecho de que los atributos de la relación resultante coincidan con los atributos de la relación que figura en primer lugar en la unión es una convención; teóricamente, también habría sido posible convenir que coincidiesen con los de la relación que figura en segundo lugar.

 

5.1.2. Interseccion

5.1.2. Interseccion Dataprix 11 Diciembre, 2009 - 15:07

  

La intersección de las relaciones EMPLEADOS_ADM EMPLEADOS_PROD obtiene una nueva relación que incluye a los empleados que son al mismo tiempo de administración y de producción: se indicaría como EMPLEADOS_ADM EMPLEADOS_PROD.

La intersección, como la unión, sólo se puede aplicar a relaciones que tengan tuplas similares. Para poder hacer la intersección de dos relaciones, es preciso, pues, que las relaciones sean compatibles.

A continuación definiremos los atributos y la extensión de la relación resultante de una intersección.

  

Ejemplo de intersección

Si queremos obtener una relación R que incluya a todos los empleados de la empresa del ejemplo que trabajan tanto en administración como en producción, realizaremos la intersección de las relaciones EMPLEADOS_ADM EMPLEADOS_PROD de la forma siguiente:

R : = EMPLEADOS_ADM EMPLEADOS_PROD.

Entonces, la relación R resultante será:

Observad que se ha tomado la convención de que los atributos de la relación que resulta coincidan con los atributos de la relación que figura en primer lugar.

 

5.1.3. Diferencia

5.1.3. Diferencia Dataprix 11 Diciembre, 2009 - 15:07

    

La diferencia EMPLEADOS_ADM menos EMPLEADOS_PROD da como resultado una nueva relación que contiene a los empleados de administración que no son empleados de producción, y se indicaría de este modo: EMPLEADOS_ADM – EMPLEADOS_PROD.

La diferencia, como ocurría en la unión y la intersección, sólo tiene sentido si

se aplica a relaciones que tengan tuplas similares. Para poder realizar la diferencia de dos relaciones es necesario que las relaciones sean compatibles.

A continuación definimos los atributos y la extensión de la relación resultante de una diferencia.

Ejemplo de diferencia

Si queremos obtener una relación con todos los empleados de la empresa del ejemplo que trabajan en administración, pero no en producción, haremos la diferencia de las relaciones EMPLEADOS_ADM EMPLEADOS_PROD de la forma siguiente:

R := EMPLEADOS_ADM – EMPLEADOS_PROD

Entonces la relación resultante será:

 

 

 

5.1.4. Producto cartesiano

5.1.4. Producto cartesiano Dataprix 11 Diciembre, 2009 - 15:09

 

        

Si calculamos el producto cartesiano de EDIFICIOS_EMP DESPACHOS, obtendremos una nueva relación que contiene todas las concatenaciones posibles de tuplas de EDIFICIOS_EMP con tuplas de DESPACHOS.

Si se quiere calcular el producto cartesiano de dos relaciones que tienen algún nombre de atributo común, sólo hace falta redenominar previamente los atributos adecuados de una de las dos relaciones. 

A continuación definimos los atributos y la extensión de la relación resultante de un producto cartesiano.


                                                   

* Recordad que T y S no tienen ningún nombre de atributo común.

Ejemplo de producto cartesiano

El producto cartesiano de las relaciones DESPACHOS y EDIFICIOS_EMP del ejemplo se puede hacer como se indica (es necesario redenominar atributos previamente):

EDIFICIOS(nombreedificio, supmediadesp) := EDICIOS_EMP(edificio, supmediadesp).

R := EDIFICIOS x DESPACHOS.

Entonces, la relación R resultante será:

 

      

 

Conviene señalar que el producto cartesiano es una operación que raramente se utiliza de forma explícita, porque el resultado que da no suele ser útil para resolver las consultas habituales.

A pesar de ello, el producto cartesiano se incluye en el álgebra relacional porque es una operación primitiva; a partir de la cual se define otra operación del álgebra, la combinación, que se utiliza con mucha frecuencia.