350 likes | 482 Views
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.
E N D
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
Solução: • Desenvolver meios para prover acesso integrado e transparente aos dados, além de melhorar o acesso e a qualidade da informações Integração de Múltiplas Bases de Dados • Principal Problema: • Heterogeneidade - os sistemas tem sido desenvolvidos usando diferentes especificações e modelo de dados
Nível de Aplicação Nível de Mediação Mediador 1 Mediador 2 Tradutor 1 Tradutor 2 Tradutor 3 Nível de Dados Base de Dados 1 Base de Dados 2 Base de Dados 3 Arquitetura de Mediadores
Geram informações para aplicações residentes em uma camada superior • Exploram o conhecimento representado em um conjunto ou subconjunto de dados BD1 BD2 BD3 Mediadores MEDIADOR
Consultas e Atualizações através de Mediadores 1. As consultas são submetidas ao sistema, via mediador, e este as transforma em subconsultas a serem enviadas às bases de dados. 2. As subconsultas geradas pelo mediador devem ser traduzidas para linguagens de consultas de cada SGBD componente. 3. Os resultados das consultas são traduzidos e a resposta é devolvida ao usuário.
EMP_FOR EMP_RIO BD1: BD2: sal2 nome2 email2 sal1 nome1 tel1 local email sal nome tel Exemplo 1 Esquemas Locais: Esquema do mediador: EMP_M MED:
Exemplo 1 Recupere todos os dados do empregado chamado Roberto Aplicação Mediador
C1: select nome1, tel1, sal1 from EMP_RIO where nome = “Roberto” C2: select nome2, tel2, sal2 from EMP_FOR where nome = “Roberto” C2 C1 Emp_For Emp_Rio Exemplo 1 - Execução da Consulta C: select nome, tel, sal, local, email from EMP_M where nome = “Roberto” Med Tradutor1 Tradutor2
nome1 = “Roberto” sal = 1000 tel = 221.2233 nome1 = “Roberto” sal = 1000 tel = 221.2233 Emp_For Emp_Rio Exemplo 1 - Resultado da Consulta C: select nome, tel, sal, local, email from EMP_M where nome = “Roberto” nome1 = “Roberto” sal = 1000 tel = 221.2233 local = rio email = null Med Tradutor1 Tradutor2
EMP_PROJ2 EMP_PROJ1 BD3: BD4: sal2 nome2 email2 sal1 nome1 tel1 local email sal nome tel Exemplo 2 Esquemas Locais: Esquema do mediador: EMP_M1 MED1:
Exemplo 2 Recupere o salário do empregado chamado Roberto Aplicação Mediador
C1: select nome1, sal1 from EMP_PROJ1 where nome = “Roberto” C2: select nome2, sal2 from EMP_PROJ2 where nome = “Roberto” C2 C1 Emp_Proj2 Emp_Proj1 Exemplo 2 - Execução da Consulta C: select nome, sal from EMP_M1 where nome = “Roberto” Med1 Tradutor3 Tradutor4
nome2 = “Roberto” sal2 = R$ 5000,00 nome1 = “Roberto” sal1 = R$ 1000,00 nome2 = “Roberto” sal2 = R$ 5000,00 nome1 = “Roberto” sal1 = R$ 1000,00 Emp_For Emp_Rio Exemplo 2 - Resultado da Consulta C: select nome, sal from EMP_M1 where nome = “Roberto” nome = “Roberto” sal = R$ 6000,00 Med Tradutor3 Tradutor4
Modelo de dados comum Linguagem de consultas comum Ferramentas p/ criação de mediadores Suporte para arquitetura de mediadores 1 2 3
Requisitos dos Usuários Definição do Esquema do Mediador Integração do Esquema do Mediador Projeto de Mediadores Esquema do Mediador Assertivas do mediador Mapeador de Estados e Mapeador de Atualizações Especificação do Mediador
Integração do Esquema do Mediador Esquema do Mediador Esquemas Locais • Integração do Esquema • do Mediador Assertivas de Correspondência 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
R1 R2 EMP DEPTO GER S1: nome1 tel1 #depto1 nger1 data1 S2: sal2 EMPREGADO nger2 nome2 tel2 Integração do Esquema do Mediador Assertivas de Correspondência • 1. Assertiva de Correspondência de Tipos • EMPREGADOº EMP • 2. Assertiva de Correspondência de Atributos • nome1 º nome2 • 3. Assertiva de Correspondência de Caminhos • EMP-R1-DEPTO-R2-GER-nger1 ºEMP_RIO-nger2
(PC)POSSUI S1: (C1) CARRO (P1) PESSOA lic1 cpf1 (P2) PROPRIETÁRIO S2: cpf2 lic2 Integração do Esquema do Mediador Assertiva de Dependência Existencial 1. Assertiva de Dependência Existencial: POSSUI [PC-P1-cpf1, PC-C1-lic1] Í PROPRIETÁRIO [P2-cpf2, P2-lic2] (Um tipo de entidade é modelado como um tipo de relacionamento)
Requisitos dos Usuários Definição do Esquema do Mediador Integração do Esquema do Mediador Projeto de Mediadores Esquema do Mediador Assertivas do mediador Mapeador de Estados e Mapeador de Atualizações Especificação do Mediador
s Estados dos Esquemas Locais Estado do Mediador M {DS1,...,DSn} DM = sM({DS1,...,DSn}) Especificação do Mediador Mapeador de Estados sM : mapeador de estados do mediador
sM {DS1,...,DSn} DM = (sM{DS1,...,DSn}) tM tS1(u) tSn(u) u sM D’M = (sM{D’S1,...,D’Sn}) Especificação do Mediador Mapeador de Atualizações {D’S1,...,D’Sn} sM : mapeador de estados do mediador tM : mapeador de atualizações do mediador Mapeador de Atualizações = Conjunto de Tradutores
Tradução (Seqüência de Atualizações) Pedido de Atualização Especificação do Mediador Definindo Tradutores TRADUTOR • 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
EMP_RIO sal2 nome2 tel2 Exemplo R1 R2 EMP DEPTO GER S1: nome1 tel1 #depto1 nger1 S2: S3: EMP_FOR sal3 nome3 email3
Exemplo Passo 1: Definição do Esquema do Mediador Esquema de med email EMP_M nger local nome tel sal
Exemplo Passo 2: Integração do Esquema do Mediador Assertivas de Correspondência de Tipos 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’]
Exemplo - Passo 2 Assertivas de Correspondência de Atributos 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 Caminhos AC18: EMP_M-nger º EMP-R1-DEPTO-R2-GER-nger1 R1 R2 EMP DEPTO GER S1: nome1 tel1 #depto1 nger1 Smed: email EMP_M nger local nome tel sal
Exemplo Passo 3: Especificação do Mediador (Mapeador de Estados) 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>}> 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>}>
Exemplo - Passo 3 Smed S1 R1 R2 EMP DEPTO GER email EMP_M nger local nome1 tel1 #depto1 nger1 data1 nome tel sal Passo 3: Especificação do Mediador (Mapeador de Atualizações) 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 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}
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”, XIISimpó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