Algebra OperadoresAdicionales PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 36

Algebra Relacional

Operadores Adicionales

1
Repaso
 Selección ( ) Selecciona un subconjunto de filas
o tuplas de una relación (horizontal) que cumplan
con una condición.
 Proyección ( ) Conserva algunas columnas de la
relación (vertical)
 Producto-cartesiano (  ) Permite combinar dos
relaciones
 Diferencia-conjuntos ( — ) tuplas en r1 no en r2.
 Union (  ) Tuplas en r1 o en r2
 Renombramiento ()
Operadores Adicionales
 No añaden poder al algebra relacional
 Responden a consultas comunes y frecuentes

 Intersección de conjuntos
 Join Natural
 División
 Asignación
Intersección 
Operador Binario r  s
rs={t|trts}

r, s tienen la misma aridad

Atributos de r y s son compatibles


Intersección 
Relaciones
A B A B
 1  2
 2  3
 1
r s

rs
A B

 2
Ejemplo
Averiguar el nombre de todos los clientes del banco que
tienen un préstamo concedido y una cuenta abierta.
Ejemplo
Averiguar el nombre de todos los clientes del banco que
tienen un préstamo concedido y una cuenta abierta.
Ejemplo
Fundamentals of Database Systems, Elmasri y Navathe

Dadas las relaciones STUDENT, INSTRUCTOR, qué operación


representan (b), (c), (d), (e)
r s
Join Natural
 La reunión natural es una operación binaria que permite
combinar ciertas selecciones y un producto cartesiano
en una sola operación.

 Se denota por el símbolo de la «reunión»

 La operación reunión natural forma un producto


cartesiano de sus dos argumentos, realiza una selección
forzando la igualdad de los atributos que aparecen en
ambos esquemas de relación y, finalmente, elimina los
atributos duplicados.
r s
Join Natural
r ,s relaciones definidas sobre esquemas R y S
respectivamente
: relación definida sobre esquema R  S asi:
r s
 Considere cada par de tuplas tr de r y ts de s
 Si tr y ts son iguales para cada atributo R  S, una
tupla t se adiciona a la relación resultante, donde
t tiene el mismo valor de tr en r
t tiene el mismo valor de ts en s
Join Natural : Ejemplo
R = (A, B, C, D)
S = (E, B, D)
Esquema resultante = (A, B, C, D, E)
 r s se define como
r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))
Relaciones
Join Natural
A B C D B D E

 1  a 1 a 
 2  a 3 a 
 4  b 1 a 
 1  a 2 b 
 2  b 3 b 
r s

r s A B C D E
 1  a 
 1  a 
 1  a 
 1  a 
 2  b 
Join Natural (*)

 Conecta dos relaciones:


 Igualando los atributos del mismo
nombre, y
 Proyectando una copia de cada par de
atributos igualados

Denotado como R3 = R1
⋈ R2
Ejemplo
Hallar los nombres de todos los clientes que tienen
concedido un préstamo en el banco y averiguar el importe
del mismo.
Ejemplo
Hallar todos los clientes que tienen una cuenta abierta y un
préstamo concedido en el banco.
Theta-Join

R3 := R1 ⋈C R2

Calcula el producto R1 Χ R2
Aplica la selección σC al
resultado
En σ, C puede ser una
expresión de valor booleano

rs
División
 Útil en preguntas con expresión “para
todo”
 r, s son relaciones definidas sobre
esquemas R y S respectivamente
donde
R = (A1, …, Am , B1, …, Bn )
S = (B1, …, Bn)
División
➢El resultado of r  s es una relación definida
sobre el esquema
R – S = (A1, …, Am)
r  s = { t | t   R-S (r)   u  s ( tu  r ) }
➢tu representa la concatenación de las tuplas
t y u para producir una sola tupla
➢División identifica los valores de los atributos
de una relación que se emparejan con
todos los valores de otra relación
División
▪ Sean R y S dos relaciones con esquemas
(A1,...,An) y (B1,...,Bm) respectivamente.
▪ La operación R ÷ S, da como resultado otra relación
con esquema (A1,...,An) y su contenido son:
▪ Las tuplas tomadas a partir de las de r(R) tales que
su valor (a1,...,an) está asociado en r(R) con TODOS
los valores (b1,...,bm ) que están en s(S).
División
División
Relaciones
A B B
 1 1
 2
 3 2
 1 s
 1
 1
 3
 4
 6
 1
rs A  2
 r


