5.1. Operaciones conjuntistas
5.1. Operaciones conjuntistas Dataprix 11 December, 2009 - 15:04Las 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 December, 2009 - 15:05
La unión de las relaciones EMPLEADOS_ADM y 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 y EMPLEADOS_PROD porque sus tuplas se parecen. En cambio, no se podrá hacer la unión de las relaciones EMPLEADOS_ADM y 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 T y S son relaciones compatibles si:
•Tienen el mismo grado.
•Se puede establecer una biyección entre los atributos de T y los atributos de S que hace corresponder a cada atributo Ai de T un atributo Aj de S, de modo que se cumple que dominio(Ai) = dominio(Aj).
Ejemplo de relaciones compatibles
Las relaciones EMPLEADOS_ADM y 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 y 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 R que tenga a todos los empleados de la empresa del ejemplo anterior, llevaremos a cabo la unión de las relacionesEMPLEADOS_ADM y 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 December, 2009 - 15:07
La intersección de las relaciones EMPLEADOS_ADM y 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 y 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 December, 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 R 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 y EMPLEADOS_PROD de la forma siguiente:
R := EMPLEADOS_ADM – EMPLEADOS_PROD
Entonces la relación R resultante será:
5.1.4. Producto cartesiano
5.1.4. Producto cartesiano Dataprix 11 December, 2009 - 15:09
Si calculamos el producto cartesiano de EDIFICIOS_EMP y 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.