125
Gerenciamento de Gerenciamento de Dados XML Dados XML Ronaldo dos Santos Mello INE/CTC/UFSC [email protected] V Escola Regional de Informática Norte Mini-Curso

Gerenciamento de Dados XML

  • Upload
    anila

  • View
    28

  • Download
    0

Embed Size (px)

DESCRIPTION

V Escola Regional de Informática Norte Mini-Curso. Gerenciamento de Dados XML. Ronaldo dos Santos Mello INE/CTC/UFSC [email protected]. Sobre este mini-curso. Motivação XML consolida-se como padrão para representação e transferência de dados - PowerPoint PPT Presentation

Citation preview

Page 1: Gerenciamento de  Dados XML

Gerenciamento de Gerenciamento de Dados XMLDados XML

Ronaldo dos Santos Mello

INE/CTC/[email protected]

V Escola Regional de Informática Norte

Mini-Curso

Page 2: Gerenciamento de  Dados XML

Sobre este mini-curso...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

Page 3: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução2. Representação de Dados em XML3. Tecnologia XML4. XML e Bancos de Dados

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

5. Conclusão

Page 4: Gerenciamento de  Dados XML

RoteiroRoteiro

1.1. IntroduçãoIntrodução2. Representação de Dados em XML3. Tecnologia XML4. XML e Bancos de Dados

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

5. Conclusão

Page 5: Gerenciamento de  Dados XML

