Está en la página 1de 55

PROCESAMIENTO DE CONSULTAS

BASE DE DATOS AVANZADA

JUAN JOSÉ RAMÍREZ LAMA


JUAN.RAMIREZ@ULAGOS.CL

DEPARTAMENTO DE CIENCIAS DE LA INGENIERÍA


INGENIERÍA CIVIL EN INFORMÁTICA
Contenido

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 2 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 3 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

PROCESAMIENTO DE CONSULTAS

Comando de Mani-
Consulta del Usuario
(Alto Nivel)
→ Procesador de Consultas → pulación de datos
(Bajo Nivel)

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 4 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

COMPONENTES

▶ El lenguaje de consulta
▶ SQL
▶ Metodología de ejecución de consultas
▶ Los pasos necesarios para ejecutar consultas de usuarios (declarativas)
▶ Optimización de consultas
▶ ¿Como determinamos el mejor plan de ejecución?

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 5 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

SELECCIONANDO ALTERNATIVAS

▶ Consideremos la consulta:
SELECT E . NOMBREE
FROM EMP E , ASG A
WHERE E . IDE = A . IDE AND A . DUR>37

▶ Estrategia 1:
ΠNOMBREE (σDUR>37∧EMP.IDE=ASG.IDE (EMP × ASG))
▶ Estrategia 2:
ΠNOMBREE (EMP ⋊
⋉IDE (σDUR>37 (ASG)))

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 6 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

SELECCIONANDO ALTERNATIVAS

▶ Consideremos la consulta:
SELECT E . NOMBREE
FROM EMP E , ASG A
WHERE E . IDE = A . IDE AND A . DUR>37

▶ Estrategia 1:
ΠNOMBREE (σDUR>37∧EMP.IDE=ASG.IDE (EMP × ASG))
▶ Estrategia 2:
ΠNOMBREE (EMP ⋊
⋉IDE (σDUR>37 (ASG)))
▶ ¿Cuál estrategia es mejor?

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 6 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

SELECCIONANDO ALTERNATIVAS

▶ Consideremos la consulta:
SELECT E . NOMBREE
FROM EMP E , ASG A
WHERE E . IDE = A . IDE AND A . DUR>37

▶ Estrategia 1:
ΠNOMBREE (σDUR>37∧EMP.IDE=ASG.IDE (EMP × ASG))
▶ Estrategia 2:
ΠNOMBREE (EMP ⋊
⋉IDE (σDUR>37 (ASG)))
▶ ¿Cuál estrategia es mejor?
▶ La Estrategia 2, porque evita el producto cartesiano!

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 6 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

POSIBLE COMPUTACIÓN PARA ESTRATEGIA 2.1


Sitio 1 Sitio 2 Sitio 3
ASG1 = σIDE≤”E3” (ASG) ASG2 = σIDE>”E3” (ASG) EMP1 = σIDE≤”E3” (EMP)
Sitio 4 Sitio 5
EMP2 = σIDE>”E3” (EMP) Solicita un resultado

Estrategia 2.1

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 7 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

POSIBLE COMPUTACIÓN PARA ESTRATEGIA 2.2

Sitio 1 Sitio 2 Sitio 3


ASG1 = σIDE≤”E3” (ASG) ASG2 = σIDE>”E3” (ASG) EMP1 = σIDE≤”E3” (EMP)
Sitio 4 Sitio 5
EMP2 = σIDE>”E3” (EMP) Solicita un resultado

Estrategia 2.2

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 8 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

COSTO DE LAS ALTERNATIVAS


▶ Consideremos que:
▶ tamaño(EMP) = 400, tamaño(ASG)=1000
▶ Costo acceso (CA) por tupla =1 u,
▶ Costo de transferencia (CT) por tupla = 10 u
▶ 10 tuplas de cada fragmento de ASG cumplen con la condición
▶ Alternativa 2.1:
▶ Producir ASG’: (10 ∗ CA)ASG1 + (10 ∗ CA)ASG2 = 20
▶ Enviar ASG’ a los sitios de EMP:(10 ∗ CT)ASG′1 + (10 ∗ CT)ASG′2 = 200
▶ Producir EMP’: (10 ∗ CA ∗ 2)EMP1 + (10 ∗ CA ∗ 2)EMP2 (por el ⋊ ⋉) = 40
▶ Transferir EMP’ al sitio del resultado (10 ∗ CT)EMP′1 + (10 ∗ CT)EMP′2 = 200
Costo Total = 460

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 9 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

