XML & Banco de Dados

Tamanho: px
Começar a partir da página:

Download "XML & Banco de Dados"

Transcrição

1 SECCOM - UFSC Semana de Cursos e Palestras da Computação Outubro/2004 XML & Banco de Dados Ronaldo dos Santos Mello INE / CTC / UFSC ronaldo@inf.ufsc.br

2 Roteiro 1. Introdução 2. Tecnologia XML 3. Gerenciamento de Dados XML a. gerenciamento de dados XML através de bancos de dados relacionais b. gerenciamento de dados XML através de bancos de dados XML nativos 4. Conclusão

3 Roteiro 1. Introdução 2. Tecnologia XML 3. Gerenciamento de Dados XML a. gerenciamento de dados XML através de bancos de dados relacionais b. gerenciamento de dados XML através de bancos de dados XML nativos 4. Conclusão

4 XML (extensible Markup Language) Tecnologia desenvolvida pela W3C (1998) W3C: World Wide Web Consortium Padrão para representação e transferência de informações em diversos domínios de aplicação e tecnologias na Web comércio eletrônico (CXML, ebxml) SIG (SVG, GML) referências bibliográficas (DBLP, SIGMOD,...) dispositivos móveis (WAP/WML) mensagens e processos (SOAP, WSDL)...

5 Uso Extensivo de Protocolos XML... Problemas a serem resolvidos tratamento de dados XML pelos programas de aplicação projeto e validação da estrutura dos dados XML facilidades para armazenamento e manipulação de dados XML... A tecnologia de Banco de Dados (BD) é útil neste contexto

6 Tecnologia XML x Tecnologia BD Similaridades documentos XML mantém coleções de dados tecnologia XML oferece mecanismos para definição e manipulação de dados DTD e XSD, XPath e XQuery, DOM,... Diferenças dado XML não é um dado convencional dado semi-estruturado mistura texto e estrutura, instâncias heterogêneas, auto-descritivo,... tecnologia XML é carente de alguns mecanismos de gerenciamento de dados integridade, segurança, indexação, atualização,...

7 Tecnologia XML x Tecnologia BD Conclusão tecnologia XML não é equivalente à tecnologia de BD Desafio para a comunidade científica de BD gerenciamento eficiente de dados XML como tratar? extensão de SGBDs existentes? desenvolvimento de SGBDs específicos para XML?

8 Roteiro 1. Introdução 2. Tecnologia XML 3. Gerenciamento de Dados XML a. gerenciamento de dados XML através de bancos de dados relacionais b. gerenciamento de dados XML através de bancos de dados XML nativos 4. Conclusão

9 O que é XML? XML é uma meta-linguagem de marcação linguagem de marcação semelhante à linguagem HTML utiliza tags para descrição os dados tag: indica a intenção do dado e delimita o seu conteúdo meta-linguagem XML é um padrão aberto cada aplicação define o protocolo (linguagem) para a representação dos seus dados Dados no formato XML são descritos em um documento XML

10 Exemplo de Documento XML <?xml version = 1.0 encoding ="ISO > <! - documento XML sobre livros --> <!DOCTYPE listadelivros [ <!ELEMENT listalivros(livro+)...]> <listalivros> <livro ISBN= 112 > <título>tecnologia XML</título> <autor> <nome>joão da Silva</nome> < >js@hotmail.com</ > </autor>... <capítulo nome= Introdução >A XML foi... <seção> <nome>linguagens de Marcação</nome>... </seção> </capítulo>... </livro>... </listalivros> informações do documento elemento (raiz) atributo elemento (simples) elemento (composto) elemento (misto) dado XML: estrutura hierárquica, ordenada e complexa

11 Tecnologia XML Esquemas DTD (Document Type Definition) XSD (XML-Schema Definition) Linguagens de consulta XPath e XQuery APIs para processamento de dados XML... DOM,...

12 DTD e XSD Definem restrições para a organização hierárquica dos dados em um doc XML documento bem-formado e válido documento cuja estrutura de tags está correta e seus dados estão de acordo com um esquema estas validações são feitas por programas chamados parsers XSD é uma recomendação mais recente da W3C sintaxe XML suporte a diversos tipos de dados derivação de novos tipos a partir de tipos já existentes recursos adicionais para restrições de valores de dados

