Está en la página 1de 66

Teoría 

y Diseño de 
Base de Datos

Álgebra Relacional

Área Ingeniería de Software 
Departamento de Ciencias de la Computación
Facultad de Economía y Administración
Universidad Nacional del Comahue
2. “Algebra Relacional ”
2.a  Introducción
2.b  Operaciones  
2.c  Definición formal del Algebra Relacional
2.d  Otras Operaciones
2.e  Algunas Propiedades
2.f  Join Externo y Unión Externa
2.g  Funciones Agregadas
2.h  Modificación de una BD
2.i   Vistas
Teoría y Diseño de BD 2
MSE Adriana E. Martín                                                                            
2.a  Introducción Algebra Relacional

Algebra Relacional
  
…es un Lenguaje de Consulta Procedimental. 

…consta de un Conjunto de Operaciones que toman como entrada 
una o dos relaciones y producen como salida una nueva 
relación.

…dos relaciones sobre el mismo Esquema de Relación pueden ser 
consideradas conjuntos sobre el mismo universo. 

entonces …
Teoría y Diseño de BD 3
MSE Adriana E. Martín                                                                             
2.b  Operaciones Algebra Relacional

Sean r y s dos relaciones sobre el Esquema de Relación R:

 r ∪ s  =  { t  |  t ∈ r  o  t ∈ s } 

 r ∩ s  =  { t  |  t ∈ r  y  t ∈ s } 

 r \ s  =  r – s  =  { t  |  t ∈ r  y  t ∉ s } 

 complemento de la relación r sobre R con Dominio Finito 
      dom( R ):               
comp( r )  =  dom( R ) – r
Nota: Estas operaciones son binarias, es decir operan sobre 
pares de relaciones ( con el mismo esquema de relación).
Teoría y Diseño de BD 4
MSE Adriana E. Martín                                                                            
2.b  Operaciones Algebra Relacional

r s
A1 A2 A1 A2
Cipolletti Vicario Cipolletti Zahn
Allen Castañet Cipolletti Vicario
Roca Scholz Roca Martín

r ∪ s r ∩ s r \ s  =  r – s


A1 A2 A1 A2 A1 A2
Cipolletti Vicario Cipolletti Vicario Allen Castañet
Allen Castañet Roca Scholz
Roca Scholz
Cipolletti Zahn
Roca Matín

Teoría y Diseño de BD 5
MSE Adriana E. Martín                                                                               
2.b  Operaciones Algebra Relacional
r dom( R )
A1 A2 A1 A2
Cipolletti Vicario Cipolletti Vicario
Allen Castañet Allen Castañet
Roca Scholz Roca Scholz
Cipolletti Zahn
Qué pasa si 
comp( r )  Roca Matín
algún  
A1 A2
dom( Ai ) 
Allen Giró
Cipolletti Zahn
es infinito? 
Cipolletti Scholz
Roca Matín El Bolsón Markovina
Allen Giró Bariloche Donini
Cipolletti Scholz Bariloche Becker
El Bolsón Markovina Cipolletti Ferreyra
Bariloche Donini Allen Sede
Bariloche Becker
Cipolletti Ferreyra
... debemos incorporar el concepto de  
Allen Sede
Dominio Activo !!!
Teoría y Diseño de BD 6
MSE Adriana E. Martín                                                                              
2.b  Operaciones Algebra Relacional
… primero recordemos que
Un Esquema de Relación R es un conjunto finito de nombres de atributos 
{ A1, A2, .. , An } 
En correspondencia con cada nombre de atributo Ai existe un conjunto Di , 
 1 ≤ i ≥ n, llamado el Dominio de Ai , representado por dom(Ai ).

Los DOMINIOS son 
conjuntos arbitrarios, 
no vacíos, finitos o 
infinitos. 

Sea D = D1 ∪  D2  ∪  ..  ∪  Dn , una relación r sobre el esquema de 
relación R es un conjunto finito de mapeos { t1, t2, .. , tp } de R a D 
con la restricción de que cada mapeo t ∈ r  y 
t( Ai ) debe estar en Di , 1 ≤ i ≥ n.
Los Mapeos se denominan TUPLAS
Teoría y Diseño de BD 7
MSE Adriana E. Martín                                                                        
2.b  Operaciones Algebra Relacional

Sea dom( R ) el conjunto de todas las tuplas sobre 
los atributos de R y sus respectivos dominios
definimos el Complemento de una relación r( R ) como
comp( r )  =  dom( R ) – r 

... ahora bien, si consideramos la posibilidad de que
algún atributo A en R tenga un dominio infinito, el
comp( r ) también será infinito y no será una relación.

... para estos casos, necesitamos definir un versión modificada de la 
operación de complemento que siempre 
devuelva cómo resultado una relación. 

Teoría y Diseño de BD 8
MSE Adriana E. Martín                                                                          
2.b  Operaciones Algebra Relacional
Si r es una relación sobre el Esquema de Relación 
R = ( A1, A2, .. , An ) y Di = dom( Ai ), 1 ≤ i ≥ n
el Dominio Activo Ai  con respecto  a r es el conjunto
adom( Ai , r )  =  { d ∈ Di | ∃ t ∈ r con t( Ai ) = d }

Observar que el 
Dominio Activo de B 
con respecto a r  dom( R )
no contiene a b3
A B
a1 b1 adom( R ) 
r a1 b2 A B
A B a1 b3 a1 b1
a1 b1 a2 b1 a1 b2
a1 b2 a2 b2 a2 b1
a2 b1 a2 b3 a2 b2

Teoría y Diseño de BD 9
MSE Adriana E. Martín                                                                         
2.b  Operaciones Algebra Relacional
Sea adom( R, r ) el conjunto de todas las tuplas sobre los atributos 
de R y sus Dominios Activos con respecto a r,
el Complemento Activo de r es
acomp( r )  =  adom( R, r ) – r

