1
Tema 5
Algebra Relacional
Pedro Pablo Alarcón Cavero
Departamento de O.E.I.
Escuela Universitaria de Informática
Universidad Politécnica de Madrid
Asignatura de Bases de Datos
Álgebra Relacional
n
Introducción
n
Lenguajes de acceso en BDR
n
Álgebra Relacional
nLenguaje procedimental (se indica qué y cómo obtenerlo)
n
Cálculo Relacional
nLenguaje no procedimental (se indica qué pero no cómo obtenerlo) nDos tipos
nOrientado a Tuplas nOrientado a Dominios
n
Álgebra y Cálculo Relacional son equivalentes en poder
expresivo
n
Lenguajes de Usuario
n
SQL (Structured Query Language), basado en álgebra relacional
2002 © P.P. Alarcón Bases de Datos 3
Álgebra Relacional
n
Definición
n
Conjunto cerrado de operaciones
n
Actúan sobre relaciones
n
Producen relaciones como resultados
n
Pueden combinarse para construir expresiones más complejas
n
Operadores Básicos
n Unión
n Diferencia
n Producto Cartesiano
n Selección
n Proyección
n Son operacionalmente completos,
permiten expresar cualquier consulta a una BDR
n
Operadores Derivados
n Intersección
n Join
n División
n Asociación
n No añaden nada nuevo
n Se forman combinando los operadores básicos n Son útiles en determinadas consultas
Unión
n
R
∪
∪
S
n
La unión de dos relaciones R y S, es otra relación que
contiene las tuplas que están en R, o en S, o en ambas,
eliminándose las tuplas duplicadas
n
R y S deben ser unión-compatible, es decir, definidas
sobre el mismo conjunto de atributos
E# Nombre Edad
320 José 34 322 Rosa 37 323 María 25
E# Nombre Edad
320 José 34 421 Jorge 48
I ngenieros Jefes I ngenieros ∪∪ Jefes
E# Nombre Edad
2002 © P.P. Alarcón Bases de Datos 5
Diferencia
n
R - S
n
La diferencia de dos relaciones R y S, es otra relación
que contiene las tuplas que están en la relación R, pero
no están en S
n
R y S deben ser unión-compatible
E# Nombre Edad
320 José 34 322 Rosa 37 323 María 25
E# Nombre Edad
320 José 34 421 Jorge 48
I ngenieros Jefes
I ngenieros - Jefes
E# Nombre Edad
322 Rosa 37 • María 25
Jefes - I ngenieros
E# Nombre Edad
421 Jorge 48
Producto Cartesiano
n
R x S
n
Define una relación que es la concatenación de cada
una de las filas de la relación R con cada una de las
filas de la relación S
E# Nombre D#
320 José D1 322 Rosa D3
I ngenieros
D# Descrip
D1 Central D3 I+D
Departamentos
Proyecto Tiempo
RX338A 21 PY254Z 32
Proyectos I ngenieros 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
I ngenieros X Proyectos
E# Nombre D# Proyecto Tiempo
2002 © P.P. Alarcón Bases de Datos 7
Selección
n
σ
σ
predicado(R)
n
Es un operador unario
n
Define una relación con los mimos atributos que R y
que contiene solo aquellas filas de R que satisfacen
la condición especificada (predicado)
E# Nombre Edad
320 José 34 322 Rosa 37 323 María 25
I ngenieros σσedad> = 35 (I ngenieros)
E# Nombre Edad
322 Rosa 37
σ
σedad> = 45 (I ngenieros)
E# Nombre Edad
Proyección
n
Π
Π
col1, . . . , coln(R)
n
Es un operador unario
n
Define una relación 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 • María 25 • José 29
I ngenieros
ππ
Nombre,Edad ( I ngenieros)Nombre Edad
José 34 Rosa 37 María 25 José 29
ππ
Nombre(I ngenieros)Nombre
2002 © P.P. Alarcón Bases de Datos 9
Intersección
n
R
∩
∩
S
n
Define una relación que contiene el conjunto de
todas las filas que están tanto en la relación R como
en S
n
R y S deben ser unión-compatible
n
Equivalencia con operadores básicos
R
∩
S = R – (R – S)
E# Nombre Edad
320 José 34 322 Rosa 37 323 María 25
E# Nombre Edad
320 José 34 421 Jorge 48
I ngenieros Jefes I ngenieros ∩∩ Jefes
E# Nombre Edad
320 José 34
División o Cociente
n
R
÷
÷
S
n
Define una relación sobre el conjunto de atributos C, incluido en la
relación R, y que contiene el conjunto de valores de C, que en las
tuplas de R están 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 básicos
X1 = ΠC(R); X2 = ΠC((S X X1) – R); X = X1 – X2
Proyecto
RX338A PY254Z
R2
E# Proyecto
320 RX338A 320 PY254Z
• RX338A
323 NC168T
• PY254Z
• PY254Z
324 NC168T
R1
E#
320 323
2002 © P.P. Alarcón Bases de Datos 11
Join
n
Unión Natural (Natural Join)
n
R S
ó
R * S
n
El resultado es una relación 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 operación de join se realiza entre los atributos
comunes de dos tablas que corresponden a la clave primaria
de una tabla y la clave foránea correspondiente de la otra tabla
n
Método
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 básicos
R
FS =
σ
F(R
Χ
S)
Join
n
Outer Join
n
Es una variante del Join en la que se intenta mantener
toda la información 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
nLeft
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
2002 © P.P. Alarcón Bases de Datos 13
Join
E# Nombre D#
320 José D1 322 Rosa D3 • María 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 • María D3 I+D
R1 * R2
E# Nombre D# Descrip
320 José D1 Central 322 Rosa D3 I+D • María D3 I+D • José D5 null
R1 * LEFT R2
E# Nombre D# Descrip
• José D1 Central 322 Rosa D3 I+D • María D3 I+D
null null D4 Ventas
R1 * RI GHT R2
R1 * FULL R2 E# Nombre D# Descrip
320 José D1 Central 322 Rosa D3 I+D • María D3 I+D • José D5 null null null D4 Ventas
Asociación
n
Asociación o Theta Join (
θ
-Join)
n
R
FS
ó
R *
FS
n
Define una relación 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
idonde
θ
representa
un operador de comparación (<,
≤
, >,
≥
, =,
≠
)
n
El predicado no tiene por que definirse sobre atributos
comunes
n
Equivalencia con operadores básicos
R
FS =
σ
F(R
Χ
S)
nEquijoin
2002 © P.P. Alarcón Bases de Datos 15
Ejemplos
1 Program. 15000
2 Dibujo 20000
3 Inglés 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 Pérez Gómez C / Julio nº 96 1112233 0254 Rosa López López C/ Verano s/n 1113344 0168 Juan García García C/ Playa nº 1 1114455 Nmat Nombre Apellidos Domicilio Telefono
Alumnos
Ejemplo 1
n
Obtener los apellidos y teléfono de los alumnos de
nombre Rosa
π
apellidos, telefono(σ
nombre=‘Rosa’(Alumnos))
n
Obtener las notas obtenidas en la asignatura de Inglés
π
nombre, apellidos, nota(σ
nombreA=‘Ingles’(Alumnos*Notas*Asignaturas))
López López 1113344
Apellidos Telefono
Ana Pérez Gómez 7
Nombre Apellidos Nota
2002 © P.P. Alarcón 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 Pérez Gómez
Nombre Apellidos
0338
Nmat
Ejemplo 1
n
Obtener los alumnos que figuren matriculados en las asignaturas de
Inglés 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