XML XML ((eXtensible Markup LanguageeXtensible 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

Page 6: Gerenciamento de  Dados XML

Protocolos XMLProtocolos 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, ...

– ...

Page 7: Gerenciamento de  Dados XML

Uso Extensivo de Protocolos XML...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

Page 8: Gerenciamento de  Dados XML

Tecnologia XML x Tecnologia BDTecnologia 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, ...

Page 9: Gerenciamento de  Dados XML

Tecnologia XML x Tecnologia BDTecnologia 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?

Page 10: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução

2.2. Representação de Dados em XMLRepresentação de Dados em XML3. Tecnologia XML4. XML e Bancos de Dados

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

5. Conclusão

Page 11: Gerenciamento de  Dados XML

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 utiliza tags para descrição os dados

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

Page 12: Gerenciamento de  Dados XML

Exemplo de Dado XMLExemplo de Dado XML<livro> <titulo>Tecnologia XML</titulo> <autor> <nome>João da Silva</nome> <eMail>[email protected]</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

Page 13: Gerenciamento de  Dados XML

XML x HTMLXML 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

Page 14: Gerenciamento de  Dados XML

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

Page 15: Gerenciamento de  Dados XML

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>[email protected]</eMail> </autor> ... <capítulo nome=“Introdução”>A &xml foi ... <seção>

<nome>Linguagens de Marcação</nome> ...</seção>

</capítulo> ... </livro> ...</listaLivros>

Page 16: Gerenciamento de  Dados XML

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>[email protected]</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

Page 17: Gerenciamento de  Dados XML

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>[email protected]</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

Page 18: Gerenciamento de  Dados XML

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>[email protected]</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

Page 19: Gerenciamento de  Dados XML

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>[email protected]</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 raizelemento simples (#PCDATA)

elemento composto

elemento misto

Page 20: Gerenciamento de  Dados XML

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>[email protected]</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

Page 21: Gerenciamento de  Dados XML

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>[email protected]</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

Page 22: Gerenciamento de  Dados XML

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 são capazes de realizar tal verificação

Page 23: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução2. Representação de Dados em XML

3.3. Tecnologia XMLTecnologia XML4. XML e Bancos de Dados

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

5. Conclusão

Page 24: Gerenciamento de  Dados XML

Tecnologia XMLTecnologia XML

Esquemas– DTD e XSD

Linguagens de consulta– XPath e XQuery

APIs– DOM, ...

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

. . .

Page 25: Gerenciamento de  Dados XML

Definição de EsquemasDefiniçã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)

Page 26: Gerenciamento de  Dados XML

DTDDTD

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

Page 27: Gerenciamento de  Dados XML

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

Page 28: Gerenciamento de  Dados XML

XSDXSD

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

– . . .

Page 29: Gerenciamento de  Dados XML

XSD - ExemploXSD - 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> ...

Page 30: Gerenciamento de  Dados XML

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

Page 31: Gerenciamento de  Dados XML

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

Page 32: Gerenciamento de  Dados XML

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[@ISBN=“112”]/título (filtro)

/livro//secao[../@nome=“XML e BD”] (filtro)

Page 33: Gerenciamento de  Dados XML

XQueryXQuery

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

for variável in expressãoXPath

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

[where condição]

return estrutura de resultado

Page 34: Gerenciamento de  Dados XML

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)

Page 35: Gerenciamento de  Dados XML

DOM (DOM (Document Object ModelDocument 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

Page 36: Gerenciamento de  Dados XML

Objetos do Modelo DOMObjetos do Modelo DOM

listaLivros

livro

título preço

ISBN

“Tecnologia XML” 79.00

“João da Silva”

[email protected]

[email protected]

nome mail

autor

nome

autor

“Maria Souza”

livro

. . .

document

node

element

nodelist

Page 37: Gerenciamento de  Dados XML

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

Page 38: Gerenciamento de  Dados XML

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{ 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);}

Page 39: Gerenciamento de  Dados XML

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

Page 40: Gerenciamento de  Dados XML

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

Page 41: Gerenciamento de  Dados XML

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

Page 42: Gerenciamento de  Dados XML

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

Page 43: Gerenciamento de  Dados XML

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 = "author/name">

<value-of select = ".">

</template>

</stylesheet>

selecionaro conteúdo

do nomedo autor

Page 44: Gerenciamento de  Dados XML

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

Page 45: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução2. Representação de Dados em XML3. Tecnologia XML

4.4. XML e Bancos de DadosXML e Bancos de Dadosa. gerenciamento de dados XML através de

bancos de dados relacionaisb. gerenciamento de dados XML através de

bancos de dados XML nativos

5. Conclusão

Page 46: Gerenciamento de  Dados XML

XML e BDXML 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

Page 47: Gerenciamento de  Dados XML

Dados Semi-EstruturadosDados Semi-Estruturados

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

Page 48: Gerenciamento de  Dados XML

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>[email protected]</eMail></autor>

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

Page 49: Gerenciamento de  Dados XML

Estrutura auto-descritivaEstrutura 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>

Page 50: Gerenciamento de  Dados XML

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>

Page 51: Gerenciamento de  Dados XML

Estrutura dinâmicaEstrutura dinâmica

Esquema para os dados deve suficientemente flexível para contemplar a heterogeneidade das ocorrências– conseqüências

esquemas extensos esquemas com suporte a representações alternativas

Page 52: Gerenciamento de  Dados XML

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

esquema fixo esquema dinâmico

Page 53: Gerenciamento de  Dados XML

Categorias de Docs XMLCategorias de Docs XML

Documento Orientado a Dados (DOD)– fracamente semi-estruturado

representação de dados mais homogênea e estruturada

<endereco> <rua>Beira-Mar</rua><numero>104</numero><complemento>apto 203</complemento> <bairro>centro</bairro><cidade>Fpolis</cidade> <cep>88010-600</cep></endereco> <endereco> <rua>Lauro Linhares</rua><numero>761</numero><bairro>trindade</bairro> <cidade>Fpolis</cidade><cep>88040-900</cep></endereco>

Page 54: Gerenciamento de  Dados XML

Categorias de Docs XMLCategorias de Docs XML

Documento Orientado a Documento (DODoc)– fortemente semi-estruturado

representação fortemente textual

<anuncio><transacao>Vendo</transação>, por motivo de viagem,<produto>automóvel Gol I 97</produto>, cor azul, em ótimo estado de conservação. Preço: R$<preco>9000,00</preco>. Tratar com<contato><nome>Pedro</nome> fone</fone>99991111</fone></contato> </anuncio> <anuncio>Atenção! Se você deseja vender o seu veículo, nós realizamos o melhor negócio. <transacao>Compramos</transação> qq tipo de <produto>veículo</produto>. Ligue-nos: <contato><fone>2340011</fone> ou envie um e-mail:<eMail>[email protected]</eMail><contato></anuncio>

Page 55: Gerenciamento de  Dados XML

Duas alternativas para gerenciamento de dados XML são geralmente adotadas– uso de BDs relacionais estendidos para lidar

com dados XML mais adequado a DODs

– uso de BDs XML nativos mais adequado a DODocs

Categorias de Docs XMLCategorias de Docs XML

Page 56: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução

2. Representação de Dados em XML

3. Tecnologia XML

4. XML e Bancos de Dados

a.a. gerenciamento de dados XML através gerenciamento de dados XML através de bancos de dados relacionaisde bancos de dados relacionais

b. gerenciamento de dados através de bancos de dados XML nativos

5. Conclusão

Page 57: Gerenciamento de  Dados XML

BDs Relacionais e XMLBDs Relacionais e XML

Alternativa adequada a docs XML fortemente estruturados

Ênfase nos dados propriamente ditos– manipulação dos dados delimitados por tags – ordem hierárquica dos elementos e componentes

textuais não são relevantes Adequado a aplicações que realizam

intercâmbio de dados convencionais em XML– dados de BD, arquivos, relatórios, docs bem

formatados em geral

Page 58: Gerenciamento de  Dados XML

BDs Relacionais e XMLBDs Relacionais e XML

Vantagem– uso da tecnologia de BD relacional

acesso eficiente sscalabilidade linguagens de consulta declarativas tecnologia utilizada em larga escala

Vários SGBDs já lidam com o formato XML– Oracle 9i, DB2, Informix, ...

Page 59: Gerenciamento de  Dados XML

BDs Relacionais e XMLBDs Relacionais e XML

Questões básicas a resolver– armazenamento de docs XML– acesso a dados XML

Page 60: Gerenciamento de  Dados XML

Armazenamento de Docs XMLArmazenamento de Docs XML

Soluções adotadas dependem da intenção da aplicação

Alternativas– uso de aplicações middleware– implementação do tratamento de dados XML

no próprio BD relacional

Page 61: Gerenciamento de  Dados XML

Aplicações Aplicações MiddlewareMiddleware

Aplicações que realizam o mapeamento de dados relacionais para XML e vice-versa– apenas dados relacionais são mantidos no BD– protocolo XML de mapeamento é definido

previamente entre as aplicações

Solução adequada a aplicações– que apenas desejam transferir dados relacionais– que não manipulam nem definem dados

diretamente no formato XML

Page 62: Gerenciamento de  Dados XML

Aplicações Aplicações MiddlewareMiddleware

BDR 1

aplicaçãomiddleware

aplicação A

BDR 2

aplicação B

aplicaçãomiddleware

x1 x2

10 15

... ...

tabela BD1.Xx1 x2

10 15

... ...

tabela BD2.X

<BD nome=“1”> <tabela nome=“1”> <linha> <coluna nome=“x1”>10</coluna> <coluna nome=“x2”>15</coluna> </linha> . . . </tabela> . . .</BD>

Web

Page 63: Gerenciamento de  Dados XML

Armazenamento XML no BDArmazenamento XML no BD

Dois enfoques– grafo [Florescu99]– níveis de granularidade [Graves03]

Page 64: Gerenciamento de  Dados XML

Enfoque - GrafoEnfoque - Grafo Doc XML é armazenado na forma de 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> <eMail>[email protected]</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ...</livro> ...</listaLivros>

6

livro

título

. . .

listaLivros

ISBN

nome

autor

capítulo

“XML”“Introdução”

[email protected]"

eMail

“112”

2

1

3

4

. . .

5

“João Silva”7

8

nome

9

. . .

. . .

Page 65: Gerenciamento de  Dados XML

Alternativa 1 – Tabela de ArestasAlternativa 1 – Tabela de Arestas

origem ordem nome tipo destino valor

...

1 1 livro ref 2

...

2 1 ISBN int 3 112

2 2 título string 4 XML

2 3 autor ref 5

2 4 capítulo ref 8

...

5 1 nome string 6 João

Silva

...

6

livro

título

. . .

listaLivros

ISBN

nome

autor

capítulo

“XML”“Introdução”

[email protected]"

eMail

“112”

2

1

3

4

. . .

5

“João Silva”7

8

nome

9

. . .

. . .

Arestas

Page 66: Gerenciamento de  Dados XML

Alternativa 2 – Tabelas p/ RótulosAlternativa 2 – Tabelas p/ Rótulos

origem ordem destino

1 1 2

...

origem ordem destino valor

2 2 4 XML

...

Livro

origem ordem destino

2 3 5

...

Autor

Título

6

livro

título

. . .

listaLivros

ISBN

nome

autor

capítulo

“XML”“Introdução”

[email protected]"

eMail

“112”

2

1

3

4

. . .

5

“João Silva”7

8

nome

9

. . .

. . .

origem ordem destino valor

5 1 6 João Silva

...

NomeAutor

. . .

Page 67: Gerenciamento de  Dados XML

Enfoque - GrafoEnfoque - Grafo

Tabela de Arestas Tabelas p/ Rótulos

+ Uma única tabela Bom desempenho para buscas na hierarquia do doc

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

Page 68: Gerenciamento de  Dados XML

Enfoque – Níveis de GranularidadeEnfoque – 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

Page 69: Gerenciamento de  Dados XML

Granularidade GrandeGranularidade Grande

<?xml version =“1.0” encoding = ...><listaLivros><livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>[email protected]</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ...</livro> ...</listaLivros>

DocID Nome Conteúdo

1 livros.xml

. . .

livros.xml

---Documentos

Page 70: Gerenciamento de  Dados XML

Granularidade PequenaGranularidade Pequena

<?xml version =“1.0” encoding = ...><listaLivros><livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>[email protected]</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ...</livro> ...</listaLivros> livros.xml

elemID tag elemPai ordem doc

1 listaLivros 1

2 livro 1 1 1

3 título 2 1 1

. . .

docID nome raiz

1 livros.xml 1

. . .

Documentos

Elementos

atrID tag elem ordem valor

1 ISBN 2 1 112

...

Atributos

contID valor elem

1 XML 3

2 João Silva 5

. . .

Conteúdos

Page 71: Gerenciamento de  Dados XML

Granularidade MédiaGranularidade Média

<?xml version =“1.0” encoding = ...><listaLivros><livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>[email protected]</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ...</livro> ...</listaLivros> livros.xml

elemID tag elemPai ordem doc

1 listaLivros 1

2 livro 1 1 1

3 título 2 1 1

. . .

Elementos

atrID tag elem ordem valor

1 ISBN 2 1 112

...

Atributos

docID nome raiz

. ...

Documentos

contID conteúdo elem ordem

1 2 3

. . .

Textos

---

contID valor elem

. . .

Conteúdos

Page 72: Gerenciamento de  Dados XML

Enfoque – Níveis de GranularidadeEnfoque – Níveis de GranularidadeGranularidade

GrandeGranularidade

MédiaGranularidade

Pequena

aumenta a complexidade para a reconstrução do doc XML aumenta a complexidade do esquema relacional aumenta o desempenho de consultas declarativas

– granularidade grande: buscas por palavras-chaveX

– granularidade pequena: consultas a qq tipo de dado do doc; qq item de dado pode ser indexado

diminui o volume de armazenamento– granularidade grande/média: tags do doc ocupam muito espaço

Page 73: Gerenciamento de  Dados XML

Projeto do Esquema RelacionalProjeto do Esquema Relacional

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

– . . .

Page 74: Gerenciamento de  Dados XML

Projeto do Esquema RelacionalProjeto do Esquema Relacional

Combinações de enfoques podem ser adotadas– exemplo: tabelas por rótulo + granularidade média

possibilidade de consulta declarativa a cada tipo de elemento ou atributo até o nível de detalhe desejado

certa economia de espaço desempenho médio na reconstrução do doc XML

Page 75: Gerenciamento de  Dados XML

Exemplo 1 – Exemplo 1 – DB2 XML ExtenderDB2 XML Extender

Armazenamento de doc XML – granularidade grande

coluna XMLCLOB, XMLVarchar ou XMLFile indexação de elementos e atributos

– enfoque de grafo baseado em tabelas por rótulo mapeamento DTD-Tabelas definido pelo projetista

Page 76: Gerenciamento de  Dados XML

Exemplo 1 – Exemplo 1 – DB2 XML ExtenderDB2 XML Extender Exemplo de armazenamento com granularidade

grande

TABLE Documentos docID VARCHAR(10) NOT NULL PRIMARY KEY nome VARCHAR(40)

conteúdo XMLCLOB;

Page 77: Gerenciamento de  Dados XML

Exemplo 2 – Exemplo 2 – Oracle 9iOracle 9i Armazenamento de doc XML

– granularidade grande coluna CLOB indexação textual (palavras-chave)

– granularidade pequena “virtual” mapeamento XSD-Esquema hierárquico OR ou DOM

– possibilidade de definir quais elementos e atributos serão mapeados

coluna 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”)

Page 78: Gerenciamento de  Dados XML

Exemplo 2 – Exemplo 2 – Oracle 9iOracle 9i

Exemplo de armazenamento com granularidade pequena “virtual” (II)

create table DocsXMLEstruturados(

docID varchar(10), nome varchar2(40),conteúdo xmltype )

xmltype column conteúdo xmlschema "http://asktom.oracle.com/xsd/purchaseOrder.xsd"

Page 79: Gerenciamento de  Dados XML

Acesso a Dados XMLAcesso a Dados XML

Armazenamento dos dados XML é relacional– SQL é o padrão para acesso!

Esquemas relacionais mais complexos– exs.: granularidade pequena ou tabelas por rótulo– consultas SQL tradicionais resolvem!

Esquemas relacionais mais simples– exs.: granularidade grande/média– consultas SQL estendidas ao conteúdo do doc

Resultados de consultas no formato XML

Page 80: Gerenciamento de  Dados XML

Consultas ao Conteúdo do Doc Consultas ao Conteúdo do Doc

Organização física do doc em fragmentos Índices por palavras-chave a fragmentos

– buscas por palavras-chave– linguagens de consulta XML podem ser

utilizadas para buscas baseadas em nomes de tags ou de atributos

Clustering de fragmentos de um mesmo doc

Page 81: Gerenciamento de  Dados XML

Consultas ao Conteúdo do DocConsultas ao Conteúdo do Doc

Exemplo1 – DB2 XML Extender

select docID, nome

from Documentos

where extract Varchar (conteúdo,

“/listaLivros/livro/título”)

like “%XML%”

Page 82: Gerenciamento de  Dados XML

Consultas ao Conteúdo do DocConsultas ao Conteúdo do Doc

Exemplo2 – Oracle 9i

select extractValue (conteúdo,'/listalivros/livro/título') from DocsXMLEstruturados where existsNode(conteúdo,'/listalivros/

livro/autor/nome') = “João Silva”

Page 83: Gerenciamento de  Dados XML

Resultados de Consultas em XMLResultados de Consultas em XML

Uma estrutura XML pode ser gerada como resultado Um doc XML pode ser reconstruído ou gerado SQL/XML

– padrão ANSI ISO derivado do SQL

– define o tratamento de dados XML pela SQL

– diversas funcionalidades geração de elementos, hierarquias de elementos ou docs XML agrupamento e concatenação de elementos ou hierarquias de

elementos transformação de estruturas XML através de XSL

Page 84: Gerenciamento de  Dados XML

Resultados de Consultas em XMLResultados de Consultas em XML

Oracle 9i e DB2 XML Extender – ambos adotam parcialmente SQL/XML– geração de docs XML

Oracle 9i– métodos da API DBMS_XMLGEN geram docs XML a partir

do resultado de consultas SQL/XML

DB2 XML Extender – definição de um esquema de mapeamento relacionalXML

(DAD) e uso de métodos específicos de geração (dxxGenXMLCLOB(), dxxRetrieveXMLCLOB(), ...)

– geração de relatórios a partir de consultas SQL com formatação XML

Page 85: Gerenciamento de  Dados XML

Resultados de Consultas em XMLResultados de Consultas em XML

Exemplo 1 – Oracle 9i 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.editoraGROUP BY e.razao_social;

Page 86: Gerenciamento de  Dados XML

Resultados de Consultas em XMLResultados de Consultas em XML

Exemplo 1 – Oracle 9i– 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”>...

Page 87: Gerenciamento de  Dados XML

Resultados de Consultas em XMLResultados de Consultas em XML Exemplo2 – DB2 XML Extender

dxxGenXMLCLOB(

CLOB(100K) EspecifDAD, /* arq. Map */

...,

CLOB(1M) docXML, /* doc XML result. */

)

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DAD PUBLIC "dadId" "dad.dtd"><DAD> <dtdid>defaults.dtd</dtdid> <Xcollection> ... <prolog>?xml version="1.0"?</prolog> ... <element_node name="ClassingRequest"> <RDB_node> <table name="TEST.TAB1" key=“IMBSSN IMBRID IMBBLE"/> <table name="TEST.TAB2" key="IMHSSN IMHRID"/> <condition> TEST.TAB1.IMBSSN=TEST.TAB2.IMBSSN </condition> </RDB_node> ...</DAD> Exemplo de esquema de mapeamento (DAD)

Exemplo de uso da função de geração de doc XML

Page 88: Gerenciamento de  Dados XML

Atualização de Dados XMLAtualização de Dados XML

Esquemas de granulação média/pequena– atualizações a nível relacional devem preservar

docs XML correspondentes sempre válidos

Esquemas de granulação grande– operações de inclusão, exclusão e sobreposição

de docs XML

Page 89: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução

2. Representação de Dados em XML

3. Tecnologia XML

4. XML e Bancos de Dadosa. gerenciamento de dados XML através de bancos de

dados relacionais

b.b. gerenciamento de dados XML através gerenciamento de dados XML através de bancos de dados XML nativosde bancos de dados XML nativos

5. Conclusão

Page 90: Gerenciamento de  Dados XML

BD XMLBD XML BD que suporta um modelo lógico para

dados XML– requisitos mínimos

definição de elementos, atributos, #PCDATA e ordem

Adequados a – docs XML fortemente semi-estruturados

mapeamento para BD relacional seria complexo!

– aplicações que lidam apenas com dados no formato XML

Intensa atividade de pesquisa e desenvolvimento

Page 91: Gerenciamento de  Dados XML

BD XML x BD XML NativoBD XML x BD XML Nativo

BD XML Nativo– define um modelo de armazenamento físico

proprietário para dados XML

BD XML– pode ser construído sobre um BD com um modelo

lógico e físico diferente exemplo: BD relacional (tabelas e registros)

– apenas uma visão lógica XML é disponibilizada

Page 92: Gerenciamento de  Dados XML

BD XML - CaracterísticasBD XML - Características

Objetivo– discussão de características encontradas ou

desejadas em BD XML

Estudo de Caso– SGBD XML Tamino (www.softwareag.com/tamino)

“Transaction Architecture for the Management of INternet Objects”

servidor de dados XML desenvolvido pela Software AG suporte a SQL (mapeamento para formato relacional)

Page 93: Gerenciamento de  Dados XML

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

Page 94: Gerenciamento de  Dados XML

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

– tipo de documento: definição de elemento raiz

– novo doc XML: inserido em uma coleção e válido para algum tipo doc

Docs sem esquema mantidos na coleção ino:etc

tipos de documentos

Page 95: Gerenciamento de  Dados XML

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– busca por padrões (texto em linguagem natural)– consultas declarativas– resultados de consultas

doc XML, fragmentos de docs XML ou novas estruturas XML

Page 96: Gerenciamento de  Dados XML

Consultas - TaminoConsultas - Tamino Suporte a Xpath (chamada X-Query) e XQuery estendidos Geração de docs XML como resultado

busca por padrão

Page 97: Gerenciamento de  Dados XML

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

exemplo: XUpdate (consórcio XML:DB) XML:DB

– consórcio de empresas responsável pelo desenvolvimento de tecnologias para BDs XML

tendência: XQuery como linguagem de atualização

Page 98: Gerenciamento de  Dados XML

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">[email protected]</xupdate:element>

</xupdate:append>

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

Page 99: Gerenciamento de  Dados XML

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>[email protected]</eMail>))

