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 Nível de Mediação Mediador 1 Tradutor 1 Mediador 2 Tradutor 2 Tradutor 3 Nível de Dados Base de Dados 1 Base de Dados 2 Base de Dados 3 Mediadores Exploram o conhecimento representado em um conjunto ou subconjunto de dados MEDIADOR BD2 BD1 BD3 Geram informações para aplicações residentes em uma camada superior 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. Exemplo 1 Esquemas Locais: BD1: EMP_FOR BD2: EMP_RIO sal2 nome2 email2 sal1 nome1 tel1 Esquema do mediador: local email EMP_M MED: sal nome tel Exemplo 1 Recupere todos os dados do empregado chamado Roberto Aplicação Mediador Exemplo 1 - Execução da Consulta C: select nome, tel, sal, local, email from EMP_M where nome = “Roberto” Med C1: select nome1, tel1, sal1 from EMP_RIO where nome = “Roberto” Tradutor1 C1 Emp_Rio C2: select nome2, tel2, sal2 from EMP_FOR where nome = “Roberto” Tradutor2 C2 Emp_For Exemplo 1 - Resultado da Consulta C: select nome, tel, sal, local, email from EMP_M where nome = “Roberto” Med nome1 = “Roberto” sal = 1000 tel = 221.2233 local = rio email = null nome1 = “Roberto” sal = 1000 tel = 221.2233 Tradutor1 Tradutor2 nome1 = “Roberto” sal = 1000 tel = 221.2233 Emp_Rio Emp_For Exemplo 2 Esquemas Locais: BD3: BD4: EMP_PROJ1 EMP_PROJ2 sal2 nome2 email2 sal1 nome1 tel1 Esquema do mediador: MED1: sal local email EMP_M1 nome tel Exemplo 2 Recupere o salário do empregado chamado Roberto Aplicação Mediador Exemplo 2 - Execução da Consulta C: select nome, sal from EMP_M1 where nome = “Roberto” Med1 C1: select nome1, sal1 from EMP_PROJ1 where nome = “Roberto” Tradutor3 C1 Emp_Proj1 C2: select nome2, sal2 from EMP_PROJ2 where nome = “Roberto” Tradutor4 C2 Emp_Proj2 Exemplo 2 - Resultado da Consulta C: select nome, sal nome = “Roberto” sal = R$ 6000,00 from EMP_M1 where nome = “Roberto” Med nome1 = “Roberto” sal1 = R$ 1000,00 Tradutor3 nome1 = “Roberto” sal1 = R$ 1000,00 Emp_Rio nome2 = “Roberto” sal2 = R$ 5000,00 Tradutor4 nome2 = “Roberto” sal2 = R$ 5000,00 Emp_For Suporte para arquitetura de mediadores Modelo de dados comum 1 3 2 Ferramentas p/ criação de mediadores Linguagem de consultas comum Requisitos dos Usuários Projeto de Mediadores Definição do Esquema do Mediador Esquema do Mediador Integração do Esquema do Mediador Assertivas do mediador Especificação do Mediador Mapeador de Estados e Mapeador de Atualizações 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 Integração do Esquema do Mediador Assertivas de Correspondência S 1: EMP R1 nome1 tel1 S2: EMPREGADO nome2 DEPTO R2 GER #depto1 data1 nger1 sal2 nger2 tel2 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 Integração do Esquema do Mediador Assertiva de Dependência Existencial S1: (P1) PESSOA (PC)POSSUI (C1) CARRO lic1 cpf1 S2: (P2) PROPRIETÁRIO cpf2 lic2 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 Projeto de Mediadores Definição do Esquema do Mediador Esquema do Mediador Integração do Esquema do Mediador Assertivas do mediador Especificação do Mediador Mapeador de Estados e Mapeador de Atualizações Especificação do Mediador Mapeador de Estados Estados dos Esquemas Locais {DS1,...,DSn} sM Estado do Mediador DM = sM ({DS1,...,DSn}) sM : mapeador de estados do mediador Especificação do Mediador Mapeador de Atualizações {DS1,...,DSn} tS1(u) tSn(u) {D’S1,...,D’Sn} sM tM sM DM = (sM{DS1,...,DSn}) u D’M = (sM{D’S1,...,D’Sn}) sM : mapeador de estados do mediador tM : mapeador de atualizações do mediador Mapeador de Atualizações = Conjunto de Tradutores Especificação do Mediador Definindo Tradutores Pedido de Atualização TRADUTOR Tradução (Seqüência de Atualizações) 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 Exemplo S1: EMP DEPTO R1 nome1 tel1 S2: EMP_RIO nome2 S3: sal2 tel2 EMP_FOR nome3 #depto1 email3 sal3 R2 GER nger1 Exemplo Passo 1: Definição do Esquema do Mediador Esquema de med nger EMP_M nome tel sal email local 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 S1: EMP R1 nome1 tel1 Smed: nger DEPTO #depto1 EMP_M nome tel sal email local R2 GER nger1 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 Passo 3: Especificação do Mediador (Mapeador de Atualizações) Smed nger S1 EMP_M nome tel sal email local EMP nome1 R1 tel1 DEPTO #depto1 R2 GER data1 nger1 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”, 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