r adom( R ) 
A B A B
acomp( r )
a1 b1 a1 b1
A B
a1 b2 a1 b2
a2 b2
a2 b1 a2 b1
a2 b2

Observar que acomp( r ) es siempre una relación

Teoría y Diseño de BD 10
MSE Adriana E. Martín                                                                      
2.b  Operaciones Algebra Relacional

p.e. Suponer una compañía que tiene un programa de capacitación que 
consiste en tener a un grupo de empleados trabajando dos semanas 
en los departamentos de la compañía. 

... la información sobre quién en el programa ha completado la 
capacitación en qué departamento, se puede mantener en la 
relación 
completó( NroEmpleado, EntrenadoEnDpto ).

... la relación acomp( completó ), provee quién no ha completado la 
capacitación en qué departamento, sobre cada empleado en el 
programa de capacitación y cada departamento 
que es mencionado en completó. 

Teoría y Diseño de BD 11
MSE Adriana E. Martín                                                                         
2.b  Operaciones Algebra Relacional
El PRODUCTO CARTESIANO, permite combinar información de 
dos relaciones cualesquiera. 

Sean r1 y r2 dos relaciones cualesquiera, 
el Producto Cartesiano se denota como:
r1 × r2
…dadas las r1( R1 ) y r2( R2 ),  r1 × r2  es una relación r 
cuyo esquema de relación  R  es la concatenación de R1 y R2. 

 es decir, la relación r contiene todas las tuplas t que surgen de 
concatenar cada una de las tuplas t1 en r1  con cada una de las 
tuplas t2 en r2  tal que en cada tupla t se cumple que:
t[ R1 ] = t1[ R1 ]  y  t[ R2 ] = t2[ R2 ].
Teoría y Diseño de BD 12
MSE Adriana E. Martín                                                                          
2.b  Operaciones  Algebra Relacional
p.e. dadas las relaciones cuenta y tieneCta:
tieneCta
cuenta
DniCli NroCta
NroCta SaldoCta
14234848 C­2000/2
C­2000/2 1000
n1 tuplas 9024931 C­3000/1 n2 tuplas
C­3000/1 5000
14234848 C­3000/1

el Producto Cartesiano cuenta × tieneCta tiene n1 ∗ n2 tuplas 
cuenta.NroCta cuenta.SaldoCta tieneCta.DniCli tieneCta.NroCta
C­2000/2 1000 14234848 C­2000/2
C­2000/2 1000 9024931 C­3000/1
C­2000/2 1000 14234848 C­3000/1
C­3000/1 5000 14234848 C­2000/2
C­3000/1 5000 9024931 C­3000/1
C­3000/1 5000 14234848 C­3000/1
Teoría y Diseño de BD 13
MSE Adriana E. Martín                                                                           
2.b  Operaciones  Algebra Relacional
El OPERADOR de SELECCIÓN es un operador unario, es decir 
opera sobre una relación.
…cuando se aplica a una relación r genera otra relación compuesta por 
un subconjunto de tuplas de r que satisfacen cierto predicado, es 
decir tuplas con cierto valor en un atributo determinado.

Sea r una relación sobre el Esquema de Relación R, 
A un Atributo en R  y,  
a un elemento del dom( A ), 
la “ Selección A igual a a en r ” se define como:

σ A = a ( r ) = { t ∈ r |  t ( A ) = a }
σ  = letra griega sigma minúscula
Teoría y Diseño de BD 14
MSE Adriana E. Martín                                                                               
2.b  Operaciones Algebra Relacional
p.e. Dada la relación cuenta, obtener las cuentas de la sucursal Cipolletti:
cuenta
SucursalCta NroCta SaldoCta
Cipolletti C­2000/2 1000
Allen C­5342/4 2074
Roca C­1000/1 900
Roca C­3000/1 5000
Cipolletti C­3024/5 525

σ SucursalCta = “Cipolletti” ( cuenta )

cuentas de Cipolletti
SucursalCta NroCta SaldoCta
Cipolletti C­2000/2 1000
Cipolletti C­3024/5 525

Teoría y Diseño de BD 15
MSE Adriana E. Martín                                                                        
2.b  Operaciones  Algebra Relacional
El OPERADOR de PROYECCIÓN es un operador unario. 
…cuando se aplica a una relación r genera otra relación compuesta por 
un subconjunto de Atributos ­ columnas ­  de r.

Sea r una relación sobre el Esquema de Relación R  y, 
X un subconjunto de Atributos en R,  
la “ Proyección de r en X ” se define como:

π X ( r ) = { t( X ) |  t ∈ r }

…en  π X ( r ) se eliminan de la relación r las columnas R ­ X  y 
luego se borran las tuplas repetidas. 
π  = letra griega pi
Teoría y Diseño de BD 16
MSE Adriana E. Martín                                                                            
2.b  Operaciones Algebra Relacional
p.e. Dada la relación cuenta, obtener las cuentas y sus respectivos saldos.
cuenta
SucursalCta NroCta SaldoCta
Cipolletti C­2000/2 1000
Allen C­5342/4 2074
Roca C­1000/1 900
Roca C­3000/1 5000
Cipolletti C­3024/5 525

π NroCta, SaldoCta ( cuenta )
NroCta SaldoCta
C­2000/2 1000
C­5342/4 2074
C­1000/1 900
C­3000/1 5000

Teoría y Diseño de BD C­3024/5 525 17


     MSE Adriana E. Martín                                                                                       
2.b  Operaciones Algebra Relacional
La OPERACIÓN RENOMBRAMIENTO se puede aplicar a:

 Expresiones