Page 100: Gerenciamento de  Dados XML

Gerência de TransaçõesGerência de Transações

Controle convencional de concorrência e recuperação contra falhas

Granularidade de bloqueios – coleção– doc XML (bloqueio usual – baixo nível de

concorrência)– elementos

Page 101: Gerenciamento de  Dados XML

Gerência de Transações - TaminoGerência de Transações - Tamino

Usuários definem sessões de conexão com o BD – várias transações podem ocorrer dentro de uma

sessão– interrupção da sessão implica rollback de todas as

transações pendentes mecanismo de log e backup de dados

– deadlock transação mais recente tem prioridade

Granularidade de bloqueio é sempre o doc XML– existe um limite máximo de tempo para manter um

doc bloqueado

Page 102: Gerenciamento de  Dados XML

APIs - ConectividadeAPIs - Conectividade

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 (alguns BDs)

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

Page 103: Gerenciamento de  Dados XML

APIs - TaminoAPIs - Tamino Interface principal de acesso é via 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

Page 104: Gerenciamento de  Dados XML

Tamino – Conectividade HTTPTamino – Conectividade HTTP

Page 105: Gerenciamento de  Dados XML

Round-TrippingRound-Tripping

Capacidade de recuperação integral de um doc XML– seqüência textual intacta

