Está en la página 1de 9

1

1
Tema 5
Algebra Relacional
Pedro Pablo Alarcn Cavero
Departamento de O.E.I.
Escuela Universitaria de Informtica
Universidad Politcnica de Madrid
Asignatura de Bases de Datos
2002 P.P. Alarcn Bases de Datos 2
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
n lgebra y Clculo Relacional son equivalentes en poder
expresivo
n Lenguajes de Usuario
n SQL (Structured Query Language), basado en lgebra relacional
n QBE (Query By Example), basado en clculo relacional
2
2002 P.P. Alarcn Bases de Datos 3
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
n Operadores Bsicos
n Unin
n Diferencia
n Producto Cartesiano
n Seleccin
n Proyeccin
n Son operacionalmente completos,
permiten expresar cualquier consulta a
una BDR
n Operadores Derivados
n Interseccin
n Join
n Divisin
n Asociacin
n No aaden nada nuevo
n Se forman combinando los operadores bsicos
n Son tiles en determinadas consultas
2002 P.P. Alarcn Bases de Datos 4
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
E# Nombre Edad
320 Jos 34
322 Rosa 37
323 Mara 25
E# Nombre Edad
320 Jos 34
421 Jorge 48
Ingenieros Jefes
Ingenieros Jefes
E# Nombre Edad
320 Jos 34
322 Rosa 37
Mara 25
421 Jorge 48
3
2002 P.P. Alarcn Bases de Datos 5
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
E# Nombre Edad
320 Jos 34
322 Rosa 37
323 Mara 25
E# Nombre Edad
320 Jos 34
421 Jorge 48
Ingenieros Jefes
Ingenieros - Jefes
E# Nombre Edad
322 Rosa 37
Mara 25
Jefes - Ingenieros
E# Nombre Edad
421 Jorge 48
2002 P.P. Alarcn Bases de Datos 6
Producto Cartesiano
n R x S
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
E# Nombre D#
320 Jos D1
322 Rosa D3
Ingenieros
D# Descrip
D1 Central
D3 I+D
Departamentos
Proyecto Tiempo
RX338A 21
PY254Z 32
Proyectos
Ingenieros X Departamentos
E# Nombre D# DD Descrip
320 Jos D1 D1 Central
320 Jos D1 D3 I+D
322 Rosa D3 D1 Central
Rosa D3 D3 I+D
Ingenieros X Proyectos
E# Nombre D# Proyecto Tiempo
320 Jos D1 RX338A 21
320 Jos D1 PY254Z 32
322 Rosa D3 RX338A 21
Rosa D3 PY254Z 32
4
2002 P.P. Alarcn Bases de Datos 7
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)
E# Nombre Edad
320 Jos 34
322 Rosa 37
323 Mara 25
Ingenieros

edad>=35
(Ingenieros)
E# Nombre Edad
322 Rosa 37

edad>=45
(Ingenieros)
E# Nombre Edad
2002 P.P. Alarcn Bases de Datos 8
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
E# Nombre Edad
320 Jos 34
322 Rosa 37
Mara 25
Jos 29
Ingenieros

Nombre,Edad
(Ingenieros)
Nombre Edad
Jos 34
Rosa 37
Mara 25
Jos 29

Nombre
(Ingenieros)
Nombre
Jos
Rosa
Mara
5
2002 P.P. Alarcn Bases de Datos 9
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)
E# Nombre Edad
320 Jos 34
322 Rosa 37
323 Mara 25
E# Nombre Edad
320 Jos 34
421 Jorge 48
Ingenieros J efes Ingenieros Jefes
E# Nombre Edad
320 Jos 34
2002 P.P. Alarcn Bases de Datos 10
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
X
1
=
C
(R); X
2
=
C
((S X X
1
) R); X = X
1
X
2
Proyecto
RX338A
PY254Z
R2
E# Proyecto
320 RX338A
320 PY254Z
RX338A
323 NC168T
PY254Z
PY254Z
324 NC168T
R1
E#
320
323
R1 R2
6
2002 P.P. Alarcn Bases de Datos 11
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 12
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
7
2002 P.P. Alarcn Bases de Datos 13
Join
E# Nombre D#
320 Jos D1
322 Rosa D3
Mara D3
Jos D5
R1
D# Descrip
D1 Central
D3 I+D
D4 Ventas
R2
E# Nombre D# Descrip
320 Jos D1 Central
322 Rosa D3 I+D
Mara D3 I+D
R1 * R2
E# Nombre D# Descrip
320 Jos D1 Central
322 Rosa D3 I+D
Mara D3 I+D
Jos D5 null
R1 *
LEFT
R2
E# Nombre D# Descrip
Jos D1 Central
322 Rosa D3 I+D
Mara D3 I+D
null null D4 Ventas
R1 *
RIGHT
R2
R1 *
FULL
R2
E# Nombre D# Descrip
320 Jos D1 Central
322 Rosa D3 I+D
Mara D3 I+D
Jos D5 null
null null D4 Ventas
2002 P.P. Alarcn Bases de Datos 14
Asociacin
n Asociacin o Theta Join (-Join)
n R
F
S R *
F
S
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.a
i
S.b
i
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
8
2002 P.P. Alarcn Bases de Datos 15
Ejemplos
1 Program. 15000
2 Dibujo 20000
3 Ingls 18000
CodA NombreA Precio
Asignaturas
0254 2 Feb 02 5
0168 2 Feb 02 3
0254 1 Jun 02 6
0168 1 Jun 02 9
0168 3 Jun 02 5
Nmat CodA Conv Nota
0338 1 Feb 02 8
0338 3 Jun 02 7
0338 2 Feb 02 5
Notas
0338 Ana Prez Gmez C / Julio n 96 1112233
0254 Rosa Lpez Lpez C/ Verano s/n 1113344
0168 Juan Garca Garca C/ Playa n 1 1114455
Nmat Nombre Apellidos Domicilio Telefono
Alumnos
2002 P.P. Alarcn Bases de Datos 16
Ejemplo 1
n Obtener los apellidos y telfono de los alumnos de
nombre Rosa

apellidos, telefono
(
nombre=Rosa
(Alumnos))
n Obtener las notas obtenidas en la asignatura de Ingls

nombre, apellidos, nota


(
nombreA=Ingles
(Alumnos*Notas*Asignaturas))
Lpez Lpez 1113344
Apellidos Telefono
Ana Prez Gmez 7
Nombre Apellidos Nota
J uan Garca Garca 5
9
2002 P.P. Alarcn Bases de Datos 17
Ejemplo 1
n Obtener los alumnos que figuren matriculados en todas
las asignaturas

Nmat,codA
(Notas)
codA
(Asignaturas)

nombre, apellidos,
(Alumnos * (
Nmat,codA
(Notas)
codA
(Asignaturas)))
Ana Prez Gmez
Nombre Apellidos
0338
Nmat
2002 P.P. Alarcn Bases de Datos 18
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)
n Obtener los alumnos que no han suspendido ninguna asignatura

Nmat
(
nota>=5
(Notas)) -
Nmat
(
nota<5
(Notas))
0338
0168
Nmat
0338
0254
Nmat

También podría gustarte