Está en la página 1de 9

Asignatura de Bases de Datos

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

Clculo Relacional

n
n
n

n
n

Lenguaje no procedimental (se indica qu pero no cmo obtenerlo)


Dos tipos
n Orientado a Tuplas
n Orientado a Dominios

lgebra y Clculo Relacional son equivalentes en poder


expresivo
Lenguajes de Usuario
n
n

2002 P.P. Alarcn

Lenguaje procedimental (se indica qu y cmo obtenerlo)

SQL (Structured Query Language), basado en lgebra relacional


QBE (Query By Example), basado en clculo relacional
Bases de Datos

lgebra Relacional
n

Definicin
Conjunto cerrado de operaciones

n
n
n
n

Operadores Bsicos

Unin
Diferencia
Producto Cartesiano
Seleccin
Proyeccin

n
n
n
n
n
n

Actan sobre relaciones


Producen relaciones como resultados
Pueden combinarse para construir expresiones ms complejas
Operadores Derivados
n
n
n
n

Son operacionalmente completos,


permiten expresar cualquier consulta a
una BDR

n
n
n

Interseccin
Join
Divisin
Asociacin

No aaden nada nuevo


Se forman combinando los operadores bsicos
Son tiles en determinadas consultas
3

Bases de Datos

2002 P.P. Alarcn

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
R y S deben ser unin-compatible, es decir, definidas
sobre el mismo conjunto de atributos

Ingenieros

E# Nombre Edad
320 Jos
34
322 Rosa
37
323 Mara
25

2002 P.P. Alarcn

Jefes

E# Nombre Edad
320 Jos
34
421 Jorge
48

Bases de Datos

Ingenieros Jefes

E# Nombre Edad
320 Jos
34
322 Rosa
37

Mara
25
421 Jorge
48

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
R y S deben ser unin-compatible
Ingenieros - Jefes

Ingenieros

Jefes

E# Nombre Edad
320 Jos
34
322 Rosa
37
323 Mara
25

E# Nombre Edad
320 Jos
34
421 Jorge
48

E# Nombre Edad
322 Rosa
37

Mara
25
Jefes - Ingenieros

E# Nombre Edad
421 Jorge
48
5

Bases de Datos

2002 P.P. Alarcn

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#
320 Jos
D1
322 Rosa D3
Proyectos

Proyecto Tiempo
RX338A
21
PY254Z
32

2002 P.P. Alarcn

Departamentos

D# Descrip
D1 Central
D3 I+D

E#
320
320
322

Nombre
Jos
Jos
Rosa
Rosa

D#
D1
D1
D3
D3

Proyecto Tiempo
RX338A 21
PY254Z
32
RX338A 21
PY254Z
32

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
Bases de Datos

Seleccin
n

predicado (R)
n
n

Es un operador unario
Define una relacin con los mimos atributos que R y
que contiene solo aquellas filas de R que satisfacen
la condicin especificada (predicado)

Ingenieros

E# Nombre Edad
320 Jos
34
322 Rosa
37
323 Mara
25

edad>=35 (Ingenieros)

edad>=45 (Ingenieros)

E# Nombre Edad
322 Rosa
37

E# Nombre Edad

Bases de Datos

2002 P.P. Alarcn

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
Ingenieros

E# Nombre Edad
320 Jos
34
322 Rosa
37

Mara
25

Jos
29

2002 P.P. Alarcn

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

Bases de Datos

Nombre(Ingenieros)
Nombre
Jos
Rosa
Mara

Interseccin
n

R S
n

n
n

Define una relacin que contiene el conjunto de


todas las filas que estn tanto en la relacin R como
en S
R y S deben ser unin-compatible
Equivalencia con operadores bsicos
R S = R (R S)

Ingenieros

Ingenieros
Jefes

Jefes

E# Nombre Edad
320 Jos
34
421 Jorge
48

E# Nombre Edad
320 Jos
34
322 Rosa
37
323 Mara
25

E# Nombre Edad
320 Jos
34

Bases de Datos

2002 P.P. Alarcn

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
Condiciones
n
n

grado(R) > grado (S)


conjunto atributos de S conjunto de atributos de R

Equivalencia con operadores bsicos


