+ All Categories
Home > Documents > Bases de Datos Distribuidas - lidi.info.unlp.edu.ar 8 - Descomposicion y... · Forma Normal...

Bases de Datos Distribuidas - lidi.info.unlp.edu.ar 8 - Descomposicion y... · Forma Normal...

Date post: 23-Mar-2018
Category:
Upload: duongphuc
View: 218 times
Download: 5 times
Share this document with a friend
38
Bases de Datos Distribuidas Lic. Hugo Ramón Descomposición de Queries y Localización de Datos
Transcript

Bases de Datos Distribuidas

Lic. Hugo Ramón

Descomposición de Queries y Localización de Datos

06/11/03

AgendaEsquema de CapasDescomposición de QueriesLocalización de Datos

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

Ejemplo

select ART.DSCRfrom ARTICULOSWhere ART.DSCR=1000

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

06/11/03

BibliografiaDistributed Database Systems. Bell, D; Grimson J. Addison Wesley, 1992.Principles of Distributed Database Systems. Özsu, T; Valduriez, P. Prentice Hall, 1991.Managing Distributed Databases. Burleson, D. Wiley, 1994.


Recommended