Funcionalidade importante para DODocs Precisão do round-tripping é diretamente

proporcional ao poder de expressão do modelo lógico– BDs XML garantem pelo menos round-tripping

a nível de elementos, atributos e seus conteúdos

Page 106: Gerenciamento de  Dados XML

Round-TrippingRound-Tripping - Tamino - Tamino

Duas formas de armazenamento– campo longo CLOB

utilizado para DODocs e docs XML sem esquema índices de texto podem ser definidos

– permite buscas por padrões

100% round-tripping

– formato nativo esquema de objetos proprietário utilizado para DODs índices sobre elementos e atributos podem ser definidos garante round-tripping a nível de hierarquia de

elementos

Page 107: Gerenciamento de  Dados XML

Armazenamento de Entidades Armazenamento de Entidades ExternasExternas

Fragmentos de docs XML podem ser externos – referenciados através de entidades

Duas alternativas básicas1. manter a referência e não incorporar os dados2. incorporar o conteúdo da referência ao doc XML

Alternativa 1 é relevante se o conteúdo é um dado não-XML (imagem, programa, ...)

Tamino– dados externos são armazenados separadamente (campos

longos, em geral)– referências a estes dados são mantidas para fins de

reconstrução do doc XML

Page 108: Gerenciamento de  Dados XML

