usando mediadores para integração de múltiplas bases de dados bernadette farias lóscio di - ufpe
TRANSCRIPT
Usando Mediadores para Integração de Múltiplas Bases de
Dados
Bernadette Farias Lóscio
DI - UFPE
Plano de Aula
• Motivação• Arquitetura de Mediadores• Projeto de Mediadores
– Integração do Esquema do Mediador
– Especificação do Mediador
• Exemplo• Conclusões
Integração de Múltiplas Bases de Dados
• Tendência da descentralização • Cooperação intersistemas• Grande quantidade de dados disponíveis• Avanços tecnológicos na comunicação de dados
Integração de Múltiplas Bases de Dados
• Principal Problema: – Heterogeneidade - os sistemas tem sido desenvolvidos
usando diferentes especificações e modelo de dados
• Solução:– Desenvolver meios para prover acesso integrado e
transparente aos dados, além de melhorar o acesso e a qualidade da informações
Arquitetura de Mediadores
Nível de Aplicação
Mediador 1 Mediador 2Nível de Mediação
Tradutor 1 Tradutor 2 Tradutor 3Nível de Dados
Base de Dados 1Base de Dados 1 Base de Dados 2Base de Dados 2 Base de Dados 3Base de Dados 3
Mediadores
MEDIADORMEDIADOR
BD1
BD2
BD3
Exploram o conhecimento representado em um conjunto ou subconjunto de dados
Geram informações para aplicações residentes em uma camada superior
Consultas e Atualizações através de Mediadores
1. 1. As consultas são submetidas ao sistema, via mediador, e este as transforma em subconsultas a
serem enviadas às bases de dados.
1. 1. As consultas são submetidas ao sistema, via mediador, e este as transforma em subconsultas a
serem enviadas às bases de dados.
2.2. As subconsultas geradas pelo mediador devem ser traduzidas para linguagens de consultas de cada SGBD componente.
2.2. As subconsultas geradas pelo mediador devem ser traduzidas para linguagens de consultas de cada SGBD componente.
3.3. Os resultados das consultas são traduzidos e a resposta é devolvida ao usuário.
3.3. Os resultados das consultas são traduzidos e a resposta é devolvida ao usuário.
Exemplo 1
EMP_RIOEMP_RIO
sal1sal1 nome1nome1 tel1tel1
BD1BD1:: EMP_FOREMP_FOR
sal2sal2 nome2nome2 email2email2
BD2BD2::
EMP_MEMP_M
salsal nomenome teltel
locallocalMEDMED::
Esquemas Locais:Esquemas Locais:
Esquema do mediador:Esquema do mediador:
emailemail
Recupere todos os dados do Recupere todos os dados do empregado chamado Robertoempregado chamado RobertoRecupere todos os dados do Recupere todos os dados do
empregado chamado Robertoempregado chamado Roberto
Exemplo 1
MediadorMediadorAplicaçãoAplicação
Exemplo 1 - Execução da Consulta
MedMed
Tradutor1Tradutor1 Tradutor2Tradutor2
Emp_RioEmp_Rio Emp_ForEmp_For
CC: select nome, tel, sal, local, email: select nome, tel, sal, local, email from EMP_Mfrom EMP_M where nome = “Roberto”where nome = “Roberto”
C1C1: select nome1, tel1, sal1: select nome1, tel1, sal1 from EMP_RIOfrom EMP_RIO where nome = “Roberto”where nome = “Roberto”
C1C1
C2C2: select nome2, tel2, sal2: select nome2, tel2, sal2 from EMP_FORfrom EMP_FOR where nome = “Roberto”where nome = “Roberto”
C2C2
Exemplo 1 - Resultado da Consulta
MedMed
Tradutor1Tradutor1 Tradutor2Tradutor2
Emp_RioEmp_Rio Emp_ForEmp_For
CC: select nome, tel, sal, local, email: select nome, tel, sal, local, email from EMP_Mfrom EMP_M where nome = “Roberto”where nome = “Roberto”
nome1 = “Roberto”nome1 = “Roberto”sal = 1000sal = 1000tel = 221.2233tel = 221.2233
nome1 = “Roberto”nome1 = “Roberto”sal = 1000sal = 1000tel = 221.2233tel = 221.2233
nome1 = “Roberto”nome1 = “Roberto”sal = 1000sal = 1000tel = 221.2233tel = 221.2233local = riolocal = rioemail = nullemail = null
Exemplo 2
EMP_PROJ1EMP_PROJ1
sal1sal1 nome1nome1 tel1tel1
BD3BD3:: EMP_PROJ2EMP_PROJ2
sal2sal2 nome2nome2 email2email2
BD4BD4::
EMP_M1EMP_M1
salsal nomenome teltel
locallocalMED1MED1::
Esquemas Locais:Esquemas Locais:
Esquema do mediador:Esquema do mediador:
emailemail
Recupere o salário do empregado Recupere o salário do empregado chamado Robertochamado Roberto
Exemplo 2
MediadorMediadorAplicaçãoAplicação
Exemplo 2 - Execução da Consulta
Med1Med1
Tradutor3Tradutor3 Tradutor4Tradutor4
Emp_Proj1Emp_Proj1 Emp_Proj2Emp_Proj2
CC: select nome, sal: select nome, sal from EMP_M1from EMP_M1 where nome = “Roberto”where nome = “Roberto”
C1C1: select nome1, sal1: select nome1, sal1 from EMP_PROJ1from EMP_PROJ1 where nome = “Roberto”where nome = “Roberto”
C1C1
C2C2: select nome2, sal2: select nome2, sal2 from EMP_PROJ2from EMP_PROJ2 where nome = “Roberto”where nome = “Roberto”
C2C2
Exemplo 2 - Resultado da Consulta
MedMed
Tradutor3Tradutor3 Tradutor4Tradutor4
Emp_RioEmp_Rio Emp_ForEmp_For
CC: select nome, sal: select nome, sal from EMP_M1from EMP_M1 where nome = “Roberto”where nome = “Roberto”
nome1 = “Roberto”nome1 = “Roberto”sal1 = R$ 1000,00sal1 = R$ 1000,00
nome1 = “Roberto”nome1 = “Roberto”sal1 = R$ 1000,00sal1 = R$ 1000,00
nome2 = “Roberto”nome2 = “Roberto”sal2 = R$ 5000,00sal2 = R$ 5000,00
nome2 = “Roberto”nome2 = “Roberto”sal2 = R$ 5000,00sal2 = R$ 5000,00
nome = “Roberto”nome = “Roberto”sal = R$ 6000,00sal = R$ 6000,00
Modelo de Modelo de dados comumdados comum
Linguagem de Linguagem de consultas comumconsultas comum
Ferramentas Ferramentas p/ criação de p/ criação de mediadoresmediadores
11 2233
Suporte para arquitetura de mediadores
Requisitos dos Requisitos dos UsuáriosUsuários
Definição do Esquema Definição do Esquema do Mediadordo Mediador Esquema do MediadorEsquema do MediadorEsquema do MediadorEsquema do Mediador
Integração do Esquema Integração do Esquema do Mediadordo Mediador Assertivas do mediadorAssertivas do mediadorAssertivas do mediadorAssertivas do mediador
Especificação Especificação do Mediadordo Mediador
Mapeador de Estados eMapeador de Estados eMapeador de AtualizaçõesMapeador de Atualizações
Mapeador de Estados eMapeador de Estados eMapeador de AtualizaçõesMapeador de Atualizações
Projeto de Mediadores
Assertivas de Assertivas de
Correspondência Correspondência
do Mediadordo Mediador
Integração do Esquema Integração do Esquema do Mediadordo Mediador
Esquema doEsquema doMediadorMediador
Esquemas Esquemas LocaisLocais
Integração do Esquema do Mediador
Integração do Esquema do Mediador
Assertivas de Correspondência
• Assertivas de Correspondência de Tipos• Assertivas de Correspondência de Atributos• Assertivas de Correspondência de Caminhos
1. Assertiva de Correspondência de Tipos1. Assertiva de Correspondência de Tipos
EMPREGADOEMPREGADO EMPEMP
2. Assertiva de Correspondência de Atributos2. Assertiva de Correspondência de Atributos
nome1 nome1 nome2nome2
3. Assertiva de Correspondência de Caminhos3. Assertiva de Correspondência de Caminhos
EMP-R1-DEPTO-R2-GER-nger1 EMP-R1-DEPTO-R2-GER-nger1 EMP_RIO-nger2EMP_RIO-nger2
Integração do Esquema do Mediador
S1:
nome1 nger1tel1 #depto1 data1
EMP DEPTO GERR1 R2
S2:
nome2
sal2
tel2
EMPREGADOnger2
Assertivas de Correspondência
1. Assertiva de Dependência Existencial:1. Assertiva de Dependência Existencial:
POSSUI [PC-P1-cpf1, PC-C1-lic1] POSSUI [PC-P1-cpf1, PC-C1-lic1] PROPRIETÁRIO [P2-cpf2, P2-lic2]PROPRIETÁRIO [P2-cpf2, P2-lic2]
(Um tipo de entidade é modelado como um tipo de relacionamento)
(P2) PROPRIETÁRIO
cpf2 lic2
S2:
cpf1 lic1
(P1) PESSOA (C1) CARRO(PC)POSSUIS1:
Assertiva de Dependência Existencial
Integração do Esquema do Mediador
Requisitos dos Requisitos dos UsuáriosUsuários
Definição do Esquema Definição do Esquema do Mediadordo Mediador Esquema do MediadorEsquema do MediadorEsquema do MediadorEsquema do Mediador
Integração do Esquema Integração do Esquema do Mediadordo Mediador Assertivas do mediadorAssertivas do mediadorAssertivas do mediadorAssertivas do mediador
Especificação Especificação do Mediadordo Mediador
Mapeador de Estados eMapeador de Estados eMapeador de AtualizaçõesMapeador de Atualizações
Mapeador de Estados eMapeador de Estados eMapeador de AtualizaçõesMapeador de Atualizações
Projeto de Mediadores
Mapeador de Estados
Estado do Mediador
DM = ({DS1,...,DSn})
Estados dos Esquemas Locais
M{DS1,...,DSn}
M : mapeador de estados do mediador
Especificação do Mediador
Mapeador de Atualizações
{D’S1,...,D’Sn}
DM = (M{DS1,...,DSn}){DS1,...,DSn}M
S1(u) Sn(u)M
D’M = (M{D’S1,...,D’Sn})M
u
M : mapeador de estados do mediador
M : mapeador de atualizações do mediador
Especificação do Mediador
Mapeador de Atualizações = Conjunto de Tradutores
Definindo Tradutores
TRADUTORTRADUTORTradução
(Seqüência de Atualizações)
Pedido de Atualização
Processo de Definição de um Tradutor:
1. Determinar as ACs relevantes para a Operação de Atualização
2. Determinar a ação requerida para a preservação de cada AC
Especificação do Mediador
S2:
nome2
sal2
tel2
EMP_RIO
S1:
nome1 nger1tel1 #depto1
EMP DEPTO GERR1 R2
S3:
email3nome3
sal3EMP_FOR
Exemplo
nome tel sal
Exemplo
localemail
nger EMP_M
Esquema de
med
Passo 1: Definição do Esquema do Mediador
AC5: EMP_M EMP
AC6: EMP_M Gen(EMP_RIO , EMP_FOR)
AC7: EMP_RIO EMP_M [local = ‘rio’]
AC8: EMP_FOR EMP_M[local = ‘for’]
Assertivas de Correspondência de Tipos
Exemplo
Passo 2: Integração do Esquema do Mediador
AC9: nome nome1
AC10: nome nome2
AC11: nome nome3
AC12: tel tel1
AC13: tel tel2
AC14: sal sal2
AC15: sal sal3
AC16: local [EMP_RIO :’rio’;EMP_FOR:’for’]
AC17: email email3
Exemplo - Passo 2
Assertivas de Correspondência de Atributos
AC18: EMP_M-nger EMP-R1-DEPTO-R2-GER-nger1
Exemplo - Passo 2
Assertivas de Correspondência de Caminhos
S1:
nome1 nger1tel1 #depto1
EMP DEPTO GERR1 R2
nome tel sal
localemail
nger EMP_MSmed:
Regra 1:
<EMP_M {<nome N><tel T><sal S><nger G><email ‘null’><local ‘rio’}>
:- <EMP {<nome1 N> <tel1 T> <EMP-R1-DEPTO-R2-GER-nger1 G>}>
and
<EMP_RIO {<nome2 N> <tel2 T> <sal2 S>}>
Exemplo
Passo 3: Especificação do Mediador (Mapeador de Estados)
Regra 2:
<EMP_M {<nome N><tel T><sal S><nger G><email ‘null’><local ‘for’}>
:- <EMP {<nome1 N> <tel1 T> <EMP-R1-DEPTO-R2-GER-nger1 G>}>
and
<EMP_RIO {<nome3 N> <tel3 T> <sal3 S>}>
Passo 3: Especificação do Mediador (Mapeador de Atualizações)
3. Tradutor “Modifica_nger “:/*Ação Requerida para preservação de AC18*/
Se existir
(i) e’ EMP tal que e’ e
(ii) d DEPTO tal que d. (DEPTO.R2.GER-nger1) = ‘v’
(iii) r R1 tal que e.(EMP-R1) = r
Então { r .(R1-DEPTO) := d}
Exemplo - Passo 3
nome1 nger1tel1 #depto1 data1
EMP DEPTO GERR1 R2 local
nome tel
sal
nger EMP_M
SS11SSmedmed
1. Atualização: u = {e.nger := ‘v’} /*e = (nome:‘joão’, tel:‘223.9675’, ...., nger:‘pedro’)*/
2. AC Relevante: EMP_M-nger EMP-R1-DEPTO-R2-GER-nger1
Vantagens da Metodologia• Uso de assertivas de correspondência para especificar
formalmente o relacionamento entre esquemas.
• Algoritmos para geração automática dos mapeadores de estados e tradutores de atualização do mediador.
• A metodologia proposta também se aplica ao problema de TAV (Tradução de Atualização de Visões)
Conclusões
• Mediadores são indicados quando:– As informações mudam rapidamente– Os usuários necessitam de informações imprevistas– Aplicações necessitam que o estado da informação seja o mais
atualizado
• Problemas com o uso de mediadores:– Processamento de consultas é ineficiente quando:
• Consultas são emitidas várias vezes• F.I. São lentas, caras ou não estão disponíveis
– Os passos de filtragem, tradução e consultas podem exigir alto custo de processamento
Referências
• [Chawathe94] Chawathe, S., Garcia Molina, H., Hammer, J. “The TSIMMIS Project: Integration of Heterogeneous Information Sources”, IPSJ’94.
• [Lóscio98] Lóscio, B.F., “Atualização de Múltiplas Bases de Dados através de Mediadores”, Dissertação de Mestrado, Universidade Federal do Ceará, Mar.1998.
• [Vidal97] Vidal, V. M. P., Lóscio, B.F., “Especificação de Mediadores para Acesso e Atualização de Múltiplas Bases de Dados”, XII Simpósio Brasileiro de Banco de Dados, Fortaleza, Ceará, Out.1997.
• [Wiederhold92] Widerhold, G., “Mediators in the Architecture of Future Information Systems”, IEEE Computer, pp.38-49, Mar. 1992.
• Projeto TSIMMIS - www-db.stanford.edu