… a diferencia de las relaciones de una BD, las expresiones del álgebra 
relacional no tienen un nombre que se pueda utilizar para referirse 
a ellas. 
Sea E una expresión del Algebra Relacional, 
la expresión:

ρ X ( E )
devuelve el resultado de la expresión E  bajo el nombre X.

ρ = letra griega ro minúscula

Teoría y Diseño de BD 18
MSE Adriana E. Martín                                                                              
2.b  Operaciones Algebra Relacional

 Relaciones
… ya que una relación r se considera por sí misma una expresión 
( trivial ) del álgebra relacional, se puede aplicar la operación 
renombramiento a una relación r  para obtener la misma relación 
con un nombre nuevo. 
Sea r una relación, 
la expresión:

ρ x ( r )

devuelve la relación r  bajo el nombre x.

Teoría y Diseño de BD 19
MSE Adriana E. Martín                                                                         
2.b  Operaciones Algebra Relacional
 Atributos 

Sea E una expresión con aridad n, 
la expresión:
ρ X( A1, A2, .. , An ) ( E )

devuelve el resultado de la expresión E bajo el nombre X y con los 
atributos renombrados a A1, A2, .. An. 

 …esta operación no es estrictamente necesaria, dado que es posible 
utilizar una notación posicional para los Atributos: $1 es el primer 
atributo, $2 es el segundo atributo, .. , $n es el enésimo atributo.

…sin embargo, la notación posicional es no declarativa y por lo tanto no 
resulta conveniente para las personas, ya que es más fácil de recordar 
un nombre de atributo que un número de posición. 
Teoría y Diseño de BD 20
MSE Adriana E. Martín                                                                              
2.c  Definición formal del Álgebra Relacional Algebra Relacional
 Una expresión básica en el Álgebra Relacional consta de:   
­ Una relación en la BD, o bien
­ Una relación constante.
Una expresión general en el Álgebra Relacional se construye a partir 
de subexpresiones.
Sean E1 y E2 expresiones del Álgebra Relacional, las siguientes son 
expresiones del Álgebra Relacional:  
 E1 ∪ E2
 E1 – E2 ( también denotado por E1\ E2 )
 E1 × E2
 σ P( E1 ) ( donde P es un predicado con atributos de E1 )
 π S( E1 ) ( donde S es un subconjunto de atributos de E1 )
 ρ X( E1 ) ( donde X es el nuevo nombre de la expresión E1 )
Teoría y Diseño de BD 21
MSE Adriana E. Martín                                                                       
2.c  Definición formal del Álgebra Relacional Algebra Relacional
…repasando gráficamente estas expresiones del Álgebra Relacional:

Unión Diferencia Producto Cartesiano

a x a x
b y a y
c b x
b y
c x
c y

E1 ∪ E2 E1 – E2 E1 × E2

Teoría y Diseño de BD 22
MSE Adriana E. Martín                                                           
2.c  Definición formal del Álgebra Relacional Algebra Relacional
Repasando estas expresiones del Álgebra Relacional:

Selección Proyección
Renombrar
E1 X

ρ X( E1 )

σ P( E1 ) π S( E1 )
Teoría y Diseño de BD 23
MSE Adriana E. Martín                                         
2.d  Otras Operaciones Algebra Relacional
 En principio, las OPERACIONES FUNDAMENTALES citadas en la 
definición formal del Álgebra Relacional son suficientes para 
expresar cualquier consulta del Álgebra Relacional. 
… sin embargo, limitarse al uso de estas Operaciones 
Fundamentales puede llevar a que algunas consultas triviales 
resulten de expresiones complejas.   
…por ello se definen otras Operaciones que si bien no agregan potencia 
al Álgebra Relacional simplifican algunas consultas triviales: 
 E1 ∩ E2
 E1 ÷ E2   ( División )
 E1        E2   ( Join Natural )
 E1    θ  E2  ( θ ­ Join ) 
 E1 ← E2  ( Asignación ) 
 E1        E2   ( SemiJoin )
Teoría y Diseño de BD 24
MSE Adriana E. Martín                                                                 
2.d  Otras Operaciones  Algebra Relacional

El OPERADOR DIVISIÓN original de Codd  ­ 1972 ­  
resulta adecuado para las consultas que incluyen la expresión 
“para todos”.

Sean r y s relaciones sobre los Esquemas de Relación R y S 
respectivamente,
 ( X, Y )  e  ( Y ) los Atributos de los Esquemas R y S
respectivamente,
 y  S ⊆ R, es decir que todos los atributos del 
Esquema S están también en el Esquema R,
 
la “ División de r por s ” se denota por:
 r ÷ s
Teoría y Diseño de BD 25
MSE Adriana E. Martín                                                                     
2.d  Otras Operaciones  Algebra Relacional
…ahora bien
Una tupla t pertenece a la relación r ÷  s si cumple con las 
siguientes dos condiciones:
1.  t está en  π R – S ( r )
2.  para cada tupla ts de s hay una tupla tr de r que cumple las 
           siguientes dos condiciones:
a)  tr[ S ]  =  ts[ S ]
b)  tr [ R – S ]  =  t  

… es decir la expresión r ÷  s  es una relación con Atributo ( X ) 
y consiste de todas las tuplas t( X ) tal que una tupla tr( X, Y ) 
está en r para todas las tuplas ts( Y ) que están en s.
Teoría y Diseño de BD 26
MSE Adriana E. Martín                                                             
2.d  Otras Operaciones  Algebra Relacional
p.e. Dadas las relaciones r sobre el Esquema R = ( X, Y ) donde 
X es el nombre del cliente e Y es la sucursal dónde el cliente 
tiene abierta una cuenta  y  s sobre el Esquema S = ( Y ) 
donde Y es una sucursal:   Y X Y
Cipolletti Zahn Cipolletti
Roca Martín Roca
Giró Allen
 …se desea hallar todos los clientes en r que  Scholz Cipolletti