Redundância de DadosRedundância de Dados

Comum em docs XML– um elemento é sub-elemento de diversos elementos

Armazenamento não-redundante de elementos em geral não é considerado– difícil identificar unicamente uma instância de

elemento– aumento da complexidade de reconstrução da

hierarquia do doc XML Tamino

– mantém armazenamento redundante

Page 109: Gerenciamento de  Dados XML

Integridade ReferencialIntegridade Referencial

Referências em um doc XML– atributos id / idref– definição de links internos ou externos

Integridade referencial em geral controlada a nível de referências internas ao doc XML

Page 110: Gerenciamento de  Dados XML

Integridade SemânticaIntegridade Semântica

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– valores permitidos

Basicamente estas RIs são controladas em BDs XML

Carência de um mecanismo de integridade mais robusto– similar a BD relacional (SQL/DDL)

Page 111: Gerenciamento de  Dados XML

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

Integridade referencial controlada por “funções de extensão” (para cada caso indicado na trigger)

controles de integridade

Page 112: Gerenciamento de  Dados XML

Projeto de um BD XMLProjeto de um BD XML Não há uma metodologia consolidada Projeto tradicional de um BD

– (i) especificação de requisitos; (ii) modelagem conceitual; (iii) modelagem lógica e (iv) modelagem física ou implementação