COSTO DE LAS ALTERNATIVAS


▶ Consideremos que:
▶ tamaño(EMP) = 400, tamaño(ASG)=1000
▶ Costo acceso (CA) por tupla =1 u,
▶ Costo de transferencia (CT) por tupla = 10 u
▶ 10 tuplas de cada fragmento de ASG cumplen con la condición
▶ Alternativa 2.2:
▶ Transferir EMP al sitio 5: 400 ∗ CT = (200 ∗ CT)EMP1 + (200 ∗ CT)EMP2 = 4000
▶ Transferir ASG al sitio 5: 1000 ∗ CT = (500 ∗ CT)ASG1 + (500 ∗ CT)ASG2 = 10000
▶ Producir ASG’:1000 ∗ CA = ASG1 ∪ ASG2 ∗ CA = 1000
▶ Producir EMP join ASG’: 400EMP ∗ 20ASG′ ∗ CA = 8000
Costo Total = 23000

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 10 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

OPTIMIZACIÓN DE CONSULTAS

▶ El objetivo de la optimización de consultas es minimizar la siguiente función de


costo:
▶ Costo E/S + costo CPU + costo comunicación
▶ Los que pueden tener diferentes pesos
▶ WAN: domina el costo de comunicación
▶ LAN: no es relevante el costo de comunicación
▶ El objetivo de la optimización también puede ser maximizar la cantidad de resultados
(respuestas a consultas)

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 11 / 53


Procesamiento de Consultas en Bases de Datos Distribuidas

COMPLEJIDAD DE OPERACIONES RELACIONALES

Operación Complejidad
Selección, Proyección (sin elimi- O(n)
▶ Consideremos relaciones con nar el duplicado)
cardinalidad n. Proyección (Eliminando el dupli- O(nlogn)
cado o distinct) Agrupar (Group)
▶ Lectura secuencial.
Join, semi-join, división, opera- O(nlogn)
dores set
Producto carteciano O(n2 )

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 12 / 53


Optimización

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 13 / 53


Optimización

TIPOS DE OPTIMIZADORES

▶ Los que ejecutan una búsqueda exhaustiva.


▶ Basados en costos.
▶ Óptimos.
▶ Los que se basan en heurísticas:
▶ No óptimos.
▶ Reagrupan sub-expresiones comunes, reordenan operaciones para reducir el tamaño de
relaciones intermedias.
▶ Ejecutan primero selección, luego proyección.
▶ Reemplazan joins por semi-joins si es posible.
▶ Optimizan operaciones individuales.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 14 / 53


Optimización

GRANULARIDAD DE LA OPTIMIZACIÓN

▶ Una consulta a la vez.


▶ No usan resultados intermedios.
▶ Múltiples consultas a la vez.
▶ Eficientes si hay varias consultas similares.
▶ El espacio de decisión es más grande.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 15 / 53


Optimización

¿CUÁNDO OPTIMIZAR?

▶ Optimización estática
▶ Antes de ejecutar la consulta
▶ Difícil estimar el tamaño de resultados intermedios
▶ Algoritmo: R*
▶ Optimización dinámica
▶ Optimización en tiempo de ejecución
▶ Información exacta sobre el tamaño de relaciones intermedias
▶ Algoritmo: INGRES distribuido
▶ Optimización híbrida
▶ Algoritmo: MERMAID

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 16 / 53


Optimización

REQUERIMIENTOS DE INFORMACIÓN

▶ De la relación
▶ La cardinalidad y tamaño de las tuplas
▶ Fracción de tuplas participando en joins
▶ De los atributos
▶ Cardinalidad del dominio
▶ Número actual de valores distintos
▶ Generalmente se asume
▶ Independencia entre valores distintos de atributos
▶ Distribución uniforme de valores de atributos dentro del dominio

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 17 / 53


Optimización

¿DÓNDE OPTIMIZAR?

▶ Centralizada
▶ Un sitio determina el mejor plan (simple)
▶ Necesita conocimiento de toda la base de datos distribuida
▶ Distribuida
▶ Cooperación entre sitios para determinar el mejor plan
▶ Necesita información local
▶ Costo de cooperación
▶ Híbrida
▶ Un sitio determina el plan global
▶ Cada sitio optimiza la sub-consulta local

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 18 / 53