tienen abierta una cuenta en todas las  Vicario Cipolletti
sucursales en s.   Markovina El Bolsón
Becker Bariloche
…el resultado de la expresión r ÷ s   Scholz Roca

es la relación: 
X
Scholz

Teoría y Diseño de BD 27
MSE Adriana E. Martín                                                   
2.d  Otras Operaciones  Algebra Relacional
El OPERADOR JOIN NATURAL es un operador binario para combinar 
relaciones.
una definición informal:
Sean r y s relaciones sobre los Esquemas de Relación R y S 
respectivamente,
  el “ Join Natural de r y s ” denotado por

 r     s
es una relación sobre el esquema R ∪ S, compuesta por un conjunto de 
tuplas t, tales que existen tuplas tr en r  y  ts en s  con  
tr =  t( R )  y  ts =  t( S )

…es decir que cada tupla t  en r      s es una combinación de tuplas en r y 
en s que coinciden en los Atributos de R ∩ S . 
…si R y S no tienen atributos en común, entonces el 
Join Natural equivale al Producto Cartesiano: r      s  =  r ×  s.  
Teoría y Diseño de BD 28
MSE Adriana E. Martín                               
2.d  Otras Operaciones 

p.e. Dadas las relaciones tiene sobre el Esquema de Relación Tiene 
y préstamo sobre el Esquema de Relación Préstamo:  

tiene
préstamo
DniCli NroPres
MonSuc NroPres MontoPres
9024931 P­17
Roca P­17 35000
9024931 P­23
Cipolletti P­23 15000
13537470 P­15
Cipolletti P­15 20000
4022253 P­17

 …se desea hallar los dni de los clientes que tienen concedido un 
préstamo en el banco, el número y monto de dicho préstamo.
…esta consulta se puede expresar utilizando el Join Natural:

π DniCli, NroPres, MontoPres ( tiene      préstamo )
Teoría y Diseño de BD 29
MSE Adriana E. Martín                                                                         
2.d  Otras Operaciones 

… entonces la relación resultante de la expresión

π DniCli, NroPres, MontoPres ( tiene      préstamo ) es:

DniCli NroPres MontoPres


Observar el caso 
9024931 P­17 35000 en el cual se exprese la 
4022253 P­17 35000 consulta usando 
Producto Cartesiano
9024931 P­23 15000
13537470 P­15 20000

Teoría y Diseño de BD 30
                                                                     MSE Adriana E. Martín
2.d  Otras Operaciones 

entonces, una definición formal:
Sean r y s relaciones sobre los Esquemas de Relación R y S respectivamente,
  el “ Join Natural de r y s ” denotado por

 r     s
es una relación sobre el Esquema de Relación R ∪ S, 
definida formalmente de la siguiente manera:

r    s  =  π R ∪ S ( σ r.A1 = s.A1 ∧ r.A2 = s.A2  ∧ .. ∧  r.An = s.An(r × s) )


donde R ∩ S = { A1, A2, .. , An }

si R ∩ S = Ø  entonces   r      s  =  r × s
si R ∩ S ≠ Ø  entonces  cada tupla en r      s es una combinación de 
tuplas en r y en s que coinciden en los Atributos R ∩ S. 

Teoría y Diseño de BD 31
MSE Adriana E. Martín                                                             
2.d  Otras Operaciones 

El OPERADOR θ  ­ JOIN es un operador binario que permite 
combinar relaciones con ciertas restricciones.

El operador θ  puede ser cualquier operador relacional  
del conjunto { < , > , ≤ , ≥ , = , ≠ }

Sean r y s relaciones sobre los Esquemas de Relación R y S 
respectivamente,  y sea θ un predicado de los Atributos del 
Esquema de Relación R ∪ S 
la operación θ ­ Join se define como:

 r     θ  s  =  σ θ  ( r × s ) 

θ = letra griega zeta
Teoría y Diseño de BD 32
MSE Adriana E. Martín                                     
2.d  Otras Operaciones 
p.e. dadas las siguientes relaciones cambridgeFirst  y 
cambridgeAdvance:
cambridgeFirst cambridgeAdvance
MuestreoFirst Notas MuestreoAdvance Notas
F­08 59 A­23 61
F­41 85 A­11 87
F­17 78 A­02 68
F­33 71 A­35 70

…se desea hallar el Join mayor­que de la relación cambridgeFirst sobre 
notas con la relación cambridgeAdvance sobre notas, mostrando los 
muestreos respectivos. 
…dado que θ   es “ >  ” esta consulta se puede expresar utilizando el θ ­ Join:

cambridgeFirst      cambridgeFirst.Notas > cambridgeAdvance.Notas cambridgeAdvance

θ
Teoría y Diseño de BD 33
MSE Adriana E. Martín                                                                             
2.d  Otras Operaciones 

… entonces la relación resultante de la expresión

cambridgeFirst      cambridgeFirst.Notas > cambridgeAdvance.Notas cambridgeAdvance

MuestreoFirst Notas MuestreoAdvance Notas


F­41 85 A­23 61
F­41 85 A­02 68
F­41 85 A­35 70
F­17 78 A­23 61
F­17 78 A­02   68
F­17 78 A­35 70
F­33 71 A­23 61
F­33 71 A­02 68
F­33 71 A­35 70

Teoría y Diseño de BD 34
MSE Adriana E. Martín                                                            
2.d  Otras Operaciones  Algebra Relacional
El OPERADOR de ASIGNACIÓN  representado por el símbolo ← , 
permite asignar el resultado de una expresión relacional a 
una relación temporal. 

