introdução à tecnologia xml

Post on 06-Jan-2016

86 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

UFSC – CTC - INE. Introdução à Tecnologia XML. Ronaldo dos Santos Mello e-mail: ronaldo@inf.ufsc.br http://www.inf.ufsc.br/~ronaldo http://www.grupobd.inf.ufsc.br. Roteiro. Introdução Dados e Documentos XML Componentes da Tecnologia XML DTD e XML Schema XPath e XQuery DOM XSL e XSLT - PowerPoint PPT Presentation

TRANSCRIPT

Introdução à Tecnologia Introdução à Tecnologia XMLXML

Ronaldo dos Santos Melloe-mail: ronaldo@inf.ufsc.br

http://www.inf.ufsc.br/~ronaldohttp://www.grupobd.inf.ufsc.br

UFSC – CTC - INE

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

RoteiroRoteiro1.1. IntroduçãoIntrodução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

XML XML ((eXtensible Markup LanguageeXtensible Markup Language))

Tecnologia desenvolvida pela W3C– W3C: World Wide Web Consortium

definição de padrões para a Web– HTML, XML, Web Semântica (RDF, OWL), ...

consórcio formado pela academia e indústria

Por quê conhecer XML é importante?– padrão para representação e transferência de

dados entre pessoas e softwares formato simples e leve dados estão cada vez mais sendo armazenados em

documentos XML ao invés de BDs

Protocolos XMLProtocolos XML Definidos em diversos domínios e tecnologias

– comércio eletrônico CXML, eBisXML, ...

– domínios bibliográficos DBLP, SIGMOD, ...

– sistemas de informação geográfica SVG, GML, ...

– dispositivos móveis WML, WAP, ...

– web services SOAP, WSDL, ...

– ...

Uso Extensivo de Protocolos XML...Uso Extensivo de Protocolos XML...

Necessidades– definição da estrutura dos dados XML– métodos de acesso a dados XML

consulta e atualização

– apresentação adequada de dados XML em browsers Web, interfaces de aplicações, ...

– armazenamento de dados XML integridade, segurança, ...

– ...

Precisa-se de tecnologia para suprir estas necessidades!

RoteiroRoteiro1. Introdução2.2. Dados e Documentos XMLDados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Formato XMLFormato 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

– padrão fechado para apresentação de dados em browsers Web utiliza tags para descrição os dados

– tag: indica a intenção do dado e delimita o seu conteúdo

Exemplo de Dado XMLExemplo de Dado XML<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>

tag (intenção do dado)

conteúdo do dado

estrutura hierárquica, ordenada e complexa

Sintaxe XMLSintaxe XML

Dados XML são definidos em um documento XML

Um documento XML contém– cabeçalho– dados

elementos simples ou complexos atributos de elementos referências a entidades

– comentários– instruções de processamento

Exemplo de Documento XMLExemplo 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>

Exemplo de Documento XMLExemplo 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

Exemplo de Documento XMLExemplo 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

Exemplo de Documento XMLExemplo 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

Exemplo de Documento XMLExemplo 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

Exemplo de Documento XMLExemplo 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 simples (#PCDATA)

Exemplo de Documento XMLExemplo 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 complexo

Exemplo de Documento XMLExemplo 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 misto

Exemplo de Documento XMLExemplo 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

Exemplo de Documento XMLExemplo 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 deentidade

referência auma entidade

Documento XML Bem FormadoDocumento 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 Web são capazes de realizar tal

verificação

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3.3. Componentes da Tecnologia XMLComponentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Tecnologia XML da W3CTecnologia XML da W3C

Principais recursos– definição de esquemas

DTD e XML Schema

– linguagens de consulta XPath e XQuery

– modelo de representação e interface de acesso DOM

– transformação e apresentação de dados XSL

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a)a) DTD e XML SchemaDTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

Definição de EsquemasDefinição de Esquemas

Esquema XML– define restrições para a organização hierárquica e

conteúdo dos dados 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)

Document Type Definition (DTD)Document Type Definition (DTD)

Primeira recomendação da W3C Gramática para definição de hierarquia

– baseada em seqüências ordenadas e escolhas

– sintaxe proprietária

Definição de elementos– complexos, 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))

DTD - ExemploDTD - Exemplo

