Funciones Agregadas

Anuncio
Funciones Agregadas
Fuentes http://www-db.stanford.edu/~ullman/fcdb.html
Fundamentals of Database Systems, Elmasri y Navathe
Database System Concepts,Silberschatz, Korth, Sudarshan
Marta Millan
[email protected]
www.eisc.univalle.edu.co/materias
1
Algebra de Multiconjuntos
Eliminación de duplicados
Ordenamiento de Tuplas
Agrupamiento y Agregación
Otros tipos de JOIN
Eliminación de duplicados δ
Operador
unario
R1 := δ(R2)
R1
contiene solo un ejemplar de
cada tupla de las que aparecen en
R2
Ejemplo
Relación r
δ(r)
A
B
C
D
α
α
1
7
α
β
5
7
β
β
12
3
α
β
5
7
A
B
C
D
α
α
1
7
α
β
5
7
β
β
12
3
Ordenamiento
R1 := τL (R2)
L es una lista con atributos de R2
R1 lista de tuplas de R2 ordenada con
respecto al primer atributo de la lista L,
después por el segundo atributo de L, etc.
El resultado de aplicar τ a una relación no
produce una relación
Ejemplo
Relación r
A
B
C
D
α
α
1
7
α
β
5
7
β
β
12
3
β
β
5
6
τC (R) = [(α, α, 1, 7), (α, β, 5, 7), (β, β, 5, 6),(β, β, 12, 3)]
τC,D (R) = [(α, α, 1, 7), (β, β, 5, 6), (α, β, 5, 7),(β, β, 12, 3)]
Operadores de Agregación
No son operadores algebraicos
Se aplican a columnas completas de una
tabla
Entregan un único valor resultante
Ejemplos: SUM, AVG, COUNT, MIN, MAX
Ejemplo
Relación r
SUM(C) = 24
MAX(D) = 7
AVG(C) = 6
A
B
C
D
α
α
2
7
α
β
5
7
β
β
12
3
β
β
5
6
Operador de Agrupamiento
R1 := γL (R2)
L es una lista de elementos que puede ser
1. Atributos individuales (agrupamiento )
2. OA(A ), donde OA es un operador de agregación
y A es un atributo
– Una flecha apuntando a un nombre nuevo de
atributo, permite renombrar el componente
Agrupamiento γL(R)
R se agrupa con base en todos los atributos de
agrupamiento en la lista L
Se forma un grupo por cada lista de valores distintos
para esos atributos en R
Dentro de cada grupo, se calcula el OA(A ) por
cada agregación sobre las lista L
Se entrega una tupla por grupo conteniendo
1. Los atributos de agrupamiento y
2. sus agregados
Ejemplo
Relación r
A
B
C
α
α
2
α
β
5
α
α
12
γA,B,AVG(C)→D (r) = ??
2. Se promedia C en cada grupo
1. Se agrupa r por A y B
A
B
D
A
B
C
α
α
7
α
α
2
α
β
5
α
α
12
α
β
5
Outerjoin
Dado R ⋈C S
Una tupla de R que no tenga en S una tupla
para hacer join de denomina dangling
Idem para una tupla de S
Outerjoin mantiene las tuplas dangling
asignando NULL a los valores faltantes .
Ejemplo
Relación r
A
B
D
α
α
α
β
Relación s
A
B
C
7
α
φ
2
5
α
β
9
(α,β,5) se une con (α,β,9)
dangling
. Las otras tuplas son
r OUTERJOIN s =
A
B
D
C
α
β
5
9
α
α
7 null
α
φ null 2
Operaciones sobre
multiconjuntos
(bags)
Algebra Relacional
En un multiconjunto o bag un
elemento puede aparece mas de
una vez.
Ejemplos de multiconjuntos
{1,2,1,3}, {1,2,3}
Cómo aparecen
SQL,
es realmente un lenguaje de
multiconjuntos
Algunas operaciones como π son
más eficientes sobre bags que sobre
conjuntos
Operaciones sobre Bags
Selección
se aplica a una tupla.
Produce el mismo efecto que sobre conjuntos
Projection
aplicable a tuplas
sobre bags no elimina duplicados
Productos y joins
Aplicable a pares de tuplas
los duplicados en multiconjuntos no afectan
su forma de aplicación
Selección en multiconjuntos
Relación s
σC < 5 (s) =
A
B
C
α
φ
2
α
φ
2
A
B
C
α
φ
2
α
β
9
α
φ
2
Proyección sobre bags
Relación s
A
πA (R) =
α
α
α
A
B
C
α
φ
2
α
β
9
α
φ
2
Producto
Relación r
Relación s
A
B
D
A
B
C
α
α
7
α
φ
2
α
β
5
α
β
9
α
φ
2
r×
×s =
r.A r.B D s.A s.B C
α
α
7
α
φ
2
α
β
5
α
β
9
α
α
7
α
φ
2
α
β
5
α
φ
2
α
α
7
α
β
9
α
β
5
α
α
2
Theta-Join
Relación r
r
⋈
A
1
5
1
r.B<s.B
Relación s
B
2
6
2
s=
B
3
7
C
4
8
A
r.B
s.B
C
1
1
5
1
1
2
2
6
2
2
3
7
7
3
7
4
8
8
4
8
Unión
El número de veces que aparece un elemento
en la unión de dos bags es igual a la suma del
número de veces que aparece en cada bag
Ejemplo
{1,2,1} ∪ {1,1,2,3,1} = {1,1,1,1,1,2,2,3}
Intersección
Un elemento aparece en la intersección de dos
bags el mínimo número de veces que aparece
en alguno de los bags
Ejemplo
{1,2,1,1} ∩ {1,2,1,3} = {1,1,2}
Diferencia
Un elemento aparece en la diferencia A – B
entre bags tantas veces como aparezca en A
menos el número de veces que aparece en B
(nunca menos que 0 )
Ejemplo
{1,2,1,1} – {1,2,3} = {1,1}.
Leyes en Bags y Conjuntos
Algunas leyes algebraicas que se satisfacen
para conjuntos se satisfacen para bags
Ejemplo
conmutatividad de la unión (R ∪S = S ∪R ) se
satisface para bags
Una Ley que falla
Unión de conjuntos es idempotente, es decir
s ∪s = s
Para bags, si x aparece n veces en s,
aparecerá 2n veces en s ∪s
En general, s ∪ s ≠ s
{1} ∪ {1} = {1,1} ≠ {1}
Descargar