El formato de la Operación de Asignación es:
< Relación temporal >  ←  < Expresión Relacional >
p.e. Dada la expresión:  
π NomCli ( σ presCli.NroPres = préstamo.NroPres (presCli × préstamo) )
puede re­escribirse como:
temp1 ← presCli × préstamo 
temp2 ← σ presCli.NroPres = préstamo.NroPres ( temp1 )
resultado ← π NomCli ( temp2 )
Teoría y Diseño de BD 35
MSE Adriana E. Martín                                                                          
2.d  Otras Operaciones  Algebra Relacional

El OPERADOR SEMIJOIN es un operador binario para combinar 
relaciones.
una definición informal:
Sean r y s relaciones sobre los Esquemas de Relación R y S 
respectivamente,
  el “ SemiJoin de r y s ” denotado por

 r     s
es una relación compuesta por un conjunto de tuplas t, que resultan de 
la proyección sobre los atributos de r del join natural de r y s;
es decir   r      s  =  π R( r      s )

Teoría y Diseño de BD 36
MSE Adriana E. Martín                                         
2.d  Otras Operaciones 

p.e. Dadas las relaciones tiene sobre el Esquema de Relación Tiene 
y cliente sobre el Esquema de Relación Cliente:  

cliente tiene
DniCli NomCli DirCli CiudadCli DniCli NroPres
9024931 xxx xxx xxx 9024931 P­17
14234848 : : : 9024931 P­23
13537470
13537470 P­15
4022253 : : :
11222015 4022253 P­17

 …se desea hallar el dni  y nombre de los clientes que tienen 
concedido un préstamo en el banco.
…esta consulta se puede expresar utilizando el SemiJoin:

π DniCli, NomCli ( cliente      préstamo )
Teoría y Diseño de BD 37
MSE Adriana E. Martín                            
2.d  Otras Operaciones 

… entonces la relación resultante de la expresión
π DniCli, NomCli, DirCli, CiudadCli ( cliente      préstamo ) es:

DniCli NomCli
9024931 xxx
Observar el caso 
13537470 :
en el cual se exprese la 
4022253
consulta usando 
Join Natural

DniCli NomCli DirCli CiudadCli NroPres


9024931 xxx xxx xxx P­17
9024931 : : : P­23
13537470 P­15
4022253 P­17
Teoría y Diseño de BD 38
MSE Adriana E. Martín                                                                
2.d  Otras Operaciones  Algebra Relacional
…repasando gráficamente estas otras operaciones:

Intersección División Asignación

x1 y1 y1 x1 ←
x1 y2 y2
x2 y1
x3 y3

E1 ∩ E2 E1 ÷ E2 E1 ← E2

Teoría y Diseño de BD 39
MSE Adriana E. Martín                                                  
2.d  Otras Operaciones  Algebra Relacional
…repasando gráficamente estas otras operaciones:

Join → R ∩ S ≠ ∅ Join → R ∩ S = ∅

a1 b1 b1 c1 a1 b1 c1 d1
a2 b1 b2 c2 a2 b2 c2 d2
a3 b2 b3 c3
a1 b1 c1 d1
a1 b1 c1 a1 b1 c2 d2
E1      E2 a2 b1 c1 a2 b2 c1 d1
a3 b2 c2 a2 b2 c2 d2
E1      E2  =  E1 × E2 
Teoría y Diseño de BD 40
MSE Adriana E. Martín                                                                  
2.e  Algunas Propiedades  Algebra Relacional
…el Join tiene varias Propiedades, mencionaremos algunas de ellas
El Join se puede usar para simular la Selección 
sobre una relación r( R ) ­ Propiedad 1, 2 y 3 ­
Propiedad 1.  Sea s( A ) una relación con k tuplas t1, t2, .. , tk donde 
                        ti( A ) = ai   y   ai ∈ dom( A ),  1 ≤  i  ≥ k , entonces:

r     s  =  σ A=a1 ( r )  ∪  σ A=a2 ( r )  ∪  ..  ∪  σ A=ak ( r )

Propiedad 2.  Sean A y B dos atributos y s( AB ) la relación con una única 
                        tupla t tal que t( A ) = a  y  t( B ) = b, entonces:
r     s  =  σ A=a ∧ B=b ( r ) 

Propiedad 3.  Dadas las relaciones q , r  y  s: 
( q     r )     s  =  q     ( r     s )  
Teoría y Diseño de BD 41
MSE Adriana E. Martín                                                                          
2.e  Algunas Propiedades  Algebra Relacional
…otras Propiedades Importantes:
Considerando las relaciones r( R )  y  s( S ) 
Propiedad 1.  Dado  A  ⊂  X  ⊆  R : 
π X ( σ A θ a( r )     s )  =   π X ( σ A θ a( r     s ) )

Propiedad 2.  Dado A ∈ R :
σ A θ a ( σ B θ b ( r ) )  =  σ B θ b ( σ A θ a ( r ) )  =  σ A θ a  ∧  B θ  b ( r ) 

Propiedad 3.  Dado { A, B }  ⊆  R  ∩  S : 

σ A θ a  ∧  B θ b ( r  ∩  s )  =  σ A θ a ( r )  ∩  σ B θ b ( s ) 

Teoría y Diseño de BD 42
MSE Adriana E. Martín                       
2.f  Join Externo y Unión Externa  Algebra Relacional
…el JOIN EXTERNO es una extensión de la operación de JOIN 
NATURAL para conservar en el resultado todas las tuplas que 
están en ambas relaciones, tengan o no atributos coincidentes.

Dadas las relaciones empleado y trabajaTiempoCompleto:
empleado trabajaTiempoCompleto
LegajoEmp Calle Ciudad LegajoEmp NomSuc Sueldo
C001 xxx xxx C001 xxx $$$
C002 : : C002 : :
C003 A001
A001 : : A002 : :
A002 R001 : :