– pode ser aplicado a um BD XML adequado a DODs

– foco nos dados; docs XML fortemente estruturados

no caso de DODocs– revisão da modelagem física: considerar a existência de

informação textual não-estruturada no conteúdo de elementos

Page 113: Gerenciamento de  Dados XML

Guia para Projeto de BD XMLGuia para Projeto de BD XML

1. Especificação de requisitos levantamento das necessidades de dados

2. Modelagem conceitual uso de um modelo de dados convencional (ex.: ER)

3. Modelagem lógica uso de um modelo de dados baseado em grafo

adequado à representação de uma hierarquia XML

4. Modelagem física especificação do esquema XML (DTD ou XSD)

Page 114: Gerenciamento de  Dados XML

Modelagem Conceitual - ExemploModelagem Conceitual - Exemplo

Autores

nome

eMail (0,N)autoria(1,N)

Livros(0,N)

títuloISBN

organização(1,N)(1,1)

Capítulos

ordem nome

referências (0,N)

Page 115: Gerenciamento de  Dados XML

Modelagem LógicaModelagem Lógica

Grafo orientado Nodos não-terminais (ou não-léxicos)

– mapeamento de entidades do ER– modelam elementos compostos

Nodos terminais (ou léxicos)– mapeamento de atributos do ER– modelam conteúdo de elemento ou de atributo