Metodología de Procesamiento

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 19 / 53


Metodología de Procesamiento

METODOLOGÍA DE PROCESAMIENTO

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 20 / 53


Metodología de Procesamiento Descomposición de Consultas

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 21 / 53


Metodología de Procesamiento Descomposición de Consultas

PASO 1: DESCOMPOSICIÓN DE LA CONSULTA

1 Entrada: consulta sobre relaciones globales


2 Normalización: Manipulación de cuantificadores (consulta cálculo) y calificadores
3 Análisis: Detectar y rechazar consultas incorrectas (posible para un subconjunto del
cálculo relacional)
4 Simplificación: Eliminar predicados redundantes
5 Reestructuración: Reglas de transformación

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 22 / 53


Metodología de Procesamiento Descomposición de Consultas

1. NORMALIZACIÓN

▶ Análisis léxico y sintáctico


▶ Verificar la estructura (similar a compilación)
▶ Verificar atributos y relaciones
▶ Dejar en una forma normal
▶ Forma normal conjuntiva

(p11 ∨ p12 ∨ · · · ∨ p1n ) ∧ · · · ∧ (pm1 ∨ pm2 ∨ · · · ∨ pmn )

▶ Forma normal disyuntiva

(p11 ∧ p12 ∧ · · · ∧ p1n ) ∨ · · · ∨ (pm1 ∧ pm2 ∧ · · · ∧ pmn )

▶ Transformar OR’s en unión


▶ Transformar AND’s en joins o selecciones

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 23 / 53


Metodología de Procesamiento Descomposición de Consultas

2. ANÁLISIS

▶ Consultas sintácticamente incorrectas


▶ Si alguno de los atributos o relaciones no están definidos en el esquema global.
▶ Operaciones se aplican sobre atributos de tipo incorrecto.
▶ Consultas semánticamente incorrectas
▶ Algunos componentes no contribuyen a la generación del resultado.
▶ Aplicable a consultas sin disyunción y sin negación.
▶ Se detectan a través de grafos de conexión (grafo de la consulta) y grafos de joins

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 24 / 53


Metodología de Procesamiento Descomposición de Consultas

EJEMPLO: ANÁLISIS
SELECT NOMBREE , RESPONSABLE
FROM EMP, ASG , PROY
WHERE EMP . IDE =ASG . IDE AND ASG . IDP=PROY . IDP AND
NOMBREP = " D i s t r i b u i d o r a " AND DUR>=36 AND TITULO= " Programador "

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 25 / 53


Metodología de Procesamiento Descomposición de Consultas

EJEMPLO: ANÁLISIS
▶ Si el grafo de la consulta no está conectado, la consulta es semánticamente
incorrecta
SELECT NOMBREE , RESPONSABLE
FROM EMP, ASG , PROY
WHERE EMP . IDE =ASG . IDE AND NOMBREP = " D i s t r i b u i d o r a " AND
DUR>=36 AND TITULO= " Programador "

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 26 / 53


Metodología de Procesamiento Descomposición de Consultas

3. SIMPLIfiCACIÓN

▶ A través de reglas de transformación.


▶ Eliminación de redundancias.

p1 ∧ ¬(p1 ) ↔ false
p1 ∧ (p1 ∨ p2 ) ↔ p1
p1 ∨ false ↔ p1
...
▶ Aplicación de transitividad.
▶ Uso de reglas de integridad.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 27 / 53


Metodología de Procesamiento Descomposición de Consultas

EJEMPLO: SIMPLIfiCACIÓN

SELECT TITULO
FROM EMP
WHERE NOMBREE= " Pedro "
OR (
NOT( TITULO= " Programador " )
AND ( TITULO= " Programador " OR TITULO= " I n g . E l e c t r i c o " )
AND NOT( TITULO= " I n g . E l e c t r i c o " )
);

SIMPLIfiCADO
SELECT TITULO
FROM EMP
WHERE NOMBREE= " Pedro "

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 28 / 53


Metodología de Procesamiento Descomposición de Consultas

4. REESTRUCTURACIÓN

▶ Convertir consultas en cálculo relacional al álgebra relacional.


▶ Hacer uso de árboles de consultas.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 29 / 53


Metodología de Procesamiento Descomposición de Consultas

EJEMPLO: REESTRUCTURACIÓN
▶ Encontrar el nombre de los empleados diferentes a “Juan R.” que trabajan en
proyectos “Distribuidora” por uno o dos años.