...si deseamos obtener los empleados que trabajan tiempo 
completo, se puede usar la operación de Join Natural:
empleado      trabajaTiempoCompleto
Teoría y Diseño de BD 43
MSE Adriana E. Martín                                                                     
2.f  Join Externo y Unión Externa  Algebra Relacional
…el resultado de esta expresión es la relación:
Observar 
que las tuplas que  LegajoEmp Calle Ciudad NomSuc Sueldo
describen a los  C001 xxx xxx xxx $$$
empleados cuyos  C002 : : : :
legajos son C003 y 
A001
R001 no están 
A002 : : : :
presentes en la 
relación.
...para que estás tuplas se incorporen a la relación se puede 
usar el JOIN EXTERNO el cual ofrece tres variantes: 

                  E1        E2      JOIN EXTERNO IZQUIERDO

                 E1        E2      JOIN EXTERNO DERECHO
 E1          E2     JOIN EXTERNO COMPLETO

Teoría y Diseño de BD 44
MSE Adriana E. Martín                                  
2.f  Join Externo y Unión Externa  Algebra Relacional

...si se utiliza la operación de Join Externo Izquierdo:

empleado        trabajaTiempoCompleto

…el resultado de esta expresión es la relación:

LegajoEmp Calle Ciudad NomSuc Sueldo


C001 xxx xxx xxx $$$
C002 : : : :
A001
A002 : : : :
Observar  C003 : : null null
que la tupla que 
describe al empleado 
cuyo legajo es C003 
está presente en la 
relación.
Teoría y Diseño de BD 45
MSE Adriana E. Martín                                                                          
2.f  Join Externo y Unión Externa  Algebra Relacional

...si se utiliza la operación de Join Externo Derecho:

empleado        trabajaTiempoCompleto

…el resultado de esta expresión es la relación:

LegajoEmp Calle Ciudad NomSuc Sueldo


C001 xxx xxx xxx $$$
C002 : : : :
A001
A002 : : : :
Observar  R001 null null : :
que la tupla que 
describe al empleado 
cuyo legajo es R001 
está presente en la 
relación.
Teoría y Diseño de BD 46
MSE Adriana E. Martín                                  
2.f  Join Externo y Unión Externa  Algebra Relacional

...si se utiliza la operación de Join Externo Completo:

empleado           trabajaTiempoCompleto

…el resultado de esta expresión es la relación:

LegajoEmp Calle Ciudad NomSuc Sueldo


C001 xxx xxx xxx $$$
C002 : : : :
A001
Observar 
A002 : : : :
que las tuplas que 
C003 : : null null
describe a los 
R001 null null : :
empleados cuyos 
legajos son C003 y 
R001 están presentes 
en la relación.
Teoría y Diseño de BD 47
MSE Adriana E. Martín           
2.f  Join Externo y Unión Externa  Algebra Relacional
…la UNIÓN EXTERNA es una extensión de la operación de UNIÓN 
para efectuar la unión de tuplas de dos relaciones que no son 
compatibles con la unión, es decir que son parcialmente 
compatibles, lo cual significa que sólo algunos de sus atributos son 
compatibles con la unión.
Dadas las relaciones empleadoAdminitrativo y empleadoOperativo:
empleadoAdministrativo empleadoOperativo
LegajoEmp Nombre Función LegajoEmp Nombre Rango
A001 xxx xxx O001 xxx xxx
A002 : : O002 : :
A003 : : O003 : :
A004 : : O004 : :
R001 : : R001 : :

...si se utiliza la operación de Unión Externa:

empleadoAdministrativo   ∪    empleadoOperativo
Teoría y Diseño de BD 48
MSE Adriana E. Martín                                                    
2.f  Join Externo y Unión Externa  Algebra Relacional
…el resultado de esta expresión es la relación:
empleadoAdministrativo   ∪    empleadoOperativo

LegajoEmp Nombre Función Rango


A001 xxx xxx null
A002 : : null
A003 : : null
A004 xxx xxx null
R001 xxx xxx xxx
O001 xxx null xxx
O002 : null xxx
Observar 
O003 : null xxx
que la tupla que 
describe al empleado  O004 : null xxx

cuyo legajo es R001 
no tiene valores nulos 
porque dicha tupla 
existe en las dos 
relaciones. 
Teoría y Diseño de BD 49
MSE Adriana E. Martín            
2.g  Funciones Agregadas  Algebra Relacional

…estas funciones toman una colección de valores de la BD y 
devuelven como resultado un único valor.

...las más comunes son: sum, avg, min, max y count.

...todas estas funciones amplían el poder expresivo del álgebra 
relacional y se pueden aplicar a una colección de tuplas.

Dada la relación cuenta:
cuenta
NroCta SaldoCta NomSuc FechaApertura
xxx $$$ xxx ddmmaa
: : : :

: : : :

Teoría y Diseño de BD 50
MSE Adriana E. Martín          
2.g  Funciones Agregadas  Algebra Relacional

( a ) La función sum toma un conjunto de valores de la BD 
y devuelve la suma de todos los valores del conjunto. 
p.e. La consulta  sumSaldo ( cuenta ) 
devuelve como resultado una relación con un único atributo que contiene una 
sola fila con un valor correspondiente a la suma de todos los saldos de las 
cuentas del banco. 

( b ) La función avg toma un conjunto de valores de la BD 
y devuelve la media de todos los valores del conjunto. 
p.e. La consulta  avgSaldo ( cuenta ) 
devuelve como resultado una relación con un único atributo que contiene una 
sola fila con un valor correspondiente a la media de todos los saldos de las 
cuentas del banco. 
Teoría y Diseño de BD 51
MSE Adriana E. Martín                  
2.g  Funciones Agregadas  Algebra Relacional

