Las operaciones de �lgebra relacional manipulan relaciones. Esto significa que estas operaciones usan uno o dos relaciones existentes para crear una nueva relaci�n. Esta nueva relaci�n puede entonces usarse como entrada para una nueva operaci�n. Este poderoso concepto - la creaci�n de una nueva relaci�n a partir de relaciones existentes hace considerablemente m�s f�cil la soluci�n de las consultas, debido a que se puede experimentar con soluciones parciales hasta encontrar la proposici�n con la que se trabajar�.
El �lgebra relacional consta de nueve operaciones:
- Uni�n
- Intersecci�n
- Diferencia
- Producto
- Selecci�n
- Proyecci�n
- Reuni�n
- Divisi�n
- Asignaci�n
Las cuatro primeras se toman de la teor�a de conjunto de las matem�ticas; las cuatro siguientes son operaciones propias del �lgebra relacional y la �ltima es la operaci�n est�ndar de dar un valor a un elemento.
�Uni�n
La operaci�n de uni�n permite combinar datos de varias relaciones. Supongamos que una determinada empresa internacional posee una tabla de empleados para cada uno de los pa�ses en los que opera. Para conseguir un listado completo de todos los empleados de la empresa tenemos que realizar una uni�n de todas las tablas de empleados de todos los pa�ses.
No siempre es posible realizar consultas de uni�n entre varias tablas, para poder realizar esta operaci�n es necesario e imprescindible que las tablas a unir tengan las mismas estructuras, que sus campos sean iguales.
�Intersecci�n
La operaci�n de intersecci�n permite identificar filas que son comunes en dos relaciones. Supongamos que tenemos una tabla de empleados y otra tabla con los asistentes que han realizado un curso de ingl�s (los asistentes pueden ser empleados o gente de la calle). Queremos crear una figura virtual en la tabla denominada "Empleados que hablan Ingl�s", esta figura podemos crearla realizando una intersecci�n de empleados y curso de ingl�s, los elementos que existan en ambas tablas ser�n aquellos empleados que han asistido al curso.
�Diferencia
La operaci�n diferencia permite identificar filas que est�n en una relaci�n y no en otra. Tomando como referencia el caso anterior, deber�amos aplicar una diferencia entre la tabla empleados y la tabla asistentes al curso para saber aquellos asistentes externos a la organizaci�n que han asistido al curso.
�Producto
La operaci�n producto consiste en la realizaci�n de un producto cartesiano entre dos tablas dando como resultado todas las posibles combinaciones entre los registros de la primera y los registros de la segunda. Esta operaci�n se entiende mejor con el siguiente ejemplo:
X | Y |
---|---|
10 | 22 |
11 | 25 |
W | Z |
---|---|
33 | 54 |
37 | 98 |
42 | 100 |
El producto de A * B dar�a como resultado la siguiente tabla:
10 | 22 | 33 | 54 |
10 | 22 | 37 | 98 |
10 | 22 | 42 | 100 |
11 | 25 | 33 | 54 |
11 | 25 | 37 | 98 |
11 | 25 | 42 | 100 |
�Selecci�n
La operaci�n selecci�n consiste en recuperar un conjunto de registros de una tabla o de una relaci�n indicando las condiciones que deben cumplir los registros recuperados, de tal forma que los registros devueltos por la selecci�n han de satisfacer todas las condiciones que se hayan establecido. Esta operaci�n es la que normalmente se conoce como consulta.
Podemos emplearla para saber que empleados son mayores de 45 a�os, o cuales viven en Madrid, incluso podemos averiguar los que son mayores de 45 a�os y residen en Madrid, los que son mayores de 45 a�os y no viven en Madrid, etc..
En este tipo de consulta se emplean los diferentes operadores de comparaci�n (=,>, <, >=, <=, <>), los operadores l�gicos (and, or, xor) o la negaci�n l�gica (not).
�Proyecci�n
Una proyecci�n es un caso concreto de la operaci�n selecci�n, esta �ltima devuelve todos los campos de aquellos registros que cumplen la condici�n que he establecido. Una proyecci�n es una selecci�n en la que seleccionamos aquellos campos que deseamos recuperar. Tomando como referencia el caso de la operaci�n selecci�n es posible que lo �nico que nos interese recuperar sea el n�mero de la seguridad social, omitiendo as� los campos tel�fono, direcci�n, etc.. Este �ltimo caso, en el que seleccionamos los campos que deseamos, es una proyecci�n.
�Reuni�n
La reuni�n se utiliza para recuperar datos a trav�s de varias tablas conectadas unas con otras mediante cl�usulas JOIN, en cualquiera de sus tres variantes INNER, LEFT, RIGHT. La operaci�n reuni�n se puede combinar con las operaciones selecci�n y proyecci�n.
Un ejemplo de reuni�n es conseguir los pedidos que nos han realizado los clientes nacionales cuyo importe supere 15.000 unidades de producto, generando un informe con el nombre del cliente y el c�digo del pedido. En este caso se da por supuesto que la tabla clientes es diferente a la tabla pedidos y que hay que conectar ambas mediante, en este caso, un INNER JOIN.
�Divisi�n
La operaci�n divisi�n es la contraria a la operaci�n producto y quiz�s sea la m�s compleja de explicar, por tanto comenzar� con directamente con un ejemplo. Una determinada empresa posee una tabla de comerciales, otra tabla de productos y otra con las ventas de los comerciales. Queremos averiguar que comerciales han vendido todo tipo de producto.
Lo primero que hacemos es extraer en una tabla todos los c�digos de todos los productos, a esta tabla la denominamos A.
C�digo Producto |
---|
1035 |
2241 |
2249 |
5818 |
En una segunda tabla extraemos, de la tabla de ventas, el c�digo del producto y el comercial que lo ha vendido, lo hacemos con una proyecci�n y evitamos traer valores duplicados. El resultado podr�a ser el siguiente:
C�digo Comercial | C�digo Producto |
---|---|
10 | 2241 |
23 | 2518 |
23 | 1035 |
39 | 2518 |
37 | 2518 |
10 | 2249 |
23 | 2249 |
23 | 2241 |
Si dividimos la tabla B entre la tabla A obtendremos como resultado una tercera tabla que:
- Los campos que contiene son aquellos de la tabla B que no existen en la tabla A. En este caso el campo C�digo Comercial es el �nico de la tabla B que no existen en la tabla A.
- Un registro se encuentra en la tabla resultado si y s�lo si est� asociado en tabla B con cada fila de la tabla A
C�digo Comercial |
---|
23 |
�Por qu� el resultado es 23?. El comercial 23 es el �nico de la tabla B que tiene asociados todos los posibles c�digos de producto de la tabla A.
�Asignaci�n
Esta operaci�n algebraica consiste en asignar un valor a uno o varios campos de una tabla.