Sei sulla pagina 1di 12

ALGEBRA RELACIONAL PARA CONSULTAS SQL

ALGEBRA RELACIONAL
El Algebra Relacional es un lenguaje, que define una serie de operaciones, que se realizan
PARA CONSULTAS SQL
utilizando 'operadores', cada uno de los cuales puede trabajar sobre uno o varios conjuntos

201
5

de datos produciendo como resultado un nuevo conjunto de datos.

El lgebra relacional se inspira en la teora de conjuntos para especificar consultas en una


base de datos relacional.

Para especificar una consulta en lgebra relacional, es preciso definir uno o ms pasos

que sirven para ir construyendo, mediante operaciones de lgebra relacional, una nueva

ING.: BLANCA CUJ

relacin que contenga los datos que responden a la consulta a partir de las relaciones

almacenadas. Los lenguajes basados en el lgebra relacional son procedimentales, dado

GESTOR DE BASE DE
I a su vez ser utilizado en una
El conjunto de datos resultante deDATOS
una operacin puede
que los pasos que forman la consulta describen un procedimiento.

nueva operacin, en forma anidada, tal como se hace con las operaciones aritmticas.
Esta propiedad es conocida como 'clausura'.

El lenguaje SQL (Structured Query Language) no es ms 2015


que una de las ms conocidas
implementaciones concretas de las operaciones del lgebra relacional.

Los conjuntos de datos se materializan en la prctica como 'tablas', que contienen 'filas',
con sus atributos representados mediante columnas'.

Existen nueve tipos diferentes de operadores, que son los siguientes:


1- Unin
2- Interseccin
3- Diferencia
4- Producto
5- Seleccin
6- Proyeccin
7- Reunin
8- Divisin
9- Asignacin
1. UNIN

sebitasgore@gmail.com

Autor: Sebastin Ynez

ALGEBRA RELACIONAL PARA CONSULTAS SQL

La unin es una operacin que, a partir de dos relaciones, obtiene una nueva relacin
formada por todas las tuplas que estn en alguna de las relaciones de partida. La unin es
una operacin binaria.
Slo tiene sentido aplicar la unin a relaciones que tengan tuplas similares.
Opera sobre dos o ms tablas, siendo necesario que todas posean la misma estructura,
devolviendo una nueva tabla cuyo contenido es la combinacin de los contenidos de todas
y cada una de las tablas originales, descartando las filas repetidas, tal como puede verse
en el siguiente ejemplo:

CODIGO
1425
2000
3000
CODIGO
2000
3000
2128
2121

CODIGO
1425
2000
3000
2128
2121

TABLA A
LOCALIDAD
Buenos Aires
Rosario
Santa Fe
TABLA B
LOCALIDAD
Rosario
Santa Fe
Arroyo Seco
Perez

A UNION B
LOCALIDAD
Buenos Aires
Rosario
Santa Fe
Arroyo Seco
Perez

En la prctica, el comando SQL que se utilizara para obtener la unin de las tablas A y B
del ejemplo podra ser el siguiente:

Autor: Sebastin Ynez

-2-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

SELECT * FROM A UNION SELECT * FROM B


2. INTERSECCIN
La interseccin es una operacin que, a partir de dos relaciones, obtiene una nueva
relacin formada por las tuplas que pertenecen a las dos relaciones de partida. La
interseccin es una operacin binaria
Opera sobre dos o ms tablas, siendo necesario que todas posean la misma estructura,
devolviendo una nueva tabla cuyo contenido es las filas comunes a todas las tablas
originales, descartando las filas repetidas, tal como puede verse en el siguiente ejemplo:

CODIGO
1425
2000
3000

CODIGO
2000
3000
2128
2121

TABLA A
LOCALIDAD
Buenos Aires
Rosario
Santa Fe

TABLA B
LOCALIDAD
Rosario
Santa Fe
Arroyo Seco
Perez

A INTERSECCIN B
LOCALIDAD
Rosario
Santa Fe

CODIGO
2000
3000

La interseccin, como la unin, slo se puede aplicar a relaciones que tengan tuplas
similares. Para poder hacer la interseccin de dos relaciones, es preciso, que las
relaciones sean compatibles.
En la prctica, el comando SQL que se utilizara para obtener la interseccin de las tablas
A y B del ejemplo podra ser el siguiente:
SELECT * FROM A INTERSECT SELECT * FROM B
Cabe destacar aqu, que la operacin de interseccin puede no existir en algunas
implementaciones de SQL, como por ejemplo, la de mySQL versin 5.
3. DIFERENCIA

Autor: Sebastin Ynez

- 3-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

La diferencia es una operacin que, a partir de dos relaciones, obtiene una nueva relacin
formada por todas las tuplas que estn en la primera relacin y, en cambio, no estn en la
segunda. La diferencia es una operacin binaria
Opera sobre dos tablas, siendo necesario que ambas posean la misma estructura,
devolviendo una nueva tabla cuyo contenido es las filas que figuran en la primer tabla y no
en la otra, tal como puede verse en el siguiente ejemplo:
CODIGO
CODIGO
1425
CODIGO
2000
1425
3000
2000
2128
3000
2121

