Está en la página 1de 9

Asignatura de Bases de Datos

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

n Álgebra y Cálculo 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 cálculo relacional
2002 © P.P. Alarcón Bases de Datos 2

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

n Operadores Básicos n Operadores Derivados


n Unión n Intersección
n Diferencia n Join
n Producto Cartesiano n División
n Selección n Asociación
n Proyección
n Son operacionalmente completos, n No añaden nada nuevo
permiten expresar cualquier consulta a n Se forman combinando los operadores básicos
una BDR n Son útiles en determinadas consultas

2002 © P.P. Alarcón Bases de Datos 3

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

Ingenieros Jefes Ingenieros ∪ Jefes

E# Nombre Edad E# Nombre Edad E# Nombre Edad


320 José 34 320 José 34 320 José 34
322 Rosa 37 421 Jorge 48 322 Rosa 37
323 María 25 • María 25
421 Jorge 48

2002 © P.P. Alarcón Bases de Datos 4

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

2002 © P.P. Alarcón Bases de Datos 5

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

2002 © P.P. Alarcón Bases de Datos 6

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)

Ingenieros σ edad>=35 (Ingenieros) σ edad>=45 (Ingenieros)

E# Nombre Edad E# Nombre Edad E# Nombre Edad


320 José 34 322 Rosa 37
322 Rosa 37
323 María 25

2002 © P.P. Alarcón Bases de Datos 7

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

Ingenieros πNombre,Edad (Ingenieros) πNombre(Ingenieros)


E# Nombre Edad Nombre Edad Nombre
320 José 34 José 34 José
322 Rosa 37 Rosa 37 Rosa
• María 25 María 25 María
• José 29 José 29

2002 © P.P. Alarcón Bases de Datos 8

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)

Ingenieros Jefes Ingenieros ∩


∩ Jefes

E# Nombre Edad E# Nombre Edad E# Nombre Edad


320 José 34 320 José 34 320 José 34
322 Rosa 37 421 Jorge 48
323 María 25

2002 © P.P. Alarcón Bases de Datos 9

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

2002 © P.P. Alarcón Bases de Datos 10

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

2002 © P.P. Alarcón Bases de Datos 12

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

2002 © P.P. Alarcón Bases de Datos 14

7
Ejemplos

Asignaturas Notas
CodA NombreA Precio Nmat CodA Conv Nota

1 Program. 15000 0338 1 Feb 02 8


2 Dibujo 20000 0254 2 Feb 02 5
3 Inglés 18000 0168 2 Feb 02 3
Alumnos 0338 2 Feb 02 5
Nmat Nombre Apellidos Domicilio Telefono 0338 3 Jun 02 7

0338 Ana Pérez Gómez C / Julio nº 96 1112233 0254 1 Jun 02 6


0254 Rosa López López C/ Verano s/n 1113344 0168 1 Jun 02 9
0168 Juan García García C/ Playa nº 1 1114455 0168 3 Jun 02 5

2002 © P.P. Alarcón Bases de Datos 15

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

n Obtener las notas obtenidas en la asignatura de Inglés


πnombre, apellidos, nota (σnombreA=‘Ingles’(Alumnos*Notas*Asignaturas))

Nombre Apellidos Nota


Ana Pérez Gómez 7
Juan García García 5

2002 © P.P. Alarcón Bases de Datos 16

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

2002 © P.P. Alarcón Bases de Datos 17

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

n Obtener los alumnos que no han suspendido ninguna asignatura


πNmat (σnota>=5 (Notas)) - π Nmat (σnota<5 (Notas))

Nmat
0338
0254

2002 © P.P. Alarcón Bases de Datos 18

También podría gustarte