( c ) La función min toma un conjunto de valores de la BD 
y devuelve el mínimo de todos los valores del conjunto. 
p.e. La consulta  minSaldo ( cuenta ) 
devuelve como resultado una relación con un único atributo que contiene una 
sola fila con un valor correspondiente al mínimo de todos los saldos de las 
cuentas del banco. 

( d ) La función max toma un conjunto de valores de la BD 
y devuelve el máximo de todos los valores del conjunto. 
p.e. La consulta  maxSaldo ( cuenta ) 
devuelve como resultado una relación con un único atributo que contiene una 
sola fila con un valor correspondiente al máximo de todos los saldos de las 
cuentas del banco. 
Teoría y Diseño de BD 52
MSE Adriana E. Martín           
2.g  Funciones Agregadas  Algebra Relacional

( e ) La función count toma un conjunto de valores de la BD 
y devuelve el número de elementos ( cantidad de valores ) que 
aparecen en el conjunto. 
p.e. La consulta  countNroCta ( cuenta ) 
devuelve como resultado una relación con un único atributo que contiene una 
sola fila con un valor correspondiente al número de cuentas ( cantidad de 
cuentas ) del banco.

 ...cuando se requiere que los valores repetidos se consideren sólo 
una vez antes de aplicar la función agregada, se le adjunta al 
nombre de la misma la cadena “­distintic”.
p.e. La consulta  count­distinticNomSuc ( cuenta ) 
devuelve como resultado una relación con un único atributo que contiene una 
sola fila con un valor correspondiente al número de sucursales ( cantidad de 
sucursales ) que aparecen en la relación cuenta. 
Teoría y Diseño de BD 53
MSE Adriana E. Martín      
2.g  Funciones Agregadas  Algebra Relacional

...cuando se requiere aplicar una función agregada no sólo a un 
conjunto de tuplas sino a varios grupos siendo cada grupo un 
conjunto de tuplas, se utiliza una operación denominada 
agrupación. 
 ( f ) El operador de agrupación ℑ  permite definir una operación 
función agregada **. 

p.e. La consulta  NomSuc ℑ  sumSaldo ( cuenta ) 
devuelve como resultado una relación con dos atributo  que contiene tantas filas 
como sucursales existan en la relación cuenta y cada fila se compone del 
nombre de la sucursal y de la suma de todos los saldos de las cuentas de esa 
sucursal. 

**
ℑ   = pronunciado F gótica 
­ no existe una única notación para especificar funciones agregadas ­

Teoría y Diseño de BD 54
MSE Adriana E. Martín                                                        
2.h  Modificación de una BD  Algebra Relacional

…las modificaciones de las BDs se expresan utilizando la 
operación de asignación.

( a ) Una Eliminación consiste en eliminar tuplas de una relación; la 
notación es:
r ← r − E
donde r es una relación y E es una consulta del Álgebra Relacional

p.e. Si se desea borrar todas la cuentas del cliente Scholz:
cuenta ← cuenta − σ NomCli = “Scholz” ( cuenta )

Teoría y Diseño de BD 55
MSE Adriana E. Martín                        
2.h  Modificación de una BD  Algebra Relacional

( b ) Una Inserción consiste en agregar tuplas a una relación; la 
notación es:
r ← r ∪ E
donde r es una relación y E es una consulta del Álgebra Relacional

p.e. Si se desea agregar al cliente Martinez, cuyo DNI es 9234751 y 
que vive en Rivadavia 160 de la ciudad de Cipolletti:
cliente ← cliente ∪ { ( 9234751, “Martinez”, “Rivadavia 160”, 
“Cipolletti” ) }

Teoría y Diseño de BD 56
MSE Adriana E. Martín                                                 
2.h  Modificación de una BD  Algebra Relacional

( c ) Una Modificación consiste en modificar tuplas a una relación; 
la notación es:
δ A ←E ( r )
donde r es una relación y E es una consulta del Álgebra Relacional

…también se puede utilizar el operador de proyección generalizada:
cuenta ←π A1, A2, .. , An ( r )

p.e. Si se desea incrementar el saldo de las cuentas en un 5%:
δ SaldoCta ← SaldoCta * 1.05 ( cuenta )
cuenta ← π NroCta, SaldoCta ← SaldoCta * 1.05, NomSuc, FechaApertura ( cuenta )   
δ = letra griega delta
Teoría y Diseño de BD 57
MSE Adriana E. Martín                          
2.i  Vistas  Algebra Relacional
…en todos los ejemplos de consultas que usamos hasta ahora 
hemos operado en el Nivel del Modelo Lógico. 

…es decir operamos sobre un conjunto de relaciones reales guardadas en 
la BD.

... pero 
 No es deseable que todos los usuarios de la BD puedan ver la totalidad 
del Modelo Lógico.
p.e. Un empleado del área de 
personal necesita ver una 
 Normalmente en todo dominio es necesario: relación con los datos personales 
de todos empleados, pero no sus 
sueldos.
 Ocultar datos a ciertos usuarios
 Crear un conjunto personalizado de relaciones que se adapte a cada 
usuario o grupo de usuarios concreto p.e. Un empleado del área de 
publicidad necesita ver una 
relación con los clientes que 
tienen tarjeta/s de crédito y 
Teoría y Diseño de BD cuenta/s en el banco.58
MSE Adriana E. Martín                                                           
2.i  Vistas  Algebra Relacional
… entonces
Las relaciones que no forman parte del Modelo Lógico pero se 
hacen visibles a los usuarios como relaciones virtuales 
se denominan 
VISTAS 
y constituyen el 
Nivel de Modelo de Vistas o Externo
… ahora bien 
¿Cómo se crea una VISTA?
Para definir una VISTA se utiliza la instrucción: 
create view  nombre­de­vista  as  < expresión­de­consulta >  
Cualquier expresión 
legal de consulta del 
Algebra Relacional
Teoría y Diseño de BD 59
MSE Adriana E. Martín                                                 
2.i  Vistas  Algebra Relacional