SELECT NOMBREE
FROM EMP, ASG , PROY
WHERE EMP . IDE =ASG . IDE
AND ASG . IDP = PROY . IDP
AND NOMBREE <> " Juan R . "
AND NOMBREP = " D i s t r i b u i d o r a "
AND (DUR=12 OR DUR=24) ;

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 30 / 53


Metodología de Procesamiento Descomposición de Consultas

REGLAS DE TRANSFORMACIÓN I
▶ Conmutatividad de operaciones binarias:

R×S⇔S×R

R⋊
⋉S⇔S⋊
⋉R
R∪S⇔S∪R
▶ Asociatividad de operaciones binarias:

(R × S) × T ⇔ R × (S × T)

(R ⋊
⋉ S) ⋊ ⋉ (S ⋊
⋉T⇔R⋊ ⋉ T)
▶ Idempotencia de operaciones unarias.

ΠA′ (ΠA′ (R)) ⇔ ΠA′ (R)

σp1 (A1 ) (σp2 (A2 ) (R)) = σp1 (A1 )∧p2 (A2 ) (R)
Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 31 / 53
Metodología de Procesamiento Descomposición de Consultas

REGLAS DE TRANSFORMACIÓN II
▶ Conmutar selecciones con proyecciones.
▶ Conmutar selecciones con operaciones binarias

σp(A) (R × S) ⇔ (σp(A) (R)) × S

σp(Ai ) (R ⋊
⋉Aj ,Bk S) ⇔ (σp(Ai ) (R)) ⋊
⋉Aj ,Bk S
σp(Ai ) (R ∪ T) ⇔ (σp(Ai ) (R)) ∪ σp(Ai ) (T)
Donde A pertenece a R y T.
▶ Conmutar proyecciones con operaciones binarias

ΠC (R × S) ⇔ ΠA′ (R) × ΠB′ (S)

ΠC (R ⋊
⋉Aj ,Bk S) ⇔ ΠA′ (R) ⋊
⋉Aj ,Bk ΠB′ (S)
ΠC (R ∪ S) ⇔ ΠC (R) ∪ ΠC (S)
Donde R[A] y S[B]; C = A′ ∪ B′ donde A′ ⊆ A, B′ ⊆ B
Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 32 / 53
Metodología de Procesamiento Descomposición de Consultas

EJEMPLO: CONSULTA EQUIVALENTE


Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 33 / 53
Metodología de Procesamiento Descomposición de Consultas

EJEMPLO: CONSULTA REESTRUCTURADA

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 34 / 53


Metodología de Procesamiento Localización de Datos

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 35 / 53


Metodología de Procesamiento Localización de Datos

PASO 2: LOCALIZACIÓN DE LOS DATOS

▶ Entrada: Consulta en álgebra sobre relaciones distribuidas.


▶ Objetivo: Determinar los fragmentos involucrados.
▶ Programa de localización.
▶ Por cada consulta global sustituir su programa de materialización.
▶ Optimizar.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 36 / 53


Metodología de Procesamiento Localización de Datos

EJEMPLO: LOCALIZACIÓN
▶ Consideremos los siguientes ▶ Y la consulta original.
fragmentos de EMP y ASG:

EMP1 = σIDE≤”E3” (EMP)

EMP2 = σ”E3”<IDE≤”E6” (EMP)


EMP3 = σIDE>”E6” (EMP)
ASG1 = σIDE≤”E3” (ASG)
ASG2 = σIDE>”E3” (ASG)

SELECT NOMBREE
FROM EMP, ASG , PROY
WHERE EMP . IDE =ASG . IDE
AND ASG . IDP = PROY . IDP
AND NOMBREE <> " Juan R . "
AND NOMBREP = " D i s t r i b u i d o r a "
AND ( DUR=12 OR DUR=24) ;

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 37 / 53


Metodología de Procesamiento Localización de Datos

EJEMPLO: LOCALIZACIÓN DE FRAGMENTOS


Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 38 / 53
Metodología de Procesamiento Localización de Datos

PARALELISMO

▶ Reorganizar las operaciones considerando los fragmentos.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 39 / 53


Metodología de Procesamiento Localización de Datos

ELIMINACIÓN DE TRABAJO INNECESARIO

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 40 / 53


Metodología de Procesamiento Localización de Datos