<!ELEMENT listaLivros (livro+)><!ELEMENT livro (título, preço, autor+, capítulo+)><!ATTLIST livro ISBN ID #REQUIRED edicaoAnterior IDREF #IMPLIED><!ELEMENT título (#PCDATA)><!ELEMENT autor (nome, eMail?)><!ELEMENT nome (#PCDATA)><!ELEMENT preço (#PCDATA)><!ELEMENT eMail (#PCDATA)><!ELEMENT capítulo (#PCDATA | seção)*><!ATTLIST capítulo nome CDATA #REQUIRED><!ELEMENT seção (nome, conteúdo)><!ELEMENT conteúdo (#PCDATA)>

XML Schema (XSD)XML Schema (XSD) Recomendação mais recente Sintaxe XML Extensão da funcionalidade de uma DTD

– definição e especialização de tipos semelhança com esquemas orientados a objetos

– 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, ...

– ...

Documento XSD - ExemploDocumento 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:simpleType><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> ...

Documento XSD – Exemplo (cont.)Documento 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>

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab)b) XPath e XQueryXPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

XPathXPath

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 DOS

– exemplo expressão XPath: /livro/título resultado:

<título>Tecnologia XML</título> <título>Sistema de Banco de Dados</título>

...

XPathXPath - Exemplos - 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[capitulo/@nome = “XML” or //seção/nome = “XML”]/título (filtro)

/livro//seção[last()] (função)

XQueryXQuery

Recomendação mais recente Recursos adicionais em relação à 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”)

for variável in expressãoXPath

[let associação de novas variáveis]

[where condição]

return estrutura de resultado

XQueryXQuery - Exemplos - Exemplos 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(junção)

(nova estrutura de resultado)

(consultasimples)

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc)c) DOMDOMd) XSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

DOM (DOM (Document Object ModelDocument Object Model))

Modelo de dados para XML– estrutura hierárquica (árvore)– métodos de acesso (API DOM)

principais classes de objetos– document, node, nodelist e element

execução de consultas e atualizações de dados

Parsers DOM– validam um doc XML– geram um objeto document

Objetos do Modelo DOMObjetos do Modelo DOM

listaLivros

livro

título preço

ISBN

“Tecnologia XML” 79.00

“João da Silva”

“jsilva@xxx.com”

“js@hotmail.com”

nome mail

autor

nome

autor

“Maria Souza”

livro

. . .

document

node

element

nodelist

Exemplos de Métodos da API DOMExemplos de Métodos da API DOM

Método Resultado

documentElement Element

getElementByTagName(String) NodeList

createElement(String) Element

. . .

document

Método Resultado

tagName String

getAttribute(String) String

setAttribute(String nome, String valor) Attr

removeAttribute(String)

getElementsByTagName NodeList

. . .

element

Método Resultado

Length int

item(int) Node

nodeList

DOM – Exemplo DOM – Exemplo ((JavaScriptJavaScript))

var doc, raiz, livro1, autores, autor2;doc = new ActiveXObject(“Microsoft.XMLDOM”);doc.load(“livros.xml”);if (doc.parseError != 0) ...;else{ /* acessa o elemento raiz do documento XML */ 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);}

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd)d) XSL e XSLTXSL e XSLT

4. Bancos de Dados XML5. Considerações Finais