p.e. Definir una vista para los clientes que tienen tarjeta/s en el banco 
mostrando el nombre del cliente y el nombre y el límite de compra 
de la tarjeta : 
create view  todos­los­clientes  as  
π NomCli, NomTarjeta, LímiteCompra( tieneTarjeta      tarjeta ) 

... y así, una vez que se ha definido la vista, se puede utilizar el 
nombre­de­vista para hacer referencia a la 
relación virtual que genera la vista.

p.e. Obtener los nombres de los clientes que tienen tarjeta “Visa” 
con límite de compra superior a $1000:
 π NomCli( σ NomTarjeta = “Visa” ∧  LímiteCompra > 1000( todos­los­clientes ) )
Teoría y Diseño de BD 60
MSE Adriana E. Martín          
2.i  Vistas  Algebra Relacional
¿Cuál es la diferencia entre la operación de asignación y la vista?
 todos­los­clientes ← π NomCli, NomTarjeta, LímiteCompra( tarjetaCli      tarjeta ) 

... la operación de asignación evaluará la expresión una vez y la relación resultante se 
compone de un conjunto de tuplas que no cambiarán cuando se actualicen las 
relaciones involucradas.

...en cambio, el conjunto de tuplas que forman la vista se actualizarán cada vez que se 
actualicen las relaciones involucradas en la expresión.

... normalmente los SGBD guardan las definiciones de vistas en vez de las relaciones 
de vistas (resultados de las evaluaciones de las expresiones).

... algunos SGBD guardan las relaciones de vistas, pero se aseguran que si las 
relaciones reales utilizadas en las definiciones cambian, 
las vistas se mantengan actualizadas.
Ventajas  Desventajas
•  Uso frecuente  •  Costo de Almacenamiento 
•  Tiempo de Respuesta
Vistas Materializadas •  Sobrecarga por Actualización
Teoría y Diseño de BD 61
MSE Adriana E. Martín 
2.i  Vistas  Algebra Relacional
¡Cuidado con las actualizaciones ( inserciones, eliminaciones y 
modificaciones ) usando Vistas!
p.e. Suponer la vista 
create view préstamo­sucursal  as  π NomSuc, NroPres( préstamo ) 
... como se permite que un nombre­de­vista aparezca en cualquier parte en la 
que está permitido un nombre­de­relación entonces se puede escribir la 
expresión:

préstamo­sucursal  préstamo­sucursal ∪ { ( “Cipolletti”, P­43 ) }
... esta inserción debe representarse en la relación préstamo, pero se necesita un 
valor para el atributo MontoPres.

... dos enfoques posibles para tratar con esta situación:
 Rechazar la inserción y emitir un mensaje de error
 Insertar una tupla ( “Cipolletti”, P­43 , null ) 
Teoría y Diseño de BD 62
MSE Adriana E. Martín  
2.i  Vistas  Algebra Relacional
p.e. Suponer la vista 
create view información­préstamo as  
π DniCli, MontoPres( tiene       préstamo ) 

... y luego se escribe la expresión:

información­préstamo  préstamo­sucursal ∪ { ( 13470988, 7000 ) }

... esta inserción produce:
 ( 13470988, null ) en tiene  y
 ( null , null , 7000 ) en préstamo
... sin embargo esta actualización no tiene efecto en la relación de vista, ya que 
las comparaciones que implican valores nulos se definen como falso y entonces 
el join natural entre tiene y préstamo no incluirá a esta nueva tupla. 
Normalmente, los SGBD no permiten actualizaciones sobre relaciones de vistas
( excepto limitadas excepciones). 
Teoría y Diseño de BD 63
MSE Adriana E. Martín                           
2.i  Vistas  Algebra Relacional
Dijimos que se permite que un nombre­de­vista aparezca en cualquier 
parte en la que está permitido un nombre­de­relación.
... por lo tanto se pueden utilizar vistas en una expresión que define otra vista:

create view cliente­potencial as
π NomCli( σ NomTarjeta = “Visa” ∧  LímiteCompra > 1000( todos­los­clientes ) )

Se dice que una relación­de­vista v1 depende directamente 
de una relación­de­vista v2
si
v2 se utiliza en la expresión que define a v1.
cliente­potencial
Grafo de Dependencia 
todos­los­clientes
de Vistas

    tieneTarjeta  tarjeta
Teoría y Diseño de BD 64
MSE Adriana E. Martín                                                    
2.i  Vistas  Algebra Relacional
... entonces la expresión:

σ NomCli = “Vicario”( cliente­potencial )

... produce el siguiente procedimiento de expansión de vistas:

σ NomCli = “Vicario”( π NomCli
( σ NomTarjeta = “Visa” ∧  LímiteCompra > 1000( todos­los­clientes ) ) )

... y

σ NomCli = “Vicario”( π NomCli
( σ NomTarjeta = “Visa” ∧  LímiteCompra > 1000
( π NomCli, NomTarjeta, LímiteCompra( tarjetaCli       tarjeta ) ) ) )
Teoría y Diseño de BD 65
MSE Adriana E. Martín                                                                                  
 Resumen
… hasta aquí hemos tratado:

 INTRODUCCIÓN
 OPERACIONES BÁSICAS
 DEFINICIÓN FORMAL del ÁLGEBRA  
RELACIONAL
 ÁLGEBRA RELACIONAL
 OTRAS OPERACIONES
Modelo   ALGUNAS PROPIEDADES
Relacional  JOIN EXTERNO Y UNIÓN EXTERNA 
 FUNCIONES AGREGADAS

  MODIFICACIÓN de BD

  VISTAS

Teoría y Diseño de BD 66

También podría gustarte