Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 5
Algebra Relacional
Pedro Pablo Alarcn Cavero
Departamento de O.E.I.
Escuela Universitaria de Informtica
Universidad Politcnica de Madrid
lgebra Relacional
n Introduccin
n Lenguajes de acceso en BDR
n lgebra Relacional
n Lenguaje procedimental (se indica qu y cmo obtenerlo)
n Clculo Relacional
n Lenguaje no procedimental (se indica qu pero no cmo obtenerlo)
n Dos tipos
n Orientado a Tuplas
n Orientado a Dominios
1
lgebra Relacional
n Definicin
n Conjunto cerrado de operaciones
n Actan sobre relaciones
n Producen relaciones como resultados
n Pueden combinarse para construir expresiones ms complejas
Unin
n R S
n La unin de dos relaciones R y S, es otra relacin que
contiene las tuplas que estn en R, o en S, o en ambas,
eliminndose las tuplas duplicadas
n R y S deben ser unin-compatible, es decir, definidas
sobre el mismo conjunto de atributos
2
Diferencia
n R-S
n La diferencia de dos relaciones R y S, es otra relacin
que contiene las tuplas que estn en la relacin R, pero
no estn en S
n R y S deben ser unin-compatible
Ingenieros - Jefes
Ingenieros Jefes E# Nombre Edad
E# Nombre Edad E# Nombre Edad 322 Rosa 37
320 Jos 34 320 Jos 34 Mara 25
322 Rosa 37 421 Jorge 48
323 Mara 25 Jefes - Ingenieros
E# Nombre Edad
421 Jorge 48
Producto Cartesiano
n RxS
n Define una relacin que es la concatenacin de cada
una de las filas de la relacin R con cada una de las
filas de la relacin S
Ingenieros X Proyectos
Ingenieros E# Nombre D# Proyecto Tiempo
E# Nombre D# 320 Jos D1 RX338A 21
320 Jos D1 PY254Z 32
320 Jos D1 322 Rosa D3 RX338A 21
322 Rosa D3 Departamentos Rosa D3 PY254Z 32
Proyectos
D# Descrip Ingenieros X Departamentos
D1 Central
Proyecto Tiempo E# Nombre D# DD Descrip
D3 I+D 320 Jos D1 D1 Central
RX338A 21 320 Jos D1 D3 I+D
PY254Z 32 322 Rosa D3 D1 Central
Rosa D3 D3 I+D
3
Seleccin
n predicado (R)
n Es un operador unario
n Define una relacin con los mimos atributos que R y
que contiene solo aquellas filas de R que satisfacen
la condicin especificada (predicado)
Proyeccin
n col1, . . . , coln(R)
n Es un operador unario
n Define una relacin que contiene un subconjunto
vertical de R con los valores de los atributos
especificados, eliminando filas duplicadas en el
resultado
4
Interseccin
n R S
n Define una relacin que contiene el conjunto de
todas las filas que estn tanto en la relacin R como
en S
n R y S deben ser unin-compatible
n Equivalencia con operadores bsicos
R S = R (R S)
Divisin o Cociente
n R S
n Define una relacin sobre el conjunto de atributos C, incluido en la
relacin R, y que contiene el conjunto de valores de C, que en las
tuplas de R estn combinadas con cada una de las tuplas de S
n Condiciones
n grado(R) > grado (S)
n conjunto atributos de S conjunto de atributos de R
n Equivalencia con operadores bsicos
X1 = C(R); X2 = C((S X X1) R); X = X1 X2
R1 E# Proyecto R2 Proyecto R1 R2
320 RX338A RX338A
320 PY254Z E#
PY254Z 320
RX338A
323 NC168T 323
PY254Z
PY254Z
324 NC168T
5
Join
n Unin Natural (Natural Join)
n R S R*S
n El resultado es una relacin con los atributos de ambas
relaciones y se obtiene combinando las tuplas de ambas
relaciones que tengan el mismo valor en los atributos comunes
n Normalmente la operacin de join se realiza entre los atributos
comunes de dos tablas que corresponden a la clave primaria
de una tabla y la clave fornea correspondiente de la otra tabla
n Mtodo
n Se realiza el producto cartesiano R x S
n Se seleccionan aquellas filas del producto cartesiano para las
que los atributos comunes tengan el mismo valor
n Se elimina del resultado una ocurrencia (columna) de cada uno
de los atributos comunes
n Equivalencia con operadores bsicos
R F S = F(R S)
2002 P.P. Alarcn Bases de Datos 11
Join
n Outer Join
n Es una variante del Join en la que se intenta mantener
toda la informacin de los operandos, incluso para
aquellas filas que no participan en el Join
n Se rellenan con nulos las tuplas que no tienen
correspondencia en el Join
n Tres variantes
n Left
n se tienen en cuenta todas las filas del primer operando
n Right
n se tienen en cuenta todas las filas del segundo operando
n Full
n se tienen en cuenta todas las filas de ambos operandos
6
Join
R1 * LEFT R2
E# Nombre D# Descrip
R1 R2 320 Jos D1 Central
E# Nombre D# D# Descrip 322 Rosa D3 I+D
Mara D3 I+D
320 Jos D1 D1 Central Jos D5 null
322 Rosa D3 D3 I+D
Mara D3 D4 Ventas R1 * RIGHT R2
Jos D5 E# Nombre D# Descrip
Jos D1 Central
322 Rosa D3 I+D
Mara D3 I+D
R1 * R2 null null D4 Ventas
E# Nombre D# Descrip R1 * FULL R2
320 Jos D1 Central E# Nombre D# Descrip
322 Rosa D3 I+D 320 Jos D1 Central
Mara D3 I+D 322 Rosa D3 I+D
Mara D3 I+D
Jos D5 null
null null D4 Ventas
2002 P.P. Alarcn Bases de Datos 13
Asociacin
n Asociacin o Theta Join (-Join)
n R F S
R*FS
n Define una relacin que contiene las tuplas que satisfacen el
predicado F en el producto cartesiano de R y S
n El predicado F es de la forma R.ai S.bi donde representa
un operador de comparacin (<, , >, , =, )
n El predicado no tiene por que definirse sobre atributos
comunes
n Equivalencia con operadores bsicos
R F S = F(R S)
n Equijoin
n Si el predicado F contiene nicamente el operador de igualdad
7
Ejemplos
Asignaturas Notas
CodA NombreA Precio Nmat CodA Conv Nota
Ejemplo 1
n Obtener los apellidos y telfono de los alumnos de
nombre Rosa
apellidos, telefono (nombre=Rosa(Alumnos))
Apellidos Telefono
Lpez Lpez 1113344
8
Ejemplo 1
n Obtener los alumnos que figuren matriculados en todas
las asignaturas
Nmat,codA (Notas) codA (Asignaturas)
Nmat
0338
nombre, apellidos , (Alumnos * (Nmat,codA (Notas) codA (Asignaturas)))
Nombre Apellidos
Ana Prez Gmez
Ejemplo 1
n Obtener los alumnos que figuren matriculados en las asignaturas de
Ingls y Dibujo
Nmat (nombreA=Ingles (Asignaturas) * Alumnos)
Nmat (nombreA=Dibujo (Asignaturas) * Alumnos)
Nmat
0338
0168
Nmat
0338
0254