Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Suma,
Resta,
Multiplicación,
División.
Cualquier álgebra nos permite construir expresiones mediante la aplicación de operadores a operandos
atómicos y/o otras expresiones del álgebra. En general, los paréntesis son necesarios para agrupar
operadores y sus operandos, por ejemplo, en aritmética tenemos expresiones tales como (x + y) ∗ z ó
((x + 7)/(y − 3)) + x .
El Álgebra Relacional es otro ejemplo del álgebra. Sus operandos atómicos son:
Nota
En algunos textos de álgebra relacional o SQL, una relación es sinónimo de una tabla.
Como mencionamos, en el álgebra relacional clásica, todos los operandos y sus resultados de
expresiones son conjuntos. Los operadores del álgebra relacional tradicional se divide en cuatro grandes
categorías:
Debemos por lo general referirnos a las expresiones del álgebra relacional como consultas. A pesar de
que aún no tengan los símbolos necesarios para mostrar muchas de las expresiones del algebra
relacional, se debería familiarizar con las operaciones de grupo (a); y por lo tanto reconocer: R ∪ S
como un ejemplo de una expresión de álgebra relacional. Donde R y S son operandos atómicos para
relaciones, cuyos conjuntos de tuplas son desconocidas. Esta consulta pregunta por la unión de
cualquiera tuplas que están en las relaciones nombradas R y S .
Las tres operaciones más comunes en conjuntos son unión, intersección, y diferencia, que serán
vistas en la lectura 4.
Nota
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 1/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
Resumiendo Álgebra Relacional se define como un conjunto de operaciones que se ejecutan sobre las
relaciones (tablas) para obtener un resultado, el cual es otra relación.
Operaciones relacionales:
Los operadores relacionales se utilizan para filtrar, cortar o combinar tablas.
Selección(Select)
Este operador se aplica a una relación R produciendo una nueva relación con un subconjunto de tuplas
de R. Las tuplas de la relación resultante son las que satisfacen una condición C sobre algún atributo
de R . Es decir selecciona filas (tuplas) de una tabla según un cierto criterio C . El criterio C es una
expresión condicional, similar a las declaraciones del tipo “if”, es “booleana” esto quiere decir que para
cada tupla de R toma el valor Verdad(true) o Falso(false).
Los operadores lógicos que se utilizan, también llamados operadores relacionales, nos proporcionan un
resultado a partir de que se cumpla o no una cierta condición. Son símbolos que se usan para comparar
dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en
caso contrario es falsa. Por ejemplo, 11>4 (once mayor que cuatro) es verdadera, se representa por el
valor true del tipo básico boolean, en cambio, 11<4 (once menor que cuatro) es falsa se representa por
el valor false.
Las cláusulas C pueden conectarse con otros operadores lógicos, que al igual que los anteriores que se
usaban como comparador (entre atributos o atributo y constante), arrojan booleano (true o false) de
resultado:
NOT: El operador NOT denota una salida verdadera si la entrada es falsa, y una salida falsa si la
entrada es verdadera. Su notación en algebra es: ¬ C1 .
AND: El operador AND denota una salida verdadera si y sólo si sus entradas son verdaderas. Si C1
se cumple y C2 también se cumple, la salida será verdadera. La notación en algebra de un AND es:
C1 ∧ C2 .
OR: El operador OR denota una salida verdadera si hay alguna de las entradas (o ambas)
verdaderas. Si C1 y/o C2 es o son verdaderas, la expresión será verdadera. La notación en
algebra de un OR es: C1 ∨ C2 .
Para representar Select en álgebra relacional se utiliza la letra griega sigma σ . Por lo tanto, si utilizamos
la notación σc R queremos decir que se aplica la condición C a cada tupla de R. Si la condición es
Verdad true, dicha tupla pertenecerá al resultado y si es Falsa false, dicha tupla no será seleccionada. El
esquema de la relación resultante es el mismo esquema R, se muestran los atributos en el mismo orden
que se usan en la tabla R.
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 2/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
Ejemplo 1
Tabla Ingenieros
id nombre edad ñ
a osTrabajados
123 Leon 39 15
234 Tomas 34 10
345 Jose 45 21
143 Josefa 25 1
Seleccionar las tuplas de la tabla Ingenieros que cumplan con tener una edad mayor a 30 años:
Respuesta
σedad>30 Ingenieros
En la imagen se ve que selecciona solo las filas que cumplen con la condición que se pedía (tener una
edad mayor a 30 años), la tupla de “Josefa” queda fuera de la selección por no cumplir la condición
(pues 25 < 30). De esta forma la tabla queda:
Tabla Ingenieros
id nombre edad ñ
a osTrabajados
123 Leon 39 15
234 Tomas 34 10
345 Jose 45 21
Ejemplo 2
Seleccionar de la tabla Ingenieros las personas que tienen más de 30 años y que lleven menos de 16
años trabajando:
Respuesta
σ(edad>30∧añosTrabajados<16) Ingenieros
Al tener el operador lógico AND se pide que cumplan dos condiciones simultáneamente. Primero que la
edad sea mayor de 30 años, al igual que en el ejemplo anterior, la tupla de “Josefa” queda fuera de la
selección. Luego de las tuplas que quedan se evalúa la segunda condición. En la imagen se aprecia, que
solo se seleccionan las filas que no tengan X en alguna de las condiciones.
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 3/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
Tabla Ingenieros
id nombre edad ñ
a osTrabajados
123 Leon 39 15
234 Tomas 34 10
Proyección (Project)
El operador Proyección se utiliza para producir una nueva relación desde R . Esta nueva relación
contiene sólo algunos de los atributos de R, es decir, realiza la selección de algunas de las columnas de
una tabla R.
π (A1 ,...,An ) R
serán eliminadas.
Ejemplo 1
Tabla Ingenieros
id nombre edad ñ
a osTrabajados
123 Leon 39 15
234 Tomas 34 10
345 Jose 45 21
143 Josefa 25 1
Respuesta
π (id,nombre) Ingenieros
Tabla Ingenieros
id nombre
123 Leon
234 Tomas
345 Jose
143 Josefa
Ejemplo 2
Respuesta
π
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html ( Ingenieros) 4/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
Se aprecia que las tuplas que no cumplan con la condición de selección quedan fuera del resultado,
luego se realiza un Project sobre las filas del resultado, separando solo las columnas que contienen los
atributos id y nombre. Finalmente la tabla queda de la siguiente manera:
Tabla Ingenieros
id nombre
123 Leon
234 Tomas
345 Jose
R × S
Por convención para la sentencia anterior, los componentes de R preceden a los componentes de S en
el orden de atributos para el resultado, creando así una nueva relación con todas las combinaciones
posibles de tuplas de R y S . El número de tuplas de la nueva relación resultante es la multiplicación de
la cantidad de tuplas de R por la cantidad de tuplas que tenga S (producto de ambos). Si R y S tienen
algunos atributos en común, entonces se debe inventar nuevos nombres para al menos uno de cada par
de atributos idénticos. Para eliminar la ambigüedad de un atributo a, que se encuentra en R y S , se usa
R. a para el atributo de R y S . a para el atributo de S .
Ejemplo 1
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 5/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
Con azul se resaltan las tuplas que provienen de R que preseden y se mezclan con las de S resaltadas
en verde.
Ejemplo 2
Tabla Ingenieros
id nombre d#
123 Leon 39
234 Tomas 34
143 Josefa 25
Tabla Proyectos
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 6/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
proyecto duracion
ACU0034 300
USM7345 60
Ingenieros × Proyectos
Respuesta
Ingenieros × Proyectos
NaturalJoin
Este operador se utiliza cuando se tiene la necesidad de unir relaciones vinculando sólo las tuplas que
coinciden de alguna manera. NaturalJoin une sólo los pares de tuplas de R y S que sean comunes. Más
precisamente una tupla r de R y una tupla s de S se emparejan correctamente si y sólo si r y s coinciden
en cada uno de los valores de los atributos comunes, el resultado de la vinculación es una tupla, llamada
joined tuple. Entonces, al realizar NaturalJoin se obtiene una relación con los atributos de ambas
relaciones y se obtiene combinando las tuplas de ambas relaciones que tengan el mismo valor en los
atributos comunes.
Método
Ejemplo 1
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 7/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
a b c
1 2 3
4 5 6
c d
7 5
6 2
3 4
El atributo que tienen en común R y S es el atributo c, entonces las tuplas se unen donde c tiene el
mismo valor en R y S
R ⊳⊲ S
a b c d
1 2 3 4
4 5 6 2
Ejemplo 2
Tabla Ingenieros
id nombre d#
123 Leon 39
234 Tomas 34
143 Josefa 25
090 Maria 34
Tabla Proyectos
d# proyecto
39 ACU0034
34 USM7345
Respuesta
Ingenieros ⊳⊲ Proyectos
id nombre d# proyecto
ThetaJoin
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 8/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
ThetaJoin
Define una relación que contiene las tuplas que satisfacen el predicado C en el Cross‐Product de
R × S . Conecta relaciones cuando los valores de determinadas columnas tienen una interrelación
La notación de ThetaJoin es el mismo símbolo que se utiliza para NaturalJoin, la diferencia radica en
que ThetaJoin lleva el predicado C :
R ⊳⊲C S
Al igual NaturalJoin, ThetaJoin puede ser escrito en función de los operadores vistos anteriormente:
R ⊳⊲C S = σF (R × S )
Método
1. Se forma el producto cartesiano R × S .
2. Se selecciona, en el producto, solo la tupla que cumplan la condición C .
Ejemplo 1
a b c d
1 3 5 7
3 2 9 1
2 3 5 4
a c e
1 5 2
1 5 9
3 9 2
2 3 7
R ⊳⊲(a>=e) S
Respuesta
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 9/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
Se compara el atributo a de la primera fila de R con cada uno de los valores del atributo e de la tabla S .
En este caso ninguna de las comparaciones devuelve el valor verdadero (true).
Luego se compara el atributo a de la segunda fila de R con cada uno de los valores del atributo e de la
tabla S . En este caso 2 comparaciones devuelven el valor verdadero (true), por lo que en la relación de
resultado quedará la segunda fila de R mezclada con la primera y tercera fila de S .
3 2 9 1 1 5 2
3 2 9 1 3 9 2
2 3 5 4 1 5 2
2 3 5 4 3 9 2
Ejemplo 2
Con el esquema conceptual siguiente, hallar los nombres de los directores de cada departamento:
Respuesta
Ejercicio propuesto
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html
Persona( , edad, genero) 10/11
6/10/2015 Lectura 3 Álgebra Relacional: Select, Project, Join — Curso ALMA SQL
http://csrg.inf.utfsm.cl/~jfuentes/_build/html/lectures/week1/lecture3.html 11/11