Arestas rotuladas com restrições de cardinalidade– mapeamento de relacionamentos ou associações

entidade-atributo do ER– modelam relacionamentos hierárquicos ou associações

elemento-atributo no doc XML

Page 116: Gerenciamento de  Dados XML

Modelagem LógicaModelagem Lógica

Eleição do nodo não-léxico central– entidade central na modelagem conceitual

a partir dela uma hierarquia de nodos pode ser definida a partir de seus relacionamentos no ER

exemplo: Livro

– um nodo raiz deve ser definido como pai deste nodo (cardinalidade 1:N) sugestões de nomenclatura

– conjunto de ocorrências da entidade central (ex.: Livros)– contexto do domínio (exs.: Livraria, Biblioteca, ...)

Mais de um nodo central pode existir...– entidades “independentes” (ex.: livros e funcionários de uma

biblioteca)– todos serão filhos do nodo raiz (ex.: biblioteca)

Page 117: Gerenciamento de  Dados XML

Modelagem Lógica - ExemploModelagem Lógica - Exemplo

(1,N)

Livro(1,1) (1,1)

ISBN

Autor

Título

(1,1)

Nome(0,N)

eMail

(1,N)

Capítulo(1,1)

Nome

(1,1)

Ordem

Livros

(1,N)

nodo raiz

