Armazenamento de Dados XML em SGBDs Fernanda Baião fernanda.baiao@uniriotec.br Apresentação baseada no material de Humberto José Vieira Junior e Gabriela Ruberg 2006 1 Agenda Introdução Armazenamento de Documentos XML Mapeamento relacional Mapeamento OO Transformação XQuery SQL3 Análise Comparativa Exercício XVerter 2 1
Motivação Documentos XML como troca de informação Armazenamento Arquivos texto SGBDs (Nativos, Relacionais ou baseados em Objetos) Consulta aos dados Conhecimento das linguagens de consulta Conhecimento da estrutura de armazenamento 3 Cenário Analisar estratégias para o armazenamento de documentos XML em SGBDs com pouca ou nenhuma perda semântica Dados estruturados e semi-estruturados em um mesmo sistema Analisar a reconstrução de documentos XML Analisar impactos para o processamento de consultas XQuery em SGBDs 4 2
Referências CHAUDHURI, S. SHIM K. Storage and Retrieval of XML Data using Relational Databases, Tutorial, VLDB 01. Também em ICDE 2003 Ronald Bourret, Native XML Databases, http://www.rpbourret.com/xml/prodsnative.htm Sun Developer Network, Java Architecture for XML Binding (JAXB), http://java.sun.com/webservices/jaxb Vieira, H. XVerter: Armazenamento e Consulta de Dados XML em SGBDs Tese de Mestrado, COPPE/UFRJ, dezembro 2002. Vieira, H., Ruberg, G., Mattoso, M., 2002, "XVerter: Armazenamento e Consulta de Dados XML em SGBDs". In: XVII Simpósio Brasileiro de Banco de Dados (SBBD'2002), pp. 224-238, Gramado, Brasil. 5 Referências FEGARAS, L.,ELMASRI, R., 2001, "Query Engines for Web-Accessible XML Data". In: 27th International Conference on Very Large Data Bases (VLDB'2001), pp. 251-260, Roma, Italy. FLORESCU, D.,KOSSMAN, D., 1999, "Storing and Querying XML Data using an RDBMS". In: IEEE Data Engineering Bulletin, v. 22, pp. 27-34. MANOLESCU, I., FLORESCU, D., KOSSMAN, D., 2001, "Answering XML Queries Over Heterogeneous Data Sources". In: 27th International Conference on Very Large Data Bases (VLDB'2001), pp. 241-250, Roma, Italy. MANOLESCU, I., FLORESCU, D., KOSSMAN, D., et al, 2000, "Agora: Living with XML and Relational". In: 26th International Conference on Very Large Data Bases (VLDB'2000), pp. 623-626, Cairo, Egypt 6 3
Referências RUNAPONGSA, K.,PATEL, J., 2002, "Storing and Querying XML Data in Object- Relational DBMSs". In: International Conference on Extending Database Technology (EDBT'2002) Workshops XMLDM, pp. 266-285, Prague, Czech Republic. SHANMUGASUNDARAM, J., SHEKITA, E., BARR, R., et al, 2000, "Efficiently Publishing Relational Data as XML Documents". In: 26th International Conference on Very Large Data Bases (VLDB'2000), pp. 65-76, Cairo, Egypt. SHANMUGASUNDARAM, J., SHEKITA, E., KIERNAN, J., et al, 2001, "A General Technique for Querying XML Documentos using a Relational Database System". In: Special Interest Group on Management of Data (SIGMOD) Record, v. 30, pp. 20-26. SHANMUGASUNDARAM, J., TUFTE, K., HE, G., et al, 1999, "Relational Databases for Querying XML Documents: Limitations and Opportunities". In: 25th International Conference on Very Large Data Bases (VLDB'1999), pp. 302-314, Edinburgh, Scotland, United Kingdom. 7 Referências TIAN, F., DEWITT, D., CHEN, J., et al, 2002, "The Design and Performance Evaluation of Alternative XML Storage Strategies". In: SIGMOD Record, v. 31. MASATOSHI YOSHIKAWA and TOSHIYUKI AMAGASA, XRel: A Path-Based Approach to Storage and Retrieval of XML Documents Using Relational Databases, ACM TOIT 1(1) 8 4
Armazenamento de Documentos XML Arquivos texto Dados estruturados e semi-estruturados separados Dificuldade de consulta SGBDs XML Nativos Documentos XML sem nenhuma perda Recursos de Gerência de dados (transações, otimização de consultas,...) em evolução SGBDs Tradicionais Dados estruturados e semi-estruturados em um mesmo sistema Aproveitamento das funcionalidades típicas de um SGBD 9 SGBDs XML Nativos Especificamente projetados para armazenar documentos XML Recursos de gerência de dados Transações, segurança, acesso multi-usuário, APIs programáveis, linguagens de consultas,... Índices Índices de valor, estruturais, textos-completos (full-text) Modelo interno de armazenamento baseado em XML Árvores (grafos), e não tabelas Suportam a noção de coleções 10 5
SGBDs XML Nativos - Usos Armazenamento de dados centrados em documentos Linguagens de consulta XML, difíceis de expressar em SQL "Get me all documents in which the third paragraph after the start of the section contains a bold word," Preservam ordem do documento, instruções de processamento, comentários, seções CDATA Integração de dados Evitam mapeamento das fontes de dados para modelo relacional (BDs federados) Maior flexibilidade Lidam melhor com evolução de esquemas Tratam dados não estruturados Domínios em que a estrutura dos dados evolui rapidamente Finanças Bioinformática Outros Transações longas, documentos grandes, etc 11 Qual o Problema? Cenário: receber grandes instâncias de dados XML armazenar, gerenciar, consultar através da XQuery Considerando o uso de SGBDs tradicionais: Como mapear XML para o relacional, relacional-objeto ou objeto? Como reconstruir o documento XML original? Como mapear a consulta XQuery para SQL, OQL? 12 6
How to store Native XML Data? [Shaudhuri e Shim 2001] Usuário provê mapeamento para tabelas relacionais específicas produtos comerciais em geral.. Mapeamento Genérico usuário não define o mapeamento Sem DTD Inferir mapeamento a partir do DTD ou XML Schema Analisar documentos XML e consultas 13 Mapeamento relacional Genérico arco (edge) Universal DTD Inferência 15 7
Documento XML <book> <title> The Calculus </title> <author> Tamer Ozsu </author> <author> Patrick Valduriez </author> <year> 1986 </year> </book> <book> <title> Foundations of Databases </title> <author> Serge Abiteboul </author> <author> <first-name> Rick </first-name> <last-name> Hull </last-name> <author> Victor Vianu </author> <year> 1995 </year> </book> 16 Armazenamento XML: Genérico (Edge) source Ref Val book &o1 dest Ref Source Label Dest title &o2 author author year &o3 &o4 &o5 &o6 The Calculus 1986 [Florescu, Kossman 1999] 17 &o1 book &o2 &o2 title &o3 &o2 author &o4 &o2 author &o5 &o2 year &o6 Val Node Value &o3 The Calculus &o4 &o5 &o6 1986 8
Armazenamento XML: Genérico (Edge) 18 Armaz XML: Genérico (Edge-Tab Unica) 19 9
Mapeamento de Consultas 20 Documento XML de exemplo <!DOCTYPE Dept SYSTEM Dept.dtd > <Dept dept_id= dept1 > <Student student_id= 123 > <Name>St1</Name> <Enroll>CS10</Enroll> <Enroll>CS20</Enroll> </Student> <Student student_id= 124 > <Name>St2</Name> </Student> </Dept> 21 10
Armazenamento XML: Genérico (Edge) 22 Armaz XML: Genérico (Edge-Inlining) 23 11
Armaz XML: Genérico (Edge-Binário) 24 Armaz XML: Genérico (Universal) 25 12
Armaz XML: Genérico (tipo DOM) [Manolescu et al. 2000] 26 Mapeamento a partir do DTD 27 13
Mapeamento a partir do DTD 28 Shared e Hybrid Inlining 29 14
Ex. DTD : SIGMOD Record 30 Ex. Shared Inlining 31 15
Ex. Hybrid Inlining 32 Storing XML: Derive Schema from XML-Schema DTD: <!ELEMENT bib (paper*)> <!ELEMENT paper (author*,title,year)> <!ELEMENT author (firstname, lastname)> Relational Schema: Paper(pid, title, year) Author(aid, pid, fn, ln) Sometimes this is poor. E.g. 80% of papers have <= 2 authors 18% have 3 authors 2% have 4 or more [Christophides et al. 1994, Shanmugasundaram et al. 1999] 33 16
STORED Approach: Mine Data to Derive Schema paper paper paper paper author title year author author title author title author title fn ln fn ln fn ln fn ln Papers1 fn1 ln1 fn2 ln2 title year X X X X X - X X - - X X X X - - X - Papers2 author title X X [Deutsch, Fernandez, Suciu, SIGMOD 99] Use overflow to store the rest (e.g. as blobs) 34 Mapeamento para objetos Genérico: DOM (padrão) Modelo de classes [Fegaras...] Tabela [Tian...] 35 17
Mapeamento para objetos: DOM <cartas> <carta id="1"> <para>joao</para> <de>maria</de> <assunto>viagem</assunto> </carta> <carta id="2"> <para>jane</para> <de>joao</de> <assunto>empresa</assunto> </carta> <bilhete id="1"> <conteudo> <para>maria</para> <de>jane</de> <assunto>carro</assunto> </conteudo> </bilhete> </cartas> AttrImpl <id = 1 > ElementImpl <carta> ElementImpl <para> TextImpl Joao DocumentImpl cartas.xml ElementImpl <cartas> ElementImpl <carta> ElementImpl <de> TextImpl Maria ElementImpl <bilhete> ElementImpl <assunto> TextImpl Viagem 36 Armazenamento de Documentos XML Abordagem de Mapeamento x Vantagens/Desvantagens Caixa Preta Genérica Única Específica 44 Vantagens -Reconstrução total dos documentos -N baixo de estruturas geradas -Esquema independente do documento armazenado -Facilita o processo de tradução -Esquema simples de representação -Mapeamento mais direto -Otimização no acesso a elementos do mesmo tipo Desvantagens -Falta de flexibilidade -Dificuldade de consulta -Restrito ao espaço de memória disponível -Necessidade de conhecimento das estruturas criadas para consulta -Dificuldade de consulta pois há apenas uma única estrutura de dados -Dificuldade de reconstrução total dos documentos -Geração de um n alto de estruturas (muitas junções...) 18
Armazenamento de Documentos XML Modelo de Dados x Vantagens/Desvantagens Vantagens Desvantagens Relacional Baseado em Objetos -Agrupamento físico eficiente das estruturas de dados -Tecnologia amplamente consolidada -Riqueza semântica do modelo OO -Capacidade de representação de herança -Semelhança entre o modelo OO e o XML -Dificuldade de reconstrução total dos documentos -Consultas com número excessivo de junções -Gap semântico entre os modelos Relacional e XML -Algumas diferenças entre a semântica OO e XML 45 Exercício Escolher um documento XML simples Fazer a representação relacional do documento para as diversas abordagens apresentadas: 46 19