Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEMESTRE: 4°
Operaciones fundamentales
Las operaciones selección, proyección y renombramiento se denominan operaciones unarias
porque operan sobre una sola relación. Las otras tres operaciones operan sobre pares de
relaciones y se denominan, por lo tanto, operaciones binarias.
La operación selección
La operación selección selecciona tuplas que satisfacen un predicado dado. Se utiliza la letra
griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice
de σ. La relación del argumento se da entre paréntesis a continuación de σ. Por tanto, para
seleccionar las tuplas de la relación préstamo en que la sucursal es «Navacerrada» hay que
escribir:
σ nombre-sucursal = «Navacerrada»(préstamo)
Si la relación préstamo es como se muestra a continuación:
σ importe>1200 (préstamo)
En general, se permiten las comparaciones que utilizan =, ≠, <, ≤, > o ≥ en el predicado de
selección. Además, se pueden combinar varios predicados en uno mayor utilizando las
conectivas y (∧) y o (∨). Por tanto, para encontrar las tuplas correspondientes a préstamos de
más de 1.200 concedidos por la sucursal de Navacerrada, se escribe:
Es importante el hecho de que el resultado de una operación relacional sea también una
relación. Considérese la consulta más compleja «Encontrar los nombres de clientes que viven
en Peguerinos». Hay que escribir:
Considérese una consulta para averiguar el nombre de todos los clientes del banco que tienen
una cuenta, un préstamo o ambas cosas. Obsérvese que la relación cliente no contiene esa
información:
dado que los clientes no necesitan tener ni cuenta ni préstamo en el banco. Para contestar a
esta consulta hace falta la información de la relación impositor:
y la de la relación prestatario
Se conoce la manera de averiguar los nombres de todos los clientes con préstamos en el
banco:
Π nombre-cliente(prestatario)
También se conoce la manera de averiguar el nombre de los clientes con cuenta en el banco:
Π nombre-cliente(impositor)
Para contestar a la consulta hace falta la unión de estos dos conjuntos; es decir, hacen falta
todos los nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos
datos se pueden averiguar mediante la operación binaria unión, denotada, como en la teoría
de conjuntos, por ∪. Por tanto, la expresión buscada es:
Π nombre-cliente (prestatario) ∪ Π nombre-cliente (impositor)
La relación resultante de esta consulta es:
Téngase en cuenta que en el resultado hay diez tuplas, aunque hay siete prestatarios y seis
impositores distintos. Esta discrepancia aparente se debe a que Gómez, Santos y López son
a la vez prestatarios e impositores. Dado que las relaciones son conjuntos, se eliminan los
valores duplicados.
Obsérvese que en este ejemplo se toma la unión de dos conjuntos, ambos consistentes en
valores de nombre-cliente. En general, se debe asegurar que las uniones se realicen entre
relaciones compatibles. Por ejemplo, no tendría sentido realizar la unión de las relaciones
préstamo y prestatario. La primera es una relación con tres atributos, la segunda sólo tiene
dos. Más aún, considérese la unión de un conjunto de nombres de clientes y de un conjunto
de ciudades. Una unión así no tendría sentido en la mayor parte de los casos. Por tanto, para
que una operación unión r ∪ s sea válida hay que exigir que se cumplan dos condiciones:
1. Las relaciones r y s deben ser de la misma aridad. Es decir, deben tener el mismo
número de atributos.
2. Los dominios de los atributos i-ésimos de r y de s deben ser iguales para todo i.
Téngase en cuenta que r y s pueden ser, en general, relaciones temporales que sean resultado
de expresiones del álgebra relacional.
Restricciones:
Ejemplos:
name address gender birthdate
Unión
Intersección
Resta
Proyección
• Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las columnas
• A1,A3,A6 (R)
Movie
Ejemplo:
filmType(Movie)
filmType
color
Selección
• Crea una nueva relación a partir de otra, pero incluyendo sólo algunas de las tuplas a
partir de un criterio dado.
• El criterio se basa en restricciones sobre los atributos de la relación R y no pueden
incluirse otras relaciones en dicho criterio que no esten en R
• A3>16 (R) , A3>16 and A3 < 45 (R), nombre='Carlos' and edad=45 (R)
Movie
Ejemplos:
length>=100 (Movie)
Asignación <--
División
Sean
A B C D
a b c d
a b e f C D
b c e f c d
e d c d e f
e d e f
S
a b d e
R
A B
a b
e d
R/S
Producto cartesiano X
Dados
B C D
A B
2 5 6
1 2
4 7 8
3 4
9 10 11
R
S
A R.B S.B C D
1 2 2 5 6
1 2 4 7 8
1 2 9 10 11
3 4 2 5 6
3 4 4 7 8
3 4 9 10 11
RXS
Es un producto cartesiano donde nos interesan únicamente algunas tuplas que hacen "match"
en algún criterio.
A R.B S.B C D
1 2 2 5 6
1 2 4 7 8
1 2 9 10 11
3 4 2 5 6
3 4 4 7 8
3 4 9 10 11
A B C D
1 2 5 6
3 4 7 8
R |X| S
Outer Join
El outer join es una extensión del join para lidear con información no existente. Exiten 3
tipos, izquierdo, derecho y completo.
employee
|X|
Combinación de operaciones
Cuáles son los títulos y años de las películas hechas por Fox y que tengan al menos 100
minutos de duración.
length>=100 (Movie)
studioName='Fox' (Movie)
Problema:
Dadas las 2 relaciones siguientes, indique un query en algebra relacional para encontrar los
nombres de las estrellas que trabajan en películas cuya duración sera mayor o igual que 100.
Movie (title,year,length,filmType,studioName)
Movie_star(title,year,starName)
Renombramiento
s (R)
Ejemplo.
Renombrar un atributo
Suponiendo R (A,B,C)
r <-- r - E
Inserción
r <-- r E
Actualización
r <-- F1,F2,....Fn(r)
Suponiendo que se desea que las cuentas con balance superior a $ 10,000 reciban un aumento
del 6% y que todas las demas solo el 5%
R S=R-(R-S)
R |X| S = L( c(RXS))
Operadores Extendidos
No son parte del estándar del Algebra Relacional, pero al ser incluídos en los lenguajes de
consulta más populares se han introducido como una extensión.
Eliminación de duplicidad
A B
1 2
3 4
1 2
1 2
(R)
A B
1 2
3 4
Operadores de agregación
A B
1 2
3 4
1 2
1 2
• SUM(B)= 10
• AVG(A)= 1.5
• MIN(A)=1
• MAX(B)=4
• COUNT(A)=4
Es importante resaltar que estos operadores nunca devuelven un "valor" sino una relación
conteniendo el valor.
SUM(B)
10
SUM(B) (R)
Agrupación
A B
1 2
3 4
1 2
2 8
1 2
2 6
A SUM(B)
1 6
3 4
2 14
A, SUM(B) (R)
Ordenamiento
A4,A5 (R)
A SUM(B)
1 6
2 14
3 4
A( A, SUM(B)(R))
Bibliografía
Algebra Relacional. (s.f.). Obtenido de
http://ict.udlap.mx/people/carlos/is341/bases04.html
Anonimo. (s.f.). Obtenido de http://fcays.ens.uabc.mx/anterior/BD/AlgebraRelacional.pdf
Fing.edu. (s.f.). Obtenido de
https://www.fing.edu.uy/tecnoinf/mvd/cursos/bd2/material/teo/bd2-teorico01.pdf
Gaona, D. A. (s.f.). Obtenido de http://hp.fciencias.unam.mx/~alg/bd/alg.pdf
Google Sites. (s.f.). Obtenido de
https://sites.google.com/site/basededatosdistribuidastics/algebra-relacional
TRIPOD. (s.f.). Obtenido de http://basdatos.tripod.com/algebra.html
WordPress. (s.f.). Obtenido de https://quintonivel2010.wordpress.com/2010/05/28/algebra-
relacional/