XSL (XSL (XML Style sheet LanguageXML 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 XMLHTML, XMLXML, XMLtexto puro, ...

Documento XSLDocumento 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” ?>...

Estrutura de um Doc XSL(T) Estrutura de um Doc XSL(T)

<stylesheet xmlns = "http://www.w3.org/XSL/Transform/1.0">

</template match = “/livro/autor"> ...</template>

...

</stylesheet>

elemento raiznamespace default

(DTD da W3C com instruções XSL)

padrão: indica o elemento ou atributo para o qual a regra se aplica

(expressão XPath)regra de formatação

Exemplo de Transformação XSLExemplo de Transformação XSL

<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>

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-templates select =

“livro[@tipo = "tecnico"]">

<sort = "título">

</apply-templates>

</P>

</template>

...

Transformação: doc XSL

processar elementos

filhos

selecionar livros

técnicos

ordenarpor

títrulo

Exemplo de Transformação XSLExemplo de Transformação XSL

<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>

Entrada: doc XML Transformação: doc XSL

selecionaro conteúdo

de título

...

<variable name = "separador">,</variable>

<template match = "título">

<value-of select = ".">

<value-of select = "{$separador}">

</template>

<template match = "autor/nome">

<value-of select = ".">

</template>

</stylesheet>

selecionaro conteúdo

do nomedo autor

Exemplo de Transformação XSLExemplo de Transformação XSL

<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>

Entrada: doc XML<html>

<head>

<title>

Livros Técnicos

</title>

</head>

<P>

XML Companion,N. Bradley

</P>

<P>

Data on the Web,S. Abiteboul

</P>

...

</html>

Saída: doc HTML

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4.4. Bancos de Dados XMLBancos de Dados XML5. Considerações Finais

XML e BDXML e BD

Dados XML– manipulação crescente por usuários e aplicações

Tecnologia de BD– necessária para a manutenção de dados

persistentes XML & BD

– XML é um dado não-convencional dado semi-estruturado

– tecnologia de BD necessita ser estendida para tratar este tipo de dado

Dado Semi-EstruturadoDado Semi-Estruturado

Principais características– estrutura heterogênea– estrutura auto-descritiva– estrutura parcial

Estrutura heterogêneaEstrutura heterogênea

Cada ocorrência de dado pode ter um esquema particular

<autor> <nome>Ronaldo Mello</nome> <endereco>rua B,23</endereco> <eMail>ronaldo@inf.ufsc.br</eMail></autor>

<autor> <nome>Patrícia Ramos</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>33313333</fone> <fone>33313332</fone></autor>

Estrutura auto-descritivaEstrutura auto-descritiva

Cada ocorrência de dado carrega o seu esquema

<autor> <nome>Patrícia Ramos</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>33313333</fone> <fone>33313332</fone></autor>

Estrutura parcialEstrutura 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>

XML & BD XML & BD

Dados XML não são naturalmente adequados para armazenamento em BDs

Dado de BD Dado XML

representação homogênea representação heterogênea

esquema independente dos dados

representação auto-descritiva

totalmente estruturado estrutura parcial

esquema enxuto esquema extenso

BD XML Nativo (ou BD XML)BD XML Nativo (ou BD XML) Suporta um modelo de dados proprietário para

dados XML– definição de elementos, atributos, ordem, ...– não há mapeamento para um esquema de dados

relacional Adequado a

– docs XML fortemente semi-estruturados “documentos orientados a textos” mapeamento para BD relacional seria complexo! necessidade de consultas envolvendo padrões textuais

– aplicações que lidam apenas com dados no formato XML Alguns SGBDRs possuem suporte nativo a XML

– exemplos: Oracle, DB2

BD XML - Características PrincipaisBD XML - Características Principais

Esquemas lógicos baseados em coleções Consultas Atualização Conectividade Restrições de Integridade Armazenamento e indexação de dados

Alguns exemplos: SGBD XML Tamino

ColeçõesColeçõ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– uma coleção pode estar restrita a um ou mais

esquemas XML

Consultas e atualizações podem ser direcionadas a coleções

Coleções - TaminoColeções - Tamino 1 BD – n coleções – n esquemas – n tipos de documentos

– cada tipo de documento define um elemento raiz permitido

– 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

ConsultasConsultas 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

ConsultasConsultas 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

AtualizaçõesAtualizaçõ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

XUpdateXUpdate Sintaxe XML

– I / E de elementos, atributos e texto– A do conteúdo de elementos e atributos

Exemplo 1:

(inclusão de um novo eMail para Maria)

Exemplo 2:

(remoção do primeiro livro)

<xupdate:append select=”//autor[nome=´Maria´]/eMail” child=”last()”>

<xupdate:element name="eMail">Maria@teste.com</xupdate:element>

</xupdate:append>

<xupdate:remove select="/listalivros/livro[1]"/>

Atualizações - TaminoAtualizações - Tamino

XQuery possui capacidades de atualização– insert, delete, rename e replace

Exemplos– update (inserção de autor)

for $liv in input()/livro where $liv/titulo = “XML”

do(insert (<autor><nome>João Silva</nome></autor>)

following $liv/autor[last()])

– update (alteração de eMail de autor)

for $aut in input()/livro/autor where $aut/nome = “Maria Souza”

do (replace $aut/eMail with (<eMail>ms@new.com</eMail>))

Conectividade – APIs Conectividade – APIs Interfaces ODBC tradicionais

– conexão com o BD, execução de consultas e atualizações e exploração de resultados

APIs XQuery e DOM para Java (JQX e JDOM)– JDBC como base

Protocolos HTTP– acesso via browsers Web

Consórcio XML:DB– proposta de 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

APIs - TaminoAPIs - Tamino Interface principal de acesso são browsers Web

– um servidor Tamino deve estar sempre associado a um Web server (domínio Internet)

– define uma API que encapsula chamadas HTTP criação e manipulação de BDs, coleções e docs

– acesso: http://<nome_domínio>/tamino/<nome_BD>/ [<nome_coleção>]<comando_API_HTTP>

Outras formas de acesso– API DOM para aplicações Java, Jscript e Active X– API XML:DB

Tamino – Conectividade HTTPTamino – Conectividade HTTP

Restrições de IntegridadeRestrições de Integridade

RIs a nível de esquemas XML são limitadas– ordem hierárquica e restrições de cardinalidade– tipo de dado de elementos e atributos– enumeração de valores permitidos– integridade referencial intra-documento

Carência de um mecanismo de integridade mais robusto– similar a SQL em BDRs (DCL)

Integridade Semântica - Tamino Integridade Semântica - Tamino Definição de valores possíveis (fixos, defaults, enumerações, ...)

Integridade referencial controlada por stored procedures (para cada caso indicado no campo trigger)

controles de integridade

ArmazenamentoArmazenamento Docs XML “in-natura” (campo longo)

– texto do doc preservado na íntegra (cabeçalho, comentários, ...)

– armazenamento clusterizado de fragmentos do doc

Esquema de objetos (DOM ou esquema similar a BDOO)

DOM BDOO

preserva ordem de elementos não preserva ordem de elementos

qualquer esquema tem a mesma estrutura (document, element, ...)

– intenção dos dados não fica clara

esquema de classes gerado de acordo com os tipos de elementos complexos

– intenção dos dados mais clara

clusterização por profundidade

– bom p/ buscas na ordem da hierarquia

clusterização por largura

– bom p/ buscas por propriedades de um elemento

clusterização geralmente por instâncias da mesma classe

– bom para buscas por dados de determinados tipos de elementos

IndexaçãoIndexação Indexação por valor

– indexa valores de elementos simples e atributos ex: buscar elementos com valor “XML”

Indexação por estrutura– indexa a localização de elementos e atributos

ex: buscar elementos com nome “XML”

Indexação full-text– indexa tokens em textos e valores de atributos

ex: buscar elementos que contenham a palavra “XML”

RoteiroRoteiro1. Introdução2. Dados e Documentos XML3. Componentes da Tecnologia XML

a) DTD e XML Schemab) XPath e XQueryc) DOMd) XSL e XSLT