REDUCCIÓN FRAG. HORIZONTAL PRINCIPAL

▶ Reducción con selección: Consideremos una consulta de selección de la forma.

σpi (R)

▶ Si tenemos una relación R y FR = (R1 , R2 , . . . , Rn ) donde:

Rj = σpj (R)

▶ Entonces (regla de reducción):

σpi (Rj ) = si ∀x en R : ¬(pi (x) ∧ pj (x))

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 41 / 53


Metodología de Procesamiento Localización de Datos

EJEMPLO: REDUCCIÓN CON SELECCIÓN

FRAGMENTOS INVOLUCRADOS
Select * EMP1 = σide≤′ E3′ (EMP)
From EMP
Where i d e = ’ E5 ’
EMP2 = σ′ E3′ <ide≤′ E6′ (EMP)
EMP3 = σide≥′ E6′ (EMP)

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 42 / 53


Ejemplos

CONTENIDO

1 Procesamiento de Consultas en Bases de Datos Distribuidas

2 Optimización

3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos

4 Ejemplos

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 43 / 53


Ejemplos

REDUCCIÓN CON JOIN

▶ Posible de realizar si la fragmentación se basa en el atributo del join.


▶ Distribuir joins sobre las uniones.
▶ Regla de reducción: para relaciones fragmentadas sobre un mismo atributo.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 44 / 53


Ejemplos

EJEMPLO: REDUCCIÓN CON JOIN


FRAGMENTOS
EMP1 = σide≤′ E3′ (EMP)
CONSULTAS
EMP2 = σ′ E3′ <ide≤′ E6′ (EMP) Select *
EMP3 = σ ide≥′ E6′ (EMP) From EMP e , ASG a
WHERE e . i d e =a . i d e
ASG1 = σide≤′ E3′ (ASG)
ASG2 = σide>′ E3′ (ASG)

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 45 / 53


Ejemplos

REDUCCIÓN FRAG. HORIZONTAL DERIVADA

▶ Distribuir joins sobre uniones.


▶ Aplicar la reducción de join para fragmentación horizontal.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 46 / 53


Ejemplos

EJEMPLO: REDUCCIÓN FHD


FRAGMENTOS
CONSULTAS
EMP1 = σtitulo=‘Programador’ (EMP)
Select *
EMP2 = σtitulo<>‘Programador’ (EMP) From EMP E , ASG S
ASG1 = ASG ⋉ide EMP1 Where E . IDE =A . IDE AND TITULO = ‘ ‘
I n g . Mecanico ’ ’
ASG2 = ASG ⋉ide EMP1

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 47 / 53


Ejemplos

EJEMPLO: REDUCCIÓN FHD


▶ Primero la selección:

▶ Joins sobre uniones:

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 48 / 53


Ejemplos

EJEMPLO: REDUCCIÓN FHD


▶ Eliminación de relaciones intermedias vacías:

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 49 / 53


Ejemplos

REDUCCIÓN FRAGMENTACIÓN VERTICAL

▶ Encontrar relaciones que no son útiles para la consulta.


▶ Es decir, relaciones que no contienen atributos presentes en la consulta.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 50 / 53


Ejemplos

EJEMPLO: REDUCCIÓN FRAGMENTACIÓN VERTICAL

FRAGMENTOS CONSULTAS
EMP1 = ΠIDE.NOMBREE (EMP) S e l e c t NOMBREE
EMP2 = ΠIDE.TITULO (EMP) From EMP

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 51 / 53


Ejemplos

REDUCCIÓN PARA FRAGMENTACIÓN HÍBRIDA

▶ Remover relaciones vacías generadas por condiciones de selección contradictorias


sobre fragmentos horizontales.
▶ Remover relaciones inútiles generadas por proyecciones sobre fragmentos
verticales.
▶ Distribuir joins sobre uniones.

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 52 / 53


Ejemplos

EJEMPLO: REDUCCIÓN FRAGMENTACIÓN HÍBRIDA


FRAGMENTOS
CONSULTAS
MP1 = σIDE≤”E4” (ΠIDE.NOMBREE (EMP)) SELECT NOMBREE
EMP2 = σIDE>”E4” (ΠIDE.NOMBREE (EMP)) FROM EMP
WHERE IDE = ’ E5 ’
EMP3 = ΠIDE.TITULO (EMP)

Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 53 / 53

También podría gustarte