X1 = C(R);

R1

2002 P.P. Alarcn

E#
320
320

323

324

Proyecto
RX338A
PY254Z
RX338A
NC168T
PY254Z
PY254Z
NC168T

X2 = C((S X X1) R);


R2

Proyecto
RX338A
PY254Z

Bases de Datos

X = X1 X2
R1

R2

E#
320
323

10

Join
n

Unin Natural (Natural Join)


n

R
n

S R*S
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
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
Mtodo
n
n

Se realiza el producto cartesiano R x S


Se seleccionan aquellas filas del producto cartesiano para las
que los atributos comunes tengan el mismo valor
Se elimina del resultado una ocurrencia (columna) de cada uno
de los atributos comunes

Equivalencia con operadores bsicos

S = F(R S)
Bases de Datos

2002 P.P. Alarcn

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
Se rellenan con nulos las tuplas que no tienen
correspondencia en el Join
Tres variantes
n

Left
n

Right

Full

2002 P.P. Alarcn

se tienen en cuenta todas las filas del primer operando


se tienen en cuenta todas las filas del segundo operando
se tienen en cuenta todas las filas de ambos operandos
Bases de Datos

12

Join
R1 * LEFT R2
R1

R2

E# Nombre D#
320 Jos
D1
322 Rosa
D3

Mara
D3

Jos
D5

D#
D1
D3
D4

Descrip
Central
I+D
Ventas

R1 * RIGHT R2

R1 * R2

E# Nombre D# Descrip
320 Jos
D1 Central
322 Rosa
D3 I+D

Mara
D3 I+D

R1 * FULL R2

E#
320
322

Nombre
Jos
Rosa
Mara
Jos

D#
D1
D3
D3
D5

Descrip
Central
I+D
I+D
null

E#

322

null

Nombre
Jos
Rosa
Mara
null

D# Descrip
D1 Central
D3 I+D
D3 I+D
D4 Ventas

E#
320
322

null

Nombre
Jos
Rosa
Mara
Jos
null

D# Descrip
D1 Central
D3 I+D
D3 I+D
D5 null
D4 Ventas

Bases de Datos

2002 P.P. Alarcn

13

Asociacin
n

Asociacin o Theta Join (-Join)


n

R*FS
Define una relacin que contiene las tuplas que satisfacen el
predicado F en el producto cartesiano de R y S
El predicado F es de la forma R.ai S.bi donde representa
un operador de comparacin (<, , >, , =, )
El predicado no tiene por que definirse sobre atributos
comunes
Equivalencia con operadores bsicos

Equijoin

R
n

2002 P.P. Alarcn

S = F(R S)

Si el predicado F contiene nicamente el operador de igualdad

Bases de Datos

14

Ejemplos
Notas

Asignaturas
CodA NombreA

Precio

Nmat CodA Conv

Program.

15000

0338

Feb 02

Dibujo

20000

0254

Feb 02

Ingls

18000

0168

Feb 02

Alumnos
Nmat Nombre Apellidos

Nota

Domicilio

0338

Feb 02

Telefono

0338

Jun 02

0338

Ana

Prez Gmez

C / Julio n 96

1112233

0254

Jun 02

0254

Rosa

Lpez Lpez

C/ Verano s/n

1113344

0168

Jun 02

0168

Juan

Garca Garca

C/ Playa n 1

1114455

0168

Jun 02

15

Bases de Datos

2002 P.P. Alarcn

Ejemplo 1
n

2002 P.P. Alarcn

Obtener los apellidos y telfono de los alumnos de


nombre Rosa
apellidos, telefono (nombre=Rosa(Alumnos))
Apellidos

Telefono

Lpez Lpez

1113344

Obtener las notas obtenidas en la asignatura de Ingls


nombre, apellidos, nota (nombreA=Ingles(Alumnos*Notas*Asignaturas))
Nombre

Apellidos

Ana

Prez Gmez

Juan

Garca Garca

Bases de Datos

Nota

16

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

2002 P.P. Alarcn

Prez Gmez

Bases de Datos

17

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

Obtener los alumnos que no han suspendido ninguna asignatura


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

2002 P.P. Alarcn

Bases de Datos

18

También podría gustarte