4. Bancos de Dados XML5.5. Considerações FinaisConsiderações Finais

Considerações FinaisConsiderações Finais

Uso de XML hoje é uma realidade!– formato simples e leve– representação e transferência de dados entre pessoas

e sistemas– manipulação de dados XML requer soluções para

gerenciamento de dados XML tema de pesquisa atual na comunidade de BD duas frentes de pesquisa/desenvolvimento

– extensão de SGBDs relacionais– desenvolvimento de SGBDs XML nativos

BDs XML – CríticaBDs XML – Crítica Pontos a favor

– dados XML são semi-estruturados overhead de gerenciamento para BDs não-XML

– aplicações com dados complexos ou com regras de negócio pouco claras ou muito dinâmicas flexibilidade estrutural de docs XML modela melhor as transações e

dados (complexos) personalizados do negócio

– aplicações que lidam apenas com dados XML por quê adquirir um BD não-XML?

– modelo de dados diferente; recursos para o gerenciamento de dados XML é complicado

Tecnologia relativamente recente– algumas funcionalidades de SGBDs não são ainda tratadas ou

não estão consolidadas restrições de integridade, visões, segurança, concorrência, ...

BDRs – CríticaBDRs – Crítica

SGBDs robustos– gerenciamento “completo” e eficiente de dados

Modelo de dados não é XML– necessidade de um suporte de mapeamento para

importação/exportação de dados XML overhead de processamento

– apesar de alguns SGBDRs já possuírem recursos de armazenamento nativo de XML

definição de novos padrões de acesso– como SQL/XML

– alguns SGBDRs caminham em direção a um BD híbrido (relacional e XML)

Referências RelevantesReferências Relevantes Tecnologia XML

– http://www.w3c.org/xml– http://www.w3.org/XML/Schema#Tools– http://www.w3schools.com

XML & BD– http://www.rpbourret.com/xml/XMLAndDatabases.htm

XML:DB– http://www.xmldb.org

SGBDRs com suporte a XML (Oracle e DB2)– http://www.oracle.com/technology/tech/xml/xmldb– http://www-306.ibm.com/software/data/db2/extenders/xmlext/

SQL/XML– http://sqlx.org

SGBDs XML Nativos (Tamino e eXist)– http://www.softwareag.com/tamino – http://exist-db.org/

Introdução à Tecnologia Introdução à Tecnologia XMLXML

Ronaldo dos Santos Melloe-mail: ronaldo@inf.ufsc.br

http://www.inf.ufsc.br/~ronaldohttp://www.grupobd.inf.ufsc.br

UFSC – CTC - INE

top related