Aztecas Entre Los Aztecas
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).
Dr. Carlos Castillo
UPF – 2005
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 viajede Chihiro
Año
Actor
ID_Actor
1977
2001
2004
2001
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
(R)
1,A2,...,An
A
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
Actor
ID_Actor
1977
2001
2004
2001
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
Actor
ID_Actor
1977
2001
2004
2001
1
2
3
4
Nombre
MarkCristopher
Javier
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
ID_Estudio
1977
2001
2004
2001
3
2
4
1
(Año(Película) = { 1997, 2001, 2004 }
11
Operación 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
Película
ID_Película
1
2
3
4
Producto cartesiano (×)
ejemplos
Nombre
La guerra de las galaxias
La comunidad del anillo
Mar adentro
El viaje de Chihiro
Año
ID_Estudio
1977
2001
2004
2001
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
ID_Estudio
1977
2001
2004
2001
3
2
4
1
Estudio
ID_Estudio
1
2
3
4
Nombre
Ghibli
NewLine 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.