A DIFERENCIA B
LOCALIDAD
TABLA A
LOCALIDAD
Buenos
Aires
LOCALIDAD
Rosario
Buenos Aires
Santa Fe
Rosario
Arroyo Seco
Santa Fe
Perez

TABLA B

En la prctica, el comando SQL que se utilizara para obtener la diferencia entre las tablas
A y B del ejemplo podra ser el siguiente:
SELECT * FROM A EXCEPT SELECT * FROM B
La operacin de diferencia puede no existir en algunas implementaciones de SQL, como
por ejemplo, la de mySQL versin 5.

Autor: Sebastin Ynez

- 4-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

4. PRODUCTO
Es una operacin que, a partir de dos relaciones, obtiene una nueva relacin formada por
todas las tuplas que resultan de concatenar tuplas de la primera relacin con tuplas de la
segunda. El producto es una operacin binaria.
Opera sobre dos tablas, efectuando un producto cartesiano del contenido de las mismas,
no siendo necesario que ambas posean la misma estructura, y devolviendo una nueva
tabla cuyo contenido es todas las posibles combinaciones de las filas de una de ambas
tablas, tal como puede verse en el siguiente ejemplo:

A*B
W
1
1
78
78
67
67

TABLA A
X
23
23
32
32
5
5

W
1
78
67

Y
15
7
15
7
15
7

Z
320
5
320
5
320
5

X
23
32
5

TABLA B
Y
15
7

Z
320
5

Si se quiere calcular el producto de dos relaciones que tienen algn nombre de atributo
comn, slo hace falta redenominar previamente los atributos adecuados de una de las
dos relaciones.
En la prctica, el comando SQL que se utilizara para obtener el producto de las tablas A y
B del ejemplo podra ser el siguiente:

Autor: Sebastin Ynez

- 5-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

SELECT * FROM A, B

5. SELECCIN
Podemos ver la seleccin como una operacin que sirve para elegir algunas tuplas de una
relacin y eliminar el resto. Ms concretamente, la seleccin es una operacin que, a partir
de una relacin, obtiene una nueva relacin formada por todas las tuplas de la relacin de
partida que cumplen una condicin de seleccin especificada. La seleccin es una
operacin unaria.
Las clusulas que forman una condicin de seleccin se conectan con los siguientes
operadores booleanos: y () y o ().
Opera sobre una o ms tablas, no siendo necesario que stas posean la misma estructura,
y devolviendo una nueva tabla cuyo contenido es todas las filas de las tablas indicadas que
satisfacen una cierta condicin, tal como puede verse en el siguiente ejemplo:
TABLA A

X
1
15
7

X
1
78
67
15
7

SELECCIN CON X<50


Y
23
320
5

Y
23
32
5
320
5

En la prctica, el comando SQL que se utilizara para obtener la seleccin del ejemplo
podra ser el siguiente:
SELECT * FROM A WHERE X<50
6. PROYECCIN
Podemos considerar la proyeccin como una operacin que sirve para elegir algunos
atributos de una relacin y eliminar el resto. Ms concretamente, la proyeccin es una
operacin que, a partir de una relacin, obtiene una nueva relacin formada por todas las
(sub)tuplas de la relacin de partida que resultan de eliminar unos atributos especificados.
La proyeccin es una operacin unaria.

Autor: Sebastin Ynez

- 6-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

Opera sobre una o ms tablas, no siendo necesario que stas posean la misma estructura,
y devolviendo una nueva tabla cuyo contenido es todas las filas de las tablas indicadas que
satisfacen una cierta condicin, tal como sucede con la seleccin, slo que la proyeccin
permite indicar cules columnas se desea obtener en el resultado, tal como puede verse
en el siguiente ejemplo:

X
1
78
67
15
7

TABLA A
Y
Z
PROYECCIN
DE X y Z CON X<50
23
Z 11
32
321
11
5
5 33
320
2125
5
212

X
1
15
7

En la prctica, el comando SQL que se utilizara para obtener la proyeccin del ejemplo
podra ser el siguiente:
SELECT X, Z FROM A WHERE X<50
7. REUNIN
Opera sobre dos o ms tablas, que poseen estructuras diferentes, y devolviendo una
nueva tabla cuyo contenido es un conjunto de filas con las columnas deseadas
provenientes de las diferentes tablas, en el que las filas de las diferentes tablas en juego
son relacionadas mediante alguna condicin, tal como puede verse en el siguiente
ejemplo:
REUNIN DE A y B
TABLA A TABLA B
W
Y
23
15
32
37
5
33
5
TOMANDO W e Y

VX
1 5
7878
67 1
78

Z
320
5
3
404

CON X=V y Z>10


W
32

Autor: Sebastin Ynez

Y
5

- 7-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