13 XSD - Exemplo <?xml version= 1.0 encoding= UTF-8 >... <xsd:schema> <xsd:simpletype name= Tisbn > <xsd:restriction base= xsd:string > <xsd:pattern value= [0-9]{2}-[0-9]{3}-[0-9]{4}-[0-9] /> </xsd:restriction> </xsd:simpetype> <xsd:complextype name= Tlivro > <xsd:sequence> <xsd:element name= titulo type= xsd:string /> <xsd:element name= autor type= Tautor minoccurs= 1 maxoccurs= unbounded /> <xsd:element name= preço type= xsd:float />... </xsd:sequence> <xsd:attribute name= isbn type= Tisbn /> </xsd:complextype>... <xsd:element name= listalivros > <xsd:complextype> <xsd:element name= livro type= Tlivro minoccurs= 1 maxoccurs= unbounded /> </xsd:complextype> </xsd:element> </xsd:schema>

14 Linguagens de Consulta XPath expressões de caminho para acesso a dados exemplos: /livro/título /livro[@isbn=100]/autor XQuery linguagem declarativa de consulta junções, geração de novas estruturas de resultado, atributos calculados,... exemplo for $liv in /livro where $liv/autor/nome = João Silva return { $liv/@isbn, $liv/titulo }

15 DOM (Document( Object Model) Modelo de dados OO para XML modelo hierárquico (árvore) API DOM principais classes de objetos document, node, nodelist e element métodos de consulta e atualização de dados para cada uma dessas classes

16 Classes DOM document node listalivros... nodelist livro ISBN livro título preço autor autor Tecnologia XML nome mail nome element João da Silva Maria Souza

17 Roteiro 1. Introdução 2. Tecnologia XML 3. Gerenciamento de Dados XML a. gerenciamento de dados XML através s de bancos de dados relacionais b. gerenciamento de dados XML através de bancos de dados XML nativos 4. Conclusão

18 BDs Relacionais e XML Alternativa adequada a docs XML fortemente estruturados documentos orientados a dados Adequado a aplicações que realizam intercâmbio de dados convencionais em XML dados de BD, arquivos, relatórios, docs bem formatados em geral

19 BDs Relacionais e XML Vantagem uso de uma tecnologia madura de BD acesso eficiente escalabilidade linguagens de consulta declarativas ampla utilização no mercado Vários SGBDs já lidam com o formato XML Oracle, DB2,... Questões básicas a resolver armazenamento dos docs XML acesso aos dados XML

20 Armazenamento Relacional de XML Algumas abordagens grafo [Florescu99] níveis de granularidade [Graves03]

21 Abordagem Grafo Doc XML é visto como um grafo orientado rotulado Duas alternativas em geral são adotadas tabela de arestas tabela para cada rótulo <?xml version = 1.0 encoding =...> <listalivros> <livro ISBN= 112 > <título>xml</título> <autor> <nome>joão Silva</nome> < >js@xxx.com</ > </autor> <capítulo nome= Introdução >... </capítulo>... </livro>... </listalivros>... listalivros... 1 livro... 2 ISBN capítulo autor título nome 4 5 nome XML 9 6 Introdução 7 João Silva js@xxx.com"

22 Alternativa 1 Tabela de Arestas... listalivros... 1 livro... 2 ISBN capítulo autor título nome 4 5 nome XML 9 6 Introdução 7 João Silva js@xxx.com" Arestas origem ordem nome livro ISBN título autor capítulo tipo ref int string ref ref destino valor 112 XML 5 1 nome string 6 João Silva...

23 Alternativa 2 Tabelas p/ RótulosR... listalivros... 1 livro... 2 ISBN capítulo autor título nome 4 5 nome XML 9 6 Introdução 7 João Silva js@xxx.com" Livro origem ordem destino Autor origem ordem Título origem ordem NomeAutor origem ordem 5 1 destino 5 destino 4 destino 6 valor XML valor João Silva

24 Comparativo + Tabela de Arestas Uma única tabela Bom desempenho para buscas na hierarquia do doc Tabelas p/ Rótulos Não há desperdício de espaço Bom desempenho para buscas por um determinado tipo de elemento ou atributo Espaços nulos Desempenho ruim para buscas por um determinado tipo de elemento ou atributo Várias tabelas Desempenho ruim para buscas na hierarquia do doc (exige junções) Desempenho ruim na reconstrução do doc XML Não há distinção entre elemento e atributo

25 Enfoque Níveis de Granularidade Considera três níveis de detalhamento de docs XML para fins de armazenamento granularidade grande granularidade pequena granularidade média

26 Granularidade Grande DocID Nome Conteúdo Documentos 1 livros.xml <?xml version = 1.0 encoding =...> <listalivros> <livro ISBN= 112 > <título>xml</título> <autor> <nome>joão Silva</nome> < >js@xxx.com</ > </autor> <capítulo nome= Introdução >... </capítulo>... </livro>... </listalivros> livros.xml

27 Granularidade Pequena Elementos Atributos elemid tag elempai ordem doc atrid tag elem ordem valor 1 listalivros 1 1 ISBN livro título <?xml version = 1.0 encoding =...> <listalivros> <livro ISBN= 112 > <título>xml</título> <autor> <nome>joão Silva</nome> < >js@xxx.com</ > </autor> <capítulo nome= Introdução >... </capítulo>... </livro>... </listalivros> livros.xml Conteúdos contid valor 1 XML 2 João Silva... Documentos docid nome 1 livros.xml... elem 3 5 raiz 1

28 Granularidade Média Elementos elemid tag listalivros livro título elempai <?xml version = 1.0 encoding =...> <listalivros> <livro ISBN= 112 > <título>xml</título> <autor> <nome>joão Silva</nome> < >js@xxx.com</ > </autor> <capítulo nome= Introdução >... </capítulo>... </livro>... </listalivros> 1 2 ordem 1 1 doc livros.xml Atributos atrid tag elem 1 ISBN 2... Textos contid 1... Conteúdos conteúdo --- contid valor... Documentos docid nome.... ordem valor elem ordem 2 3 elem raiz

29 Enfoque Níveis de Granularidade Granularidade Grande Granularidade Média Granularidade Pequena aumenta a complexidade para a reconstrução do doc XML aumenta a complexidade do esquema relacional aumenta o desempenho de consultas declarativas granularidade pequena: consultas a qualquer tipo de dado XML no documento; qualquer dado pode ser indexado diminui o volume de armazenamento granularidade grande/média: tags do doc ocupam muito espaço

30 Projeto Relacional para XML Depende das prioridades da aplicação prioriza-se a manutenção e fácil reconstrução do doc XML e/ou consultas hierárquicas tabela de arestas; uso de granularidade grande/média prioriza-se flexibilidade de consultas declarativas tabelas por rótulo; uso de granularidade média/pequena prioriza-se economia no espaço de armazenamento... tabela de arestas; granularidade pequena

31 Exemplo 1 DB2 Armazenamento de doc XML granularidade grande atributo especial XMLCLOB indexação de elementos e atributos enfoque de grafo baseado em tabelas por rótulo mapeamento DTD->tabelas definido pelo projetista

32 Exemplo 1 DB2 Exemplo de armazenamento com granularidade grande TABLE Documentos docid VARCHAR(10) NOT NULL PRIMARY KEY nome VARCHAR(40) conteúdo XMLCLOB;

33 Exemplo 2 Oracle Armazenamento de doc XML granularidade grande atributo CLOB granularidade pequena virtual mapeamento XSD-esquema hierárquico OR ou DOM possibilidade de definir quais elementos e atributos serão mapeados atributo especial do tipo xmltype encapsula o esquema hierárquico do doc esquema hierárquico é mantido em tabelas do SGBD que não são manipuladas pelo usuário (esquema virtual )

34 Exemplo 2 Oracle Exemplo de armazenamento com granularidade pequena virtual create table DocsXMLEstruturados( docid varchar(10), nome varchar2(40), conteúdo xmltype ) xmltype column conteúdo xmlschema " Order.xsd"

35 Acesso a Dados XML Esquemas relacionais com granularidade pequena ou tabelas por rótulo consultas SQL tradicionais resolvem! Esquemas relacionais com granularidade grande/média consultas SQL estendidas ao conteúdo do doc geralmente utilizam XPath embutida Resultados de consultas no formato XML

36 Consultas ao Conteúdo do Doc Exemplo1 DB2 select docid, nome from Documentos where extract Varchar (conteúdo, /listalivros/livro/título ) like %XML%

37 Consultas ao Conteúdo do Doc Exemplo2 Oracle select extractvalue (conteúdo,'/listalivros/livro/título') from DocsXMLEstruturados where existsnode(conteúdo,'/listalivros/ livro/autor/nome') = João Silva

38 Resultados de Consultas em XML Geração de dados XML a partir de dados relacionais Um doc XML pode ser reconstruído ou gerado SQL/XML padrão ANSI ISO derivado da SQL diversas funcionalidades geração de elementos, hierarquias de elementos ou docs XML agrupamento e concatenação de elementos ou hierarquias de elementos... Oracle e DB2 adotam parcialmente esse padrão

39 Resultados de Consultas em XML Exemplo Oracle com SQL/XML SELECT XMLElement( Editoras", XMLAttributes(e.razao_social AS nome"), XMLAgg( XMLElement( Livro", XMLForest (l.título AS nome, l.ano AS ano, l.nropags AS páginas )))) FROM editoras e INNER JOIN livros l ON e.código = l.editora GROUP BY e.razao_social;

40 Resultados de Consultas em XML Exemplo Oracle resultado <Editora nome= Makron Books"> <Livro> <nome>sistema de Banco de Dados</nome> <ano>2000</ano> <páginas>676</páginas> </Livro> <Livro> <nome>projeto de Banco de Dados com XML</nome> <Ano>2003</Ano> <Páginas>518</Páginas> </Livro>... </Editora> <Editora nome= Campus >...

41 Roteiro 1. Introdução 2. Tecnologia XML 3. Gerenciamento de Dados XML a. gerenciamento de dados XML através de bancos de dados relacionais b. gerenciamento de dados XML através s de bancos de dados XML nativos 4. Conclusão

42 BD XML Nativo Suporta um modelo lógico e um modelo físico proprietários para dados XML definição de elementos, atributos, ordem,... não há mapeamento para um modelo lógico e físico de um BD convencional Adequado a docs XML fortemente semi-estruturados documentos orientados a documentos mapeamento para BD relacional seria complexo! aplicações que lidam apenas com dados no formato XML Intensa atividade de pesquisa e desenvolvimento! exemplos de SGBDs: Tamino, exist,...

43 Características Principais Esquemas lógicos baseados em coleções Consultas Atualização Conectividade Armazenamento e indexação de dados

44 Coleções Noção lógica de um conjunto de docs XML a decisão por quais docs XML pertencem a uma coleção fica em geral a cargo da aplicação + : flexibilidade quanto ao conteúdo da coleção - : baixo nível de integridade dos dados em alguns casos, um esquema XML fixo pode ser associado a uma coleção Consultas e atualizações podem ser direcionadas a coleções

45 Coleções - Tamino 1 BD n coleções n esquemas n tipos de documentos cada tipo de documento define um elemento raiz específico novo doc XML: inserido em uma coleção e válido para algum tipo doc Docs sem esquema mantidos em uma coleção específica tipos de documentos

46 Consultas Suporte a pelo menos uma linguagem de consulta para XML uso mais extensivo de XPath uso de alguns dialetos da XQuery (tendência!) Características desejadas para uma linguagem de consulta para XML buscas textuais (por palavras-chaves, por padrões,...) consultas declarativas resultados de consultas doc XML, fragmentos de docs XML ou novas estruturas XML

47 Consultas Tamino consultas em Xpath e XQuery estendidas suporta busca por padrão /livro[título ~= *XML* ]/título geração de docs XML como resultado exist consultas em XPath estendida suporta busca por padrão, por palavra-chave (em textos) e por proximidade /livro[título &= banco XML ]/título /livro/capitulo[near(., banco XML,50)]/@nome

48 Atualizações Capacidades de atualização são variadas possibilidade apenas de substituição de um doc XML completo API DOM para atualização de nodos linguagens de atualização declarativas tendência1: XUpdate (consórcio XML:DB) XML:DB consórcio de empresas responsável pelo desenvolvimento de tecnologias para BDs XML tendência2: XQuery com capacidades de atualização

49 Sintaxe XML XUpdate I / E de elementos, atributos e texto A do conteúdo de elementos e atributos Exemplo 1: <xupdate:append select= //autor[nome= Maria ]/ child= last() > <xupdate:element name=" ">maria@teste.com</xupdate:element> </xupdate:append> (inclusão de um novo para Maria) Exemplo 2: <xupdate:remove select="/listalivros/livro[1]"/> (remoção do primeiro livro)

50 Conectividade APIs Interfaces ODBC tradicionais conexão com o BD, execução de consultas e atualizações e exploração de resultados Protocolos HTTP acesso via browsers Web Consórcio XML:DB propõe uma API para BDs XML manipulação de BDs e coleções; execução de consultas Xpath e XUpdate; acesso a resultados de consultas; controle de transações

51 Tamino Conectividade HTTP

52 Docs XML in-natura Armazenamento tratados como uma caixa preta deseja-se preservar o texto do documento indexação apenas textual (por palavra-chave) Objetos DOM que representam os dados XML (+ usado) armazenamento clusterizado de objetos nodos próximos na hierarquia do doc XML são armazenados próximos fisicamente através de uma busca em largura ou profundidade facilita indexação e busca de uma hierarquia de objetos apenas os elementos de mais alto nível precisam ser indexados os demais elementos são buscados via varredura linear

53 Indexação Indexação por valor para elementos e atributos Indexação de palavras-chaves do doc XML técnicas baseadas em radicalização de palavras índice por níveis para radicais ou partes de palavras que possuem a mesma grafia Indexação de estrutura indexação de elementos ou docs XML onde existem determinados caminhos entre nodos na árvore facilita consultas em docs XML sem esquema não se sabe quais elementos filhos um elemento possui

54 Indexação - exist Índices são IDs numéricos para nodos, com uma numeração dada por uma busca em largura supondo uma árvore sempre completa ( nodos virtuais ) certas propriedades da árvore permitem calcular o ID de nodos filhos, pai, irmãos,... ex.: maxfilhos = 4filhos de X [ID(X)*4+1, ID(X)*4+4] livro 0 título preço autor autor XML & BD nome mail nome mail

55 Roteiro 1. Introdução 2. Tecnologia XML 3. Gerenciamento de Dados XML a. gerenciamento de dados XML através de bancos de dados relacionais b. gerenciamento de dados XML através de bancos de dados XML nativos 4. Conclusão

56 BDs XML nativos Conclusão adequados a aplicações que lidam com dados semi-estruturados como XML objetivo: lidar de forma eficiente com tais dados apesar de ser ainda uma tecnologia muito recente... um BD não-xml em geral possui recursos limitados, complicados e ineficientes para o gerenciamento de dados XML algumas funcionalidades de SGBDs não são ainda tratados eficientemente ou estão em pesquisa restrições de integridade semânticas, visões, atualização de dados, transações,...

57 BDs relacionais SGBDs robustos Conclusão gerenciamento completo e eficiente de dados integridade semântica, gerência de transações,... não se pode dizer o mesmo de BDs XML nativos seu modelo de dados não é XML precisam de um suporte de mapeamento para importação/exportação de dados XML overhead de gerenciamento apesar dos fabricantes de SGBDs estarem trabalhando para melhorar isso...

58 Benchmark BD XML x BDR [Chaudhri03] Conclusões a respeito de BDs XML nativos ocupam mais espaço muita indexação, tags também são nodos DOM são mais rápidos em consultas a grandes massas de dados boas estratégias de indexação; não há overhead de mapeamento de modelo de dados são mais lentos em atualizações inexistência de métodos DOM eficientes ou mesmo linguagens declarativas para atualização melhor compatibilidade com APIs Java, porém requerem mais codificação BDRs tem mais ferramentas proprietárias para desenvolvimento de aplicações, porém requerem menos codificação

59 Conclusão SGBDs XML nativos irão vingar? não há resposta imediata... provavelmente não serão A nova geração de SGBDs BDs relacionais continuam adequados a muitas categorias de aplicações XML tornar-se-á um modelo de dados de uso extensivo para BDs como o modelo relacional a ponto de superá-lo?

60 Referências na Web Tecnologia XML XML & BD SQL/XML XML:DB SGBDs XML Nativos (Tamino e exist)

61 SECCOM - UFSC Semana de Cursos e Palestras da Computação Outubro/2004 XML & Banco de Dados Ronaldo dos Santos Mello INE / CTC / UFSC ronaldo@inf.ufsc.br