Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 5
Algebra Relacional
Pedro Pablo Alarcón Cavero
Departamento de O.E.I.
Escuela Universitaria de Informática
Universidad Politécnica de Madrid
Álgebra Relacional
n Introducción
n Lenguajes de acceso en BDR
n Álgebra Relacional
n Lenguaje procedimental (se indica qué y cómo obtenerlo)
n Cálculo Relacional
n Lenguaje no procedimental (se indica qué pero no cómo obtenerlo)
n Dos tipos
n Orientado a Tuplas
n Orientado a Dominios
1
Á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
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
2
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
Ingenieros - Jefes
Ingenieros Jefes E# Nombre Edad
E# Nombre Edad E# Nombre Edad 322 Rosa 37
320 José 34 320 José 34 • María 25
322 Rosa 37 421 Jorge 48
323 María 25 Jefes - Ingenieros
E# Nombre Edad
421 Jorge 48
Producto Cartesiano
n RxS
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
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
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)
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
4
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)
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
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 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 F S = σF(R Χ S)
2002 © P.P. Alarcón Bases de Datos 11
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
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
• María D3 I+D
320 José D1 D1 Central • José D5 null
322 Rosa D3 D3 I+D
• María D3 D4 Ventas R1 * RIGHT R2
• José D5 E# Nombre D# Descrip
• José D1 Central
322 Rosa D3 I+D
• María 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
• María D3 I+D 322 Rosa D3 I+D
• María D3 I+D
• José D5 null
null null D4 Ventas
2002 © P.P. Alarcón Bases de Datos 13
Asociación
n Asociación o Theta Join (θ-Join)
n R F S
ó 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.ai θ S.bi donde θ representa
un operador de comparación (<, ≤, >, ≥, =, ≠)
n El predicado no tiene por que definirse sobre atributos
comunes
n Equivalencia con operadores básicos
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 teléfono de los alumnos de
nombre Rosa
πapellidos, telefono (σnombre=‘Rosa’(Alumnos))
Apellidos Telefono
López López 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 Pérez Gómez
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)
Nmat
0338
0168
Nmat
0338
0254