Relaciones
División
A B C D E D E

 a  a 1 a 1
 a  a 1 b 1
 a  b 1 s
 a  a 1
 a  b 3
 a  a 1
 a  b 1
 a  b 1
r

rs A B C

 a 
 a 
División

División identifica los valores de los atributos de una relación


que se emparejan con todos los valores de otra relación. Se
puede expresar en términos de π, X y -

A ÷ B = π A-B (A) - π A-B ( (π A-B (A) X B) - A )

1. Calcular el producto cartesiano


2. Eliminar las tuplas repetidas existentes
3. Eliminar las tuplas que no son la respuesta de las posibles
respuestas
División

Proyecto Provee Parte

Proveedor

Qué proveedores proveen todas las partes que pesan 17 Kg?

Parte (parte_id, nombre, peso, color)


Proyecto (pyt_id, nombre, presupuesto)
Proveedor (prov_id, nombre, dir, tel)
Provee ( pyt_id, prov_id, parte_id)
División
A = π parte_id, prov_id (Provee) B = π parte_id, ( peso=17 (Parte)
Prov_id Parte_id
S1 P1 parte_id
S2 P3 ÷ P2
S2 P5 P3
S3 P3
S3 P4
S4 P6 Resultado
S5 P1
Prov_id
S5 P2
S5 P3 S5
S5 P4
S5 P5
S5 P6
Expresiones Complejas
 Combinación de operadores,
paréntesis y reglas de precedencia
 Notaciones
1. Secuencias de asignaciones
2. Expresiones con varios
operadores
Asignaciones

 Crea nombres de relaciones temporales


 Renombramiento se puede requerir para
darle a una relación una lista de atributos

Ejemplo: R3 := R1 ⋈C R2 se puede escribir


R4 := R1 Χ R2
R3 := σC (R4)
Expresiones

El theta-join R3 := R1 ⋈C R2 se puede escribir


R3 := σC (R1 Χ R2)
Precedencia de operadores relacionales
1. [σ, π, ρ] (más alta)
2. [Χ, ⋈]
3. ∩
4. [∪, —]
Asignación
 Esta operación () ofrece una forma adecuada
para expresar consultas complejas
 Una consulta se escribe como una secuencia
de asignaciones
Seguida por una expresión cuyo valor se
muestra como resultado de una consulta
 Las asignaciones “se asignan” a variables
temporales
Asignación: ejemplo
Escribir r  s como
temp1  R-S (r )
temp2  R-S ((temp1 x s ) – R-S,S (r ))
result = temp1 – temp2
 El resultado de la expresión a la derecha de  se
asigna a la variable de relación a la izquierda de 

 Las variables se pueden usar en las expresiones


subsecuentes
Funciones Agregadas
 Función de Agregación toma un conjunto de valores
y devuelve un solo valor como resultado
avg: valor promedio
min: valor mínimo
max: valor máximo
sum: suma de valores
count: número de valores
Funciones Agregadas

 Operación de agregación en álgebra


relacional
E es cualquier expresión relacional
G1, G2 …, Gn es una lista de atributos sobre
los cuales agrupar (puede ser vacia)
Cada Fi es una función agregada
Cada Ai es un nombre de atributo

G1,G2 ,,Gn
F ( A ),F ( A ,,F ( A ) (E )
1 1 2 2 n n
Operación agregada – Ejemplo
Relación r:
A B C

  7
  7
  3
  10

g sum(c) (r) sum(c )

27
Operación de agregación–
Example
Relación Cuenta agrupada por Nombre_sucursal:

nombre_sucursal Numero_cuenta saldo

Perryridge A-102 400


Perryridge A-201 900
Brighton A-217 750
Brighton A-215 750
Redwood A-222 700

nombre__sucursal g sum(saldo) (cuenta)

nombre_sucursal sum(saldo)
Perryridge 1300
Brighton 1500
Redwood 700
Funciones de Agregación
 El resultado de agregación no tiene un nombre
 Puede usar renombramiento para darle un
nombre

 Por conveniencia, se permite renombramiento


como parte de la operación de agregación

Nombre_sucursal g sum(saldo) as sum_saldo (cuenta)

Nota: Ver archivo “Algebra relacional extendido”


Referencias

 “Fundamentals of Database Systems 5th


Ed.”, Elmasri & Navathe, Addison Wesley,
2007. (cap. 2 y 3).

 Elmasri, R., & Navathe, S. B.


(2011). Database systems (Vol. 9).
Boston, MA: Pearson Education.

También podría gustarte