06/11/03
Esquemas de Capas
DescomposiciónDe la query
Localización de Datos
OptimizaciónGlobal
OptimizaciónLocal
Query
Algebra
Fragmentacion
Optimización Queries Locales
Optimización Frag. & Comm.
06/11/03
Descomposición de Queries
Transforma Del calculo relacional Al algebra relacional
Las entradas y salidasReferencias relaciones globalesSin información de la distribución de datos
Igual a BD centralizadasSe supone corrección sintáctica
06/11/03
Descomposición de Queries
La salida de esta etapaQuery semanticamente correctoMucha trabajo redundante eliminado
Involucra los siquientes pasosNormalizaciónAnalisisEliminación de redundanciaReescritura
06/11/03
Descomposición de QueriesNormalización
La entrada es un queryEl objetivo es transformar a una forma normalizada para mejorar el procesamientoEn SQL la normalización esta en el WHEREHay dos posibilidades de normalizar
Forma Normal Conjuntiva (FNC)• Conjunción de disyunciones
Forma Normal Disyuntiva (FND)• Disyuncion de Conjunciones
06/11/03
Descomposición de QueriesNormalización
La transformación de predicados libres se hace con:
Conmutación de AND y ORAsociatividad de AND y ORDistribuciòn de AND y ORLeyes de De Morgan
06/11/03
Descomposición de QueriesNormalización
EjemploEncontrar los articulos del rubro HERRAMIENTAS que se compraron el día 1/1/2000 y el día 1/1/2001
select ART.CODIGO, ART.DSCR from ARTICULOS ART, COMPRAS COMPwhere ART.RUBRO=“HERRAMIENTAS” and
COMP.CODIGO=ART.CODIGO and(COMP.FECHA=“1-1-2000” or COMP.FECHA=“1-1-2001”)
FNC ?FND ?
06/11/03
Descomposición de QueriesAnálisis
Rechaza queries normalizadas cuyo procesamiento es
ImposibleInnecesario
El rechazo se da porTipos incorrectos
• Si un atributo no esta definido en el schema global o• Atributo con tipo equivocado
Semanticamente incorrecto• No ayuda a la generación de un resultado• Es posible hacerlo con grafo del query o el de conección
Si se da el rechazo, se da una explicación
06/11/03
Descomposición de QueriesAnálisis
Ejemploselect EMP.NOMB, ASG.FECHADESDEfrom EMPLEADOS EMP, CARGOS CAR, ASIGNACIONES ASGwhere EMP.EMP_COD=ASG.EMP_CODIGO and
ASG.CAR_COD=CAR.CAR_COD andCAR.MATERIA=“ALGEBRA I” andASG.FECHADESDE>”01-01-2002”
Grafo del query
RSLT
EMPCAR
ASG
ASG.CAR_COD=CAR.CAR_COD
ASG.FECHADESDE>“01-01-2002”
EMP.EMP_CODIGO=ASG.EMP_COD
EMP.NOMB
ASG.FECHADESDE
CAR.MATERIA=“ALGEBRA I”
06/11/03
Descomposición de QueriesAnálisis
Grafo del join
EMP CA
R
ASG
ASG.CAR_COD=CAR.CAR_CODEMP.EMP_COD=ASG.EMP_COD
06/11/03
Descomposición de QueriesAnálisis
El grafo del query sirve:De terminar correctitud
• AND• No existen negaciones• Multivariables• Si el grafo esta desconectado->semanticamente incorrecto• Algunas implementacion considera la desconección como
producto cartesiano
06/11/03
Descomposición de QueriesAnálisis
Ejemploselect EMP.NOMB, ASG.FECHADESDEfrom EMPLEADOS EMP, CARGOS CAR, ASIGNACIONES ASGwhere EMP.EMP_COD=ASG.EMP_COD and
CAR.MATERIA=“ALGEBRA I” andASG.FECHADESDE>”01-01-2002”
Grafo del query
RSLT
EMP CA
R
ASG
ASG.FECHADESDE>“01-01-2002”
EMP.EMP_COD=ASG.EMP_COD
EMP.NOMB
ASG.FECHADESDE
CAR.MATERIA=“ALGEBRA I”
06/11/03
Descomposición de QueriesEliminación de la Redundancia
Las queries pueden tener redundanciaEsto implica retrabajoPodemos simplificar esto con las reglas de idempotencia
p∧p⇔pp∨p⇔pp∧true⇔pp∧false⇔falsep∨false⇔pEtc.
06/11/03
Descomposición de QueriesEliminación de la Redundancia
Ejemploselect descr from EMPLEADOSwhere (not (TITULO=“LIC”) and
(TITULO=“LIC” orTITULO=“DR” andnot (TITULO=“DR”)) orAPELLIDO=“PEREZ”⇓
select descr from EMPLEADOSwhere APELLIDO=“PEREZ”
06/11/03
Descomposición de QueriesReescritura
Se divide enTransformación directa CR al ARReestructuración AR para mejorar performance
Es habitual representar AR con un arbol de operadoresArbol de operadores
Hojas son relaciones de la base de datosNo hojas son relaciones intermedias producido por un operador del ARSe deriva la respuesta desde las hojas a la raiz
06/11/03
Descomposición de QueriesReescritura
Arbol de operadoresLas hojas son las clausulas del FROMLa raiz es una operación ∏. Clausula select.La clausulas del WHERE trasladada no mandan de las hojas al la raiz
06/11/03
Descomposición de QueriesReescritura
Ejemploselect EMP.NOMBfrom EMPLEADOS EMP, CARGOS CAR, ASIGNACIONES ASGwhere ASG.EMP_COD=EMP.EMP_COD and
ASG.CAR_COD=CAR.CAR_COD andCAR.MATERIA=“ALGEBRA I” andEMP.NOMB≠”PEREZ” AND(ASG.FECHADESDE=”01-01-2002” or ASG.FECHADESDE=”01-01-2002”)
06/11/03
Descomposición de QueriesReescritura
Operator TREE∏NOMB
EMPASG CAR
<>CAR_COD
<>EMP_COD
σNOMB‡”PEREZ”
σMATERIA=“ALGEBRA I”
σFECHADESDE=“01-01-2001”∨ FECHADESDE=“01-01-2001”
Project
Select
Join
06/11/03
Descomposición de QueriesReescritura
Aplicando transformaciones se obtienen arboles equivalentesExisten 6 reglas usadasEstas reglan aseguran correctitud (Ullman, 1982)Sean R, S y T relacionesR definida sobre los atributos A={A1,..,An}S sobre B={B2,..,Bn}
06/11/03
Descomposición de QueriesReescritura
Conmutación de Operaciones BinariasRxS⇔SxRR<>S ⇔S<>R
Asociatividad de Operadores Binarios(RxS)xT ⇔Rx(SxT)(R<>S)<>T ⇔ R<>S(<>T)
Idempotencia de Operadores UnariosSi R esta definida en el conjunto A y A’⊆A, A’’⊆A y A’⊆A’’ entonces ∏A’(∏A’’(R))⇔∏A’(R)
06/11/03
Descomposición de QueriesReescritura
Conmutación de Selección con proyección∏A1..An(σp(Ap)(R))⇔ ∏A1..An(σp(Ap)∏A1..An(R)))
Conmutación de selección con op. Binariosσp(Ai)(RxS))⇔ (σp(Ai)(R))xSσp(Ai)(R<>p(ajbk)S)⇔ σp(Ai)(R)<>p(ajbk)S)σp(Ai)(R∪S))⇔ (σp(Ai)(R)) ∪ σp(Ai) (S))
Conmutación de proyección con op. BinariosSi C=A’ ∪ B’, donde A’⊆A, B’⊆B y A,B conjunto de atributos sobre R y A, ai∈A’ y bj∈B’ entonces
∏C(RxS)⇔∏A’(R)x∏B’(R)∏C(R <>p(ajbk)S)⇔ ∏A’(R) <>p(ajbk) ∏B’ S)∏C(R ∪ S)⇔∏c(R)∪∏c(R)
06/11/03
Descomposición de QueriesReescritura
Podemos generar arboles equivalentesEstos pueden tener menor costo de ejecuciónBusqueda exhaustivaEliminación de operadores costosos
Separación de operadores unariosAgrupar operadores unarios de las mismas relacionesConmutar operadores unarios con binarios
(optimización de queries)
06/11/03
Descomposición de QueriesReescritura
∏NOMB
CAR ASG EMP
<>CAR_COD
<>EMP_COD
σNOMB‡”PEREZ”σMATERIA=“ALGEBRA I” σFECHADESDE=“01-01-2001”∨ FECHADESDE=“01-01-2001”
∏EMP_COD,NOMB
∏CAR_COD ∏EMP_COD,CAR_COD
∏CAR_COD,NOMB
06/11/03
Localización de Datos
Hemos reestructurado queriesSe aplican a BD centralizadas y distribuidasNo tienen en cuenta la distribución de los datosEste es objetivo de la localizaciónTranslada
Query del Algebra con relaciones globales aQuery algebraica expresada en fragmentos físicos
Utiliza información del esquema de fragmentos Tenemos reglas de fragmentación y se expresan como queries relacionales
06/11/03
Localización de Datos
Podemos aplicar reglas de reconstrucciónLos operadores son fragmentosNo consideramos la replicación de fragmentosAlgoritmo basico
Generar queries donde cada relación global se reemplaza por un Programa de Localizacion (PL)La hojas del arbol las reemplazamos por programas de localizaciónEsta query se llama query genérica
Veremos técnicas de reducción (transformación)
06/11/03
Localización de Datos Fragmentación Horizontal
La relación EMPEMP
EMP_COD NOMB TITULO1 PEREZ LIC2 GARRO DR3 ASPE LIC4 PALMA PROF5 ATUCHA LIC6 GARCIA MS7 TOMASONE DR
Se puede fragmentar en EMP1=σEMP_COD<3(EMP)EMP2=σ3<EMP_COD<=6(EMP)EMP3=σEMP_COD>6(EMP)
06/11/03
Localización de Datos Fragmentación Horizontal
en un query EMP se reemplazaEMP=E1∪E2 ∪E3
Buscar subarboles que producen relaciones vacias, luego eliminarlasSe pueden simplificar por selección y join
06/11/03
Localización de Datos Fragmentación Horizontal
Reducción por selección
R relación, fragmentada horizontalmente en R1,..Rn
Donde Rn= σpj(R)σpj(R)=∅ si ∀x en R: ¬(pi(x)∧pj(x))Pi,pj significan Predicados de selecciónx denota una tuplap(x): predicado p mantenido por x
06/11/03
Localización de Datos Fragmentación Horizontal
Reducción por selección. Ejemplo
select * from EMP where EMP_COD=4
σEMP_COD=4
∪
EMP1 EMP2 EMP3
σEMP_COD=4
EMP2
06/11/03
Localización de Datos Fragmentación Horizontal
Reducción con JoinSe puede simplificar si esta fragmentado de acuerdo al atributo de joinLa distribución del join sobre la unión
(R1∪R2)<>S=(R1<>S)∪(R2<>S) Donde Ri son fragmentos de R y S es la relación
La regla de simplificación se definr• Ri<>Rj= ∅ Si ∀x en Ri, ∀y en Rj : ¬(pi(x)∧pj(y))• Donde Ri,Rj están definidos de acuero a pi y pj sobre el
mismo atributo
06/11/03
Localización de Datos Fragmentación Horizontal
Reducción con Join. EjemploEMP fragmentada en E1, E2 y E3La relación ASG
ASGEMP_COD CAR_COD FECHADESDE FECHA HASTA1 1 1-1-2001 null2 2 1-1-2001 null3 3 1-1-2001 null4 4 1-1-2001 null
• Fragmentada en
ASG1=σEMP_COD<=3(ASG)ASG2=σEMP_COD>3(ASG)
06/11/03
Localización de Datos Fragmentación Horizontal
Reducción con Join. Ejemploselect * from EMP, ASG where EMP.EMP_COD=ASG.EMP_COD
<>EMP_COD
<>EMP_COD
∪
EMP1 EMP2 EMP3
∪
EMP1 EMP2 EMP3
∪
<>EMP_COD
EMP1 ASG1 EMP1 ASG1
<>EMP_COD
EMP1 ASG1
06/11/03
Localización de Datos Fragmentación Vertical
Distribuye una relación basada en atributos de proyecciónEl operador de reconstrucción es el joinEl programa de localización
Join de fragmentos con atributos comunes
06/11/03
Localización de Datos Fragmentación Vertical
Distribuye una relación basada en atributos de proyecciónEl operador de reconstrucción es el joinEl programa de localización
Join de fragmentos con atributos comunes
EMP la podemos fragmentar enEMP1=∏EMP_COD,NOMB(ASG)EMP1=∏EMP_COD,TITULO(ASG)
06/11/03
Localización de Datos Fragmentación Vertical
El programa esEMP=EMP1<>EMP_CODEMP2
Ejemploselect NOMB from EMP
∏NOMB
<>EMP_COD
EMP1 EMP2EMP1
∏NOMB