Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
PROCESAMIENTO DE CONSULTAS
Comando de Mani-
Consulta del Usuario
(Alto Nivel)
→ Procesador de Consultas → pulación de datos
(Bajo Nivel)
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?
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)))
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?
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!
Estrategia 2.1
Estrategia 2.2
OPTIMIZACIÓN DE CONSULTAS
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 )
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
TIPOS DE OPTIMIZADORES
GRANULARIDAD DE LA 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
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
¿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
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
METODOLOGÍA DE PROCESAMIENTO
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
1. NORMALIZACIÓN
2. ANÁLISIS
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 "
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 "
3. SIMPLIfiCACIÓN
p1 ∧ ¬(p1 ) ↔ false
p1 ∧ (p1 ∨ p2 ) ↔ p1
p1 ∨ false ↔ p1
...
▶ Aplicación de transitividad.
▶ Uso de reglas de integridad.
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 "
4. REESTRUCTURACIÓN
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) ;
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.
σ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(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 ⋊
⋉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
⇒
Juan José Ramírez Lama (ULagos) Procesamiento de Consultas 6 de octubre de 2022 33 / 53
Metodología de Procesamiento Descomposición de Consultas
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
EJEMPLO: LOCALIZACIÓN
▶ Consideremos los siguientes ▶ Y la consulta original.
fragmentos de EMP y 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 38 / 53
Metodología de Procesamiento Localización de Datos
PARALELISMO
σpi (R)
Rj = σpj (R)
FRAGMENTOS INVOLUCRADOS
Select * EMP1 = σide≤′ E3′ (EMP)
From EMP
Where i d e = ’ E5 ’
EMP2 = σ′ E3′ <ide≤′ E6′ (EMP)
EMP3 = σide≥′ E6′ (EMP)
CONTENIDO
2 Optimización
3 Metodología de Procesamiento
Descomposición de Consultas
Localización de Datos
4 Ejemplos
FRAGMENTOS CONSULTAS
EMP1 = ΠIDE.NOMBREE (EMP) S e l e c t NOMBREE
EMP2 = ΠIDE.TITULO (EMP) From EMP