En la prctica, el comando SQL que se utilizara para obtener el producto de las tablas A y
B del ejemplo podra ser el siguiente:
SELECT A.W, B.Y FROM A JOIN B ON (A.V=B.X AND Z>10)
8. DIVISIN
Opera sobre dos tablas. Si se divide una tabla B por una tabla A, se obtiene una nueva
tabla cuyas columnas sern aquellas de la tabla B que no existen en la tabla A, y cuyas
filas sern tales que cumplan con estar relacionadas con todas y cada una de las filas de la
tabla A. Este caso es ms difcil de visualizar, pero se puede entender analizando en
detalle el siguiente ejemplo:

TABLA

TABLA A
CODIGO
CODIGO
1425
1425
2000
2000
3000
3000
2128
2121
2000
3000

B
INDICE
15%
27%
33%
45%
13%
15%
15%

B DIVIDIDA POR A
INDICE

15%

La columna INDICE es la nica de la tabla B que no existe en la tabla A, y el valor 15% es


el nico valor de la misma que aparece en filas que se relacionan con todas las filas de la
tabla A, es decir, las filas en las que CODIGO toma los valores 1425, 2000 y 3000, que son
todos los que aparecen en la tabla A.
En mySQL versin 5 no existe una implementacin directa del operador de divisin, por lo
que, al igual que en los otros casos en que no existe un operador en forma directa, se lo
debe implementar combinando condiciones y otros operadores que s estn disponibles.

Autor: Sebastin Ynez

- 8-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

En el caso del ejemplo, podra usarse:


SELECT DISTINCT X.indice FROM bb X
WHERE NOT EXISTS (
SELECT Y.codigo FROM aa Y
WHERE NOT EXISTS (
SELECT Z.codigo FROM bb Z
WHERE Z.codigo=Y.codigo AND Z.indice=X.indice
)
)

9. ASIGNACIN
Opera sobre una nica tabla, y se utiliza para asignar valores a algunas columnas de
algunas filas de la misma, tal como se muestra en el siguiente ejemplo:
TABLA A
INDICE
15%
27%
33%
45%
13%
15%
15%

CODIGO
1425
2000
3000
2128
2121
2000
3000

CODIGO
1425
2000
3000
2128
2121
2000
3000

TABLA A MODIFICADA
INDICE
15%
27%
100%
100%
100%
15%
100%

En este ejemplo, mediante una operacin de asignacin se modifica la tabla fijando un


valor igual a '100%' para la columna INDICE, en las filas en las que el valor de la columna
CODIGO es mayor que 2000.
En el caso del ejemplo, podra usarse la sentencia:
UPDATE A SET indice='100%' WHERE codigo>2000

Autor: Sebastin Ynez

- 9-

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

Secuencias de operaciones del lgebra relacional


En muchos casos, para formular una consulta en lgebra relacional es preciso utilizar
varias operaciones, que se aplican en un cierto orden.
Para hacerlo, hay dos posibilidades:
1) Utilizar una sola expresin del lgebra que incluya todas las operaciones con los
parntesis necesarios para indicar el orden de aplicacin.
2) Descomponer la expresin en varios pasos donde cada paso aplique una sola operacin
y obtenga una relacin intermedia que se pueda utilizar en los pasos subsiguientes.

APORTE PERSONAL
Se puede deducir que estas operaciones son de mucha importancia ya que estos nos
sirven para realizar consultas muy detalladas para que nos den como resultado los
datos que el usuario requiere.
Aqu les compartir una imagen que nos indica de donde sale cada uno de los cdigo
para consultas:

UNIN
Es la recoleccin de todos los datos que se tiene de dos o ms tablas adems se la
aplican a las tuplas que tengas relaciones similares.
Sintaxis:
Select * fromt1 unin

Autor: Sebastin Ynez

- 10 -

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

Select * fromt2
Ejemplo:
use fche;
select fecha_hora_inicio_uso from uso union select nombre_equipo from equipos;

INTERSECCIN
Es la coleccin de los datos que estn en ambas tuplas y esta devuelve una nueva
tupla con todos los datos que estaban en las tablas, pero en mysql la interseccin no
existe y
Sintaxis:
Select * from ta
Inner join tb on ta.campo = tb.campo

Ejemplo:
use fche;
select cod_sem
from semestre
inner join estudiantes on semestre.cod_sem = estudiantes.cod_sem_pert;

Autor: Sebastin Ynez

- 11 -

2015

ALGEBRA RELACIONAL PARA CONSULTAS SQL

Bibliografa
http://site.ebrary.com/lib/utasp/reader.action?docID=11046864
http://site.ebrary.com/lib/utasp/reader.action?docID=10433887
http://site.ebrary.com/lib/utasp/reader.action?docID=10741625
http://site.ebrary.com/lib/utasp/reader.action?docID=10732589
http://www.scielo.org.co/scielo.php?script=sci_arttext&pid=S012330332013000200012&lang=pt

Autor: Sebastin Ynez

- 12 -

2015

Potrebbero piacerti anche