1 / 125

Gerenciamento de Dados XML

V Escola Regional de Informática Norte Mini-Curso. Gerenciamento de Dados XML. Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br. Sobre este mini-curso. Motivação XML consolida-se como padrão para representação e transferência de dados

anila
Télécharger la présentation

Gerenciamento de Dados XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. V Escola Regional de Informática Norte Mini-Curso Gerenciamento de Dados XML Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br

  2. Sobre este mini-curso... • Motivação • XML consolida-se como padrão para representação e transferência de dados • necessidade de armazenamento e manipulação de dados XML • Objetivos • apresentação (“revisão”) da tecnologia XML • estado da arte na área de gerenciamento de dados XML

  3. Roteiro • Introdução • Representação de Dados em XML • Tecnologia XML • XML e Bancos de Dados • gerenciamento de dados XML através de bancos de dados relacionais • gerenciamento de dados XML através de bancos de dados XML nativos • Conclusão

  4. Roteiro • Introdução • Representação de Dados em XML • Tecnologia XML • XML e Bancos de Dados • gerenciamento de dados XML através de bancos de dados relacionais • gerenciamento de dados XML através de bancos de dados XML nativos • Conclusão

  5. XML (eXtensible Markup Language) • Tecnologia desenvolvida pela W3C • W3C: World Wide Web Consortium • definição de padrões para a Web • consórcio formado por acadêmicos e empresários • Padrão para representação e transferência de dados • Motivação: Aplicações Web • extração, manipulação, integração e publicação de dados através da Web

  6. Protocolos XML • Definidos em diversos domínios de aplicação • comércio eletrônico • CMXL, eBisXML, GCI, ... • referências bibliográficas • padrão DBLP, padrão SIGMOD, padrão BibTeX, ... • sistemas de informação geográfica • SVG, GML, ... • ...

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

  8. Tecnologia XML x Tecnologia BD • Simliaridades • documentos XML mantém coleções de dados • tecnologia XML oferece mecanismos para definição e manipulação de dados • DTD, XSD, XQuery, XSL, DOM, ... • Diferenças • dado XML não é um dado convencional • tecnologia XML é carente de alguns mecanismos de gerenciamento de dados • integridade, segurança, indexação, ...

  9. 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?

  10. Roteiro • Introdução • Representação de Dados em XML • Tecnologia XML • XML e Bancos de Dados • gerenciamento de dados XML através de bancos de dados relacionais • gerenciamento de dados XML através de bancos de dados XML nativos • Conclusão

  11. Formato XML • XML é uma meta-linguagem de marcação • meta-linguagem • XML é um padrão aberto • cada aplicação define o protocolo (linguagem) para a representação dos seus dados • 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

  12. Exemplo de Dado XML tag (intenção do dado) <livro> <titulo>Tecnologia XML</titulo> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> <endereco> <comercial>rua A, 34 – Fpolis - SC</comercial> <residencial>rua B, 5 – Fpolis – SC</residencial> </endereco> </autor> ... <capitulo nome=“Introdução”>Este capítulo apresenta ... <secao> <nome>Linguagens de Marcação</nome> ... </secao> </capitulo> ... </livro> conteúdo do dado estrutura hierárquica, ordenada e complexa

  13. XML x HTML • HTML • linguagem de marcação • tags predefinidas e com intenção específica • formatação da apresentação de dados em browsers • XML • meta-linguagem de marcação • não há tags predefinidas • intenção das tags é definida pela aplicação

  14. Sintaxe XML • Dados XML são definidos em um documento XML • Um documento XML contém • cabeçalho • dados • elementos simples ou compostos • atributos de elementos • referências a entidades • comentários • instruções de processamento

  15. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1“> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros>

  16. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> cabeçalho

  17. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> comentário

  18. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> instrução de processamento

  19. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> elemento raiz elemento simples (#PCDATA) elemento composto elemento misto

  20. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> atributo

  21. Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> declaração de entidade referência a uma entidade

  22. Documento XML Bem Formado • Requisitos • contém um elemento raiz • define elementos com tags inicial e final • define atributos com conteúdo delimitado por aspas simples (‘) ou aspas duplas (“) • Parser XML • programa que verifica se um documento XML é bem formado • alguns browsers são capazes de realizar tal verificação

  23. Roteiro • Introdução • Representação de Dados em XML • Tecnologia XML • XML e Bancos de Dados • gerenciamento de dados XML através de bancos de dados relacionais • gerenciamento de dados XML através de bancos de dados XML nativos • Conclusão

  24. Tecnologia XML • Esquemas • DTD e XSD • Linguagens de consulta • XPath e XQuery • APIs • DOM, ... • Transformação e apresentação de dados • XSL • . . .

  25. Definição de Esquemas • Esquema XML • define restrições para a organização hierárquica dos elementos em um doc XML • documento válido • documento cuja estrutura está de acordo com um esquema • validação é feita por um parser • Duas recomendações • DTD(Document Type Definition) • XSD(XML Schema Definition)

  26. DTD • Primeira recomendação da W3C • Gramática para definição de hierarquia • baseada em seqüências ordenadas e escolhas • Definição de elementos • compostos, textuais (#PCDATA), vazios (EMPTY), mistos ((#PCDATA | ...)*) ou com conteúdo aberto (ANY) • Definição de atributos • obrigatórios (#REQUIRED) opcionais (#IMPLIED), fixos (#FIXED), valor default, enumeração, referência (ID, IDREF(S))

  27. DTD - Exemplo <!ELEMENT listaLivros (livro+)> <!ELEMENT livro (título, autor+, capítulo+)> <!ATTLIST livro ISBN CDATA #IMPLIED> <!ELEMENT título (#PCDATA)> <!ELEMENT autor (nome, eMail?)> <!ELEMENT nome (#PCDATA)> <!ELEMENT eMail (#PCDATA)> <!ELEMENT capítulo (#PCDATA | seção)*> <!ATTLIST capítulo nome CDATA #REQUIRED> <!ELEMENT seção (nome, conteúdo)> <!ATTLIST seção ident ID> <!ELEMENT conteúdo (#PCDATA)> <!ATTLIST conteúdo ref IDREFS #IMPLIED>

  28. XSD • Recomendação mais recente • Sintaxe XML • Extensão da funcionalidade de um DTD • definição e especialização de tipos de elementos • definição de tipos de dados • simples (string, integer, boolean, ...) • complexos (list, union) • facilidades adicionais para definição de restrições • intervalos de valores permitidos, padrões de conteúdo via expressões regulares, ... • . . .

  29. XSD - Exemplo <?xml version=“1.0” encoding=“UTF-8”> <xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”> ... <!-– Declaração de Tipos --> <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> ...

  30. XSD – Exemplo (cont.) ... <xsd:complexType name=“TlivroTécnico” base=“Tlivro” derivedBy=“extension”> <xsd:element name=”area" type=“xsd:string" minOccurs=“1” maxOccurs=“1”/> </complexType> ... <!-– Declaração de Elementos --> <xsd:element name=“listaLivros”> <xsd:complexType> <xsd:element name=“livro” type=“Tlivro”/> minOccurs=“1” maxOccurs=“unbounded”/> </xsd:complexType> </xsd:element> </xsd:schema>

  31. XPath • Primeira recomendação para consulta a dados • Linguagem para acessar partes de um doc XML • sintaxe: expressões de caminho • assemelha-se à navegação em diretórios de arquivos • exemplo • expressão XPath: /livro/título • resultado: <resultado> <título>Tecnologia XML</título> <título>Sistema de Banco de Dados</título> . . . </resultado>

  32. XPath - Exemplos /(elemento raiz – todo o doc XML) /livro/*/eMail(‘*’ substitui 1 elem) /livro//seção(qq elemento descendente seção) /livro/capítulo[1](primeiro capítulo de livros) /livro/capítulo/nome | /livro/capítulo/seção/nome(união) /livro/@ISBN(acesso a um atributo) /livro[título=“XML”] (filtro) /livro[@ISBN=“112”]/título (filtro) /livro//secao[../@nome=“XML e BD”] (filtro)

  33. XQuery • Recomendação mais recente • Oferece mais recursos que a XPath • junções, definição de estruturas de resultado, variáveis de consulta, atributos calculados, funções de agregação, ... • Sintaxe básica (expressão “FLWR”) forvariável in expressãoXPath [letassociação de novas variáveis] [wherecondição] returnestrutura de resultado

  34. XQuery - Exemplos (consulta simples) for $liv in /livro where $liv/autor/nome = “João Silva” return { $liv/@ISBN, $liv/titulo } • for $liv in /livro • let $pDesc := $liv/preço - $liv/preço * 0.1 • where $liv/categoria = “ficcao” • return <FiccaoDesc>{$liv/titulo, $pDesc}</FiccaoDesc> • for $liv1 in /livro[@ISBN = “562”] • for $liv2 in /livro • where $liv2/@ISBN != $liv1/@ISBN • and $liv2/autor/nome = $liv1/autor/nome • return $liv2/titulo (nova estrutura de resultado) (junção)

  35. DOM (Document Object Model) • Modelo de dados para XML • modelo hierárquico (árvore) • API DOM • principais classes de objetos • document, node, nodelist e element • métodos para consulta e atualização de dados • Parsers DOM • validam um doc XML • geram um objeto document

  36. título mail Objetos do Modelo DOM document node listaLivros . . . livro ISBN livro preço autor autor “Tecnologia XML” 79.00 element nome nome “Maria Souza” “js@hotmail.com” “João da Silva” “jsilva@xxx.com” nodelist

  37. Exemplos de Métodos da API DOM document nodeList element

  38. DOM – Exemplo (JavaScript) var doc, raiz, livro1, autores, autor2; doc = new ActiveXObject(“Microsoft.XMLDOM”); doc.load(“livros.xml”); if (doc.parseError != 0) ...; else { raiz = doc.documentElement; /* busca o primeiro livro (primeiro nodo filho) */ livro1 = raiz.childNodes.item(0); /* busca a lista de autores do primeiro livro */ autores = livro1.getElementsbyTagName(“autor”); /* busca o segundo autor */ autor2 = autores.item(1); /* escreve o nome do autor – primeiro nodo filho */ document.write(“Nome do segundo autor: “ + autor.childNodes.item(0).data); }

  39. XSL (XML Style sheet Language) • Style sheet(folha de estilos) • define regras para a apresentação de dados • XSL • linguagem de definição de folha de estilos para um doc XML • formatação de apresentação • transformação do conteúdo do documento XML (XSLT) • indicação de que dados serão exibidos ou descartados • inserção de novos conteúdos • conversão XMLHTML, XMLXML, XMLTexto puro, ...

  40. Documento XSL • Define uma folha de estilo • Sintaxe XML • Referenciado em um doc XML • Processador XSL • programa que valida e executa as regras definidas em um doc XSL • alguns browsers Web processam docs XSL <?xml version=“1.0” ?> <?xml-stylesheet type=“text/xsl” href=“estilo.xsl” ?> ...

  41. Estrutura de um Doc XSL(T) <stylesheetxmlns = "http://www.w3.org/XSL/Transform/1.0"> </templatematch = “/livro/autor"> ... </template> ... </stylesheet> namespace default (DTD da W3C com instruções XSL) elemento raiz padrão: indica o elemento ou atributo para o qual a regra se aplica (expressão XPath) regra de formatação

  42. Exemplo de Transformação XSL Transformação: doc XSL Entrada: doc XML <stylesheet xmlns = ...> <template match = "listaLivros"> <html><head> <title>Livros Técnicos</title> </head> <apply-templates/> </html> </template> <template match = “livro"> <P> <apply-templatesselect = “livro[@tipo = "tecnico"]"> <sort = "título"> </apply-templates> </P> </template> ... <listaLivros> <livro tipo=“tecnico” ISBN=“01”> <título>XML Companion<\título> <autor> <nome>N. Bradley<\nome> ... <\autor> ... <\livro> <livro tipo=“tecnico” ISBN=“02”> <título>Data on the Web<\título> <autor> <nome>S. Abiteboul<\nome>... <\autor> ... <\livro>... </listaLivros> processar elementos filhos selecionar livros técnicos ordenar por títrulo

  43. Exemplo de Transformação XSL Transformação: doc XSL Entrada: doc XML ... <variable name = "separador">,</variable> <template match = "título"> <value-of select = "."> <value-of select = "{$separador}"> </template> <template match = "author/name"> <value-of select = "."> </template> </stylesheet> <listaLivros> <livro tipo=“tecnico” ISBN=“01”> <título>XML Companion<\título> <autor> <nome>N. Bradley<\nome> ... <\autor> ... <\livro> <livro tipo=“tecnico” ISBN=“02”> <título>Data on the Web<\título> <autor> <nome>S. Abiteboul<\nome>... <\autor> ... <\livro> ... </listaLivros> selecionar o conteúdo de título selecionar o conteúdo do nome do autor

  44. Exemplo de Transformação XSL Entrada: doc XML Saída: doc HTML <listaLivros> <livro tipo=“tecnico” ISBN=“01”> <título>XML Companion<\título> <autor> <nome>N. Bradley<\nome> ... <\autor> ... <\livro> <livro tipo=“tecnico” ISBN=“02”> <título>Data on the Web<\título> <autor> <nome>S. Abiteboul<\nome>... <\autor> ... <\livro> ... </listaLivros> <html> <head> <title> Livros Técnicos </title> </head> <P> XML Companion,N. Bradley </P> <P> Data on the Web,S. Abiteboul </P> ... </html>

  45. Roteiro • Introdução • Representação de Dados em XML • Tecnologia XML • XML e Bancos de Dados • gerenciamento de dados XML através de bancos de dados relacionais • gerenciamento de dados XML através de bancos de dados XML nativos • Conclusão

  46. XML e BD • Dados XML • manipulados por diversos domínios de aplicação • Tecnologia de BD • necessária para a manutenção de dados XML persistentes • XML & BD • XML é um dado não-convencional • dado semi-estruturado • tecnologia de BD necessita ser estendida para tratar este tipo de dado

  47. Dados Semi-Estruturados • Principais características • estrutura heterogênea • estrutura auto-descritiva • estrutura parcial • estrutura dinâmica

  48. Estrutura heterogênea • Cada ocorrência de dado pode ter um esquema particular <autor> <nome>Patrícia Vilain</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>3313333</fone> <fone>3313332</fone> </autor> <autor> <nome>Ronaldo Mello</nome> <endereco>rua B,23</endereco> <eMail>ronaldo@inf.ufsc.br</eMail> </autor>

  49. Estrutura auto-descritiva • Cada ocorrência de dado carrega o seu esquema <autor> <nome>Patrícia Vilain</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>3313333</fone> <fone>3313332</fone> </autor>

  50. Estrutura parcial • Apenas parte da descrição de um dado pode ser estruturada <capítulo numero = 2 titulo = “Tecnologia XML”> Este capítulo descreve ... XML<ref>(Mel03)</ref>. XML é um padrão ... <secao numero = 1> <titulo>DTD</titulo> Esta seção descreve ... </secao> ... </capítulo>

More Related