Algebra Relacional
Tema 6. Álgebra relacional
Bibliografía:
Elmasri y Navathe: “Fundamentos de Sistemas de Bases de
Datos”
3ª edición, 2002 (Capítulo 7).
Garcia-Molina, Ullman y Widom: “Database systems: the
complete book”. Prentice-Hall (Capítulo 5).
Carlos Castillo
UPF – 2008
1
Operaciones
Proyectar ()
Seleccionar ()
Producto cartesiano (×)
Join ó Reunir ( )Operaciones de conjuntos
Unir (∪)
Intersectar (∩)
Restar (–)
2
Proyección ()
Selecciona el valor de ciertos atributos
de todas las tuplas de una relación
A1,A2,...,An(R) = { t[A1,A2,...,An] : t ∈ R }
Selecciona columnas completas
3
Proyección () ejemplos
Película
ID_Película
1
2
3
4
Nombre
La guerra de las galaxias
El señor de los anillos 1
Mar Adentro
El viaje deChihiro
Año
1977
2001
2004
2001
Actor
ID_Actor
1
2
3
4
Nombre
Mark
Cristopher
Javier
Hugo
Apellido
Hamill
Lee
Bardem
Weaving
Año(Película) =
{,,,}
ID_Película,Año(Película) =
{,,,}
Nombre(Actor) =
{,,,}
4
Proyección () en SQL
A1,A2,...,An(R)
SELECT A1,A2,...,An FROM R
5
Selección ()
Selecciona el valor de ciertas tuplascondición(R) = { t∈R : condición(t) es cierto}
Selecciona filas completas
6
Selección () ejemplos
Película
ID_Película
1
2
3
4
Nombre
La guerra de las galaxias
La comunidad del anillo
Mar Adentro
El viaje de Chihiro
Año
1977
2001
2004
2001
Actor
ID_Actor
1
2
3
4
Nombre
Mark
Cristopher
Javier
Hugo
Apellido
Hamill
Lee
Bardem
WeavingApellido=Lee(Actor) =
{}
Año>2000(Película) =
{,
}
7
Selección () en SQL
condición(R)
SELECT * FROM R WHERE condición
8
Composición de selección y
proyección ,
Película
ID_Película
1
2
3
4
Nombre
La guerra de las galaxias
La comunidad del anillo
Mar Adentro
El viaje de Chihiro
Año
1977
2001
2004
2001
Actor
ID_Actor
1
2
3
4
Nombre
Mark
CristopherJavier
Hugo
Apellido
Hamill
Lee
Bardem
Weaving
Nombre(Apellido=Lee(Actor)) =
{}
Nombre(Año>2000(Película)) =
{,
}
9
Composición ( y ) en SQL
A1,A2,...,An(condición(R))
SELECT A1,A2,...,An FROM R WHERE condición
10
Eliminar duplicados ()
Elimina tuplas
duplicadas en una
relación
Película
ID_Película
1
2
3
4
Nombre
La guerra de las galaxiasLa comunidad del anillo
Mar adentro
El viaje de Chihiro
(R)
Año
1977
2001
2004
2001
ID_Estudio
3
2
4
1
(Año(Película) = { 1997, 2001, 2004 }
11
Operación delta en SQL
(R)
SELECT DISTINCT * FROM R
12
Producto cartesiano (×)
A × B = {(a,b): a ∈ A ∧ b ∈ B}
Ejemplo:
A = {s,t}
B = {u,v,w}
A × B = {s,t} × {u,v,w}
{(s,u),(s,v),(s,w),(t,u),(t,v),(t,w) }
La cardinalidad es |A × B| = |A||B|
13
Producto cartesiano (×)
ejemplos
Película
ID_Película
1
2
3
4
Nombre
La guerra de las galaxias
La comunidad del anillo
Mar adentro
El viaje de Chihiro
Año
1977
2001
2004
2001
ID_Estudio
3
2
4
1
Estudio
ID_Estudio
1
2
3
4
Nombre
Ghibli
New Line Cinema
Lucasfilms
Sogecine
Película× Estudio =
{
,,
,
,
,
,
,
,
,
,
... }
14
Producto cartesiano (×) en SQL
R1×R2
SELECT * FROM R1,R2
15
Seleccionar combinaciones
correctas
Película
ID_Película
1
2
3
4
Nombre
La guerra de las galaxias
La comunidad del anillo
Mar adentro
El viaje de Chihiro
Año
1977
2001
2004
2001
ID_Estudio
3
2
4
1
Estudio
ID_Estudio
1
2
3
4
Nombre
GhibliNew Line Cinema
Lucasfilms
Sogecine
Película.ID_estudio=Estudio.ID_Estudio(Película× Estudio) =
{
,
,
,
}
16
Seleccionar combinaciones
correctas en SQL
R1.k=R2.k(R1×R2)
SELECT * FROM R1,R2 WHERE R1.k=R2.k
17
Notación, operación
Reunir (JOIN)
R1.k=R2.k (R1×R2)
R1
k
R2
18
Operación JOIN en SQL
R1
k
R2
SELECT * FROM R1,R2 WHERE...
Regístrate para leer el documento completo.