ATUALIZANDO BANCO DE DADOS OBJETO RELACIONAL ATRAVÉS DE VISÕES XML Mestrando: Wamberg Gláucon Chaves de Oliveira Orientadora: Profa. Dra. Vânia Maria Ponte Vidal Universidade Federal do Ceará Departamento de Computação Campus do Pici-Bloco: 910 60455-760 Fortaleza-CE-Brasil e-mail:{wamberg, vvidal}@lia.ufc.br Resumo O modelo XML (extended Markup Language) [1] vem se tornando um padrão para troca e integração de dados na WEB. Isto cria a necessidade de publicar dados, os quais estão armazenados em bases convencionais, no formato XML. A publicação desses dados é feita através do uso de visões XML. Atualmente, diversos sistemas têm proposto soluções para consultar bases de dados convencionais utilizando visões XML. Entretanto, com o intuito de tornar XML um padrão completo para representação de dados e compartilhamento de informações, deve ser possível não somente consultar, mas também atualizar estas bases de dados através de visões XML. Neste trabalho abordamos o problema de atualização de banco de dados objeto-relacional (BDOR) através de visões XML. Uma atualização da visão é simplesmente uma atualização que é especificada em uma visão XML, mas que deve ser traduzida em atualizações a serem executadas na base de dados. O problema de tradução de atualização da visão XML refere-se à questão de definir traduções corretas para atualizações submetidas através de visões XML. No enfoque proposto, utilizamos visões de objetos como interface entre a visão XML e as tabelas relacionais ou objetos relacionais do Banco de Dados. Palavras-chave: XML, Visão, Atualização, Objeto-Relacional. 1. Introdução Desde seu surgimento, XML vem rapidamente emergindo como padrão para publicação e integração de dados na Web. De forma que, muitos sistemas de integração de dados têm usado XML como modelo de dados comum para representar o conteúdo e a estrutura das fontes de informação. Além do mais, como a maioria dos dados está armazenada em bases de dados convencionais, isto cria a necessidade de publicar esses dados corporativos no formato XML. Uma forma geral de publicar esses dados é feita através do uso de visões XML. 107
Nas aplicações baseadas em XML, consultas são submetidas às visões XML e traduzidas em consultas nas bases de dados. Entretanto, a maioria das aplicações proposta não efetua atualizações sobre visões XML. Objetivando tornar XML um padrão completo para representação de dados, compartilhamento e integração de informações, deve-se permitir não somente consultar, mas também possibilitar que usuários e componentes de aplicações atualizem estas bases de dados através de visões XML. Na arquitetura de três níveis de esquemas, as visões constituem esquemas externos que permitem ao usuário ignorar dados que não são relevantes as suas aplicações. Como uma visão é apenas uma interface através da qual os usuários acessam e atualizam o banco de dados, qualquer atualização especificada na visão deve ser traduzida em atualizações a serem executadas no banco de dados. O problema de atualização de BDOR através de visões XML é bem mais complexo que o relacional, pois, além de estruturas relacionais, o modelo objeto-relacional permite o uso de tabela de objetos, os quais possuem estruturas complexas, como atributos multivalorados (tabelas aninhadas), atributos estruturados e de referência. No nosso trabalho, propomos um framework para atualização de banco de dados objeto-relacional (BDOR) através de visões XML que utiliza visões de objetos como interface entre a visão XML e o Banco de Dados. O nosso trabalho está estruturado da seguinte forma. Na seção 2, relatamos alguns trabalhos relacionados. Na seção 3, apresentamos nosso enfoque para atualização de bases objetorelacional através de visões XML, bem como mostramos um exemplo do seu funcionamento. Finalmente na seção 4, apresentamos as contribuições e resultados esperados. 2. Trabalhos relacionados Na literatura, diversos enfoques para construir visões XML de bases convencionais têm sido propostos. Muitos deles [2,3,4] focam o problema de construir visões somente para consultar dados das bases de dados. Outros [5,6,7,8] também provêem a construção de visões XML que atualizam as bases de dados. Entretanto, todos estes enfoques limitam-se somente ao escopo de banco de dados relacionais, bem como as operações de atualização são bastante limitadas. O banco de dados Oracle 9i[9] possui ferramentas que possibilita a construção de visões XML que atualizam tanto bases relacionais como objetos-relacionais, porém é necessário saber como está representado o esquema do banco de dados, assim como a visão XML deve permanecer em um formato canônico definido pela Oracle. Portanto, apesar do grande número de pesquisas que focam o problema de construir visões XML que atualizem bases de dados convencionais, esse problema ainda não foi resolvido satisfatoriamente. 3. Framework para atualização do banco OR através de visão XML O framework proposto utiliza uma arquitetura de três níveis de esquema para atualizar as tabelas do banco de dados através de visões XML (Figura 1). No nosso enfoque, o processo de tradução é realizado em dois passos: 108
Visão XML XML Schema XQUERY SQL (1) Visão de Objeto Default EsquemadaVisão INSTEAD OF Trigger BD (2) Figura1 Framework de atualização de BDOR através de visão XML No passo (1), as atualizações Xquery [2] submetidas a uma visão XML são traduzidas em atualizações SQL na visão de objeto default (VOD), que é uma visão de objeto que possui estrutura compatível com a estrutura da visão XML. Assim, a tradução de atualizações na visão XML em atualizações na visão de objetos torna-se trivial. No passo (2), as atualizações na visão de objeto default são por sua vez traduzidas, pelos INSTEAD of triggers, em atualizações no banco de dados. Estamos desenvolvendo os algoritmos que geram automaticamente os INSTEAD of triggers da visão de objetos default a partir das assertivas de correspondências (ACs) 1 do esquema da visão de objeto default com esquema do banco de dados. 3.1 Exemplo Nesta seção utilizamos um exemplo para descrever cada passo do processo de tradução de atualizações em visões XML. Suponha o esquema do BD apresentado na figura 2 e que desejamos publicar os dados desse banco através da visão XML V, cuja estrutura dos elementos (tipos) está representada na figura 3. Por limitação de espaço, os tipos dos elementos complexos do XML Schema são indicados entre parênteses. Por exemplo, Tlivro é o tipo complexo do elemento livro. Livros_R ISBN x x x x x x x x Titulo x x x x Autores_R Nome ISBN (FK) Endereco Figura 2 Esquema do BD Livraria Figura 3 Esquema XML da visão V 1 ACs são tipos especiais de restrição de integridade utilizadas para estabelecer a correspondência entre componentes de esquemas [10]. 109
Figura 4 mostra o esquema da visão de objetos default Livros_V correspondente ao esquema da visão V. <<object view>> Livros_V <<object type>> Livro_Ty ISBN Titulo Autores <<nested table>> List_Autor_Ty <<object type>> Autor_Ty nome endereço Figura 4 - Esquema da visão de objetos default Livros_V Considere o seguinte pedido de atualização na visão V definido na Figura 5. O tradutor transforma a atualização XQuery em uma atualização SQL na visão de objeto default Livros_V mostrado na Figura 6. O processo de tradução de Xquery para SQL é facilitado, pois utilizamos a visão de objetos default Livros_V que possui a mesma estrutura da visão XML V. LET $as :=document("$vx")/livros/livro[isbn="4321"]/autores UPDATE $as INSERT <autor> <nome>oliveira</nome> <endereço>ceará<endereço> </autor> Figura 5 - Atualização Xquery Insert into (select A.* from livros_v L, Table (L.autores) A where L.ISBN= 4321 ) Values (autor_ty ( Oliveira, Ceara )); Figura 6 - Atualização na V.O.D A atualização na visão de objetos Livros_V é processada utilizando o INSTEAD of triggers apresentado na Figura 8, que traduz a operação de inserção na nested table autores da visão Livros_V. CREATE OR REPLACE TRIGGER Insere_autores INSTEAD OF INSERT ON NESTED TABLE autores OF livros_v REFERENCING NEW AS autore PARENT AS livro FOR EACH ROW BEGIN INSERT INTO autores_r VALUES (:livro.isbn, :autore.nome, :autore.endereco); END; Figura 8 - Tradutor para inserção de autores em Livros_V 4. Contribuições e Resultados Esperados As principais contribuições e resultados esperados são: a. Desenvolvimento de um middleware que implemente o processo de tradução de atualizações (Xquery) na visão XML em atualizações na visão de objeto default 110
utilizando o enfoque apresentado. Atualmente estamos desenvolvendo o algoritmo para a tradução de atualizações XQuery na visão XML em atualizações SQL na visão de objeto default. Como mostrado no exemplo, uma vantagem do nosso enfoque é que este processo de tradução é simplificado, tendo em vista que a estrutura da visão de objetos default é compatível com a estrutura da visão XML; b. Desenvolvimento da ferramenta para geração dos tradutores de atualizações definidas na visão de objeto para atualizações nas tabelas do banco de dados.os tradutores gerados ficam armazenados no banco de dados na forma de INSTEAD of triggers. Nesse contexto, já iniciamos o desenvolvimento da ferramenta proposta. Outra vantagem do nosso framework é que aumenta o grau de independência lógica, uma vez que alterações no esquema do BD não implicam em alterações na definição da visão XML, sendo somente refletida na visão de objetos default. Assim, no caso de evolução do BD, somente os INSTEAD of triggers da visão de objetos default serão redefinidos. É importante notar que nossa proposta não se restringe necessariamente ao uso de visões de objetos, podendo-se utilizar stored procedure como alternativa para a tradução de atualização na visão XML em atualizações nas tabelas do banco de dados. Referência bibliográfica [1] World Wide Web Consortium, Extensible Markup Language (XML) Version 1.0, W3C Recommendation, 1999. [2] Tatarinovi, I.; Ives, Z.G.; Halevy, A.Y.; Weld, D.S. "Updating XML". In Proceedings of SIGMOD 2001, Maio de 2001. [3] Carey, M. et al. Xperanto: Publishing object-relational data as XML. In Third International Workshop on the Web and Databases, Dallas, Texas, May 2000. [4] Fernández, M. et al. Silkroute: Trading between relations and XML. In Proceedings of the Ninth International World Wide Web Conference, 2000. [5] Tufte, K. et al. Efficiently publishing relational data as XML documents. VLDB Conference, September 2000. [6] Braganholo, V.; Heuser, C.; Vittori, C. Updating Relational Databases through XML Views. In: IIIWAS 2001, Linz, Austria, 2001. [7] IBM. XML Extender Administration and Programming, 2000. [8] Trupin, J. SQL server 2000: New XML features streamline web-centric app development. Msdn Magazine. [9] Oracle XML SQL utility for java. Oracle Corporation, 2001. http://technet.oracle.com/tech/xml/oracle_xsu [10] Lóscio, B. Farias. Atualização de múltiplas bases de dados através de mediadores. Dissertação de Mestrado, Universidade Federal do Ceará, 1998. 111