nodo centralnodo léxico

nodo não-léxico

(0,N)

Referência

Page 118: Gerenciamento de  Dados XML

Modelagem FísicaModelagem Física

Definição de elementos e atributos do esquema – nodos não-léxicos elementos compostos– nodos léxicos elementos #PCDATA ou atributos

Determinação da ordem de sub-elementos– análise das arestas que partem do nodo não-léxico

Modelagem física de um nodo léxico– como atributo

economia de espaço no doc XML possibilidade de definição de restrições de integridade

– como elemento recomendado para conteúdos extensos

Page 119: Gerenciamento de  Dados XML

Modelagem Física - ExemploModelagem Física - Exemplo

(1,N)

Livro(1,1) (1,1)ISBN

Autor

Título

(1,1)

Nome(0,N)

eMail

(1,N)

Capítulo(1,1)

Nome

(1,1)

Ordem

Livros

(1,N)

<!ELEMENT Livros (Livro+)><!ELEMENT Livro (Título, Autor+, Capítulo+)><!ATTLIST Livro ISBN CDATA><!ELEMENT Título (#PCDATA)><!ELEMENT Autor (Nome, eMail*)><!ELEMENT Nome (#PCDATA)><!ELEMENT eMail (#PCDATA)><!ELEMENT Capítulo (Nome, Referência*)><!ATTLIST Capítulo ordem CDATA><!ELEMENT Referência (#PCDATA)>

(0,N)

Referência

Page 120: Gerenciamento de  Dados XML

Modelagem Física - RevisãoModelagem Física - Revisão<!ELEMENT Livros (Livro+)><!ELEMENT Livro (Título, Autor+, Capítulo+)><!ATTLIST Livro ISBN CDATA><!ELEMENT Título (#PCDATA)><!ELEMENT Autor (Nome, eMail*)><!ELEMENT Nome (#PCDATA)><!ELEMENT eMail (#PCDATA)><!ELEMENT Capítulo (Nome, Referência*)><!ATTLIST Capítulo ordem CDATA><!ELEMENT Referência (#PCDATA)>

<!ELEMENT Livros (Livro+)><!ELEMENT Livro (Título, Autor+, Capítulo+)><!ATTLIST Livro ISBN CDATA><!ELEMENT Título (#PCDATA)><!ELEMENT Autor (Nome, eMail*)><!ELEMENT Nome (#PCDATA)><!ELEMENT eMail (#PCDATA)><!ELEMENT Capítulo (Nome, Texto)><!ELEMENT Texto (#PCDATA | Referência)*><!ELEMENT Referência (#PCDATA)>

• ordem implícita para capítulos• capítulos com conteúdo textual

Page 121: Gerenciamento de  Dados XML

RoteiroRoteiro

1. Introdução2. Representação de Dados em XML3. Tecnologia XML4. XML e Bancos de Dados

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

5.5. ConclusãoConclusão

Page 122: Gerenciamento de  Dados XML

ConclusãoConclusão

Uso amplo de 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

SGBDs XML nativos irão vingar?...

Page 123: Gerenciamento de  Dados XML

ConclusãoConclusão Argumentos a favor de BDs XML nativos

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

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

transações e dados personalizados do negócio

– custo da extensão de um BD não-XML incorporação da tecnologia XML, mapeamento de/para

o formato XML

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

– sub-utilização de recursos; recursos para o gerenciamento de dados XML é limitado ou complicado

Page 124: Gerenciamento de  Dados XML

ConclusãoConclusã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?

Page 125: Gerenciamento de  Dados XML

ReferênciasReferências

Tecnologia XML– http://www.w3c.org/xml

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

SQL/XML– http://otn.oracle.com/tech/xml/xmldb/htdocs/sql_xml.html

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

SGBD XML Tamino– http://www.softwareag.com/tamino