25
Categorias de Documentos Categorias de Documentos XML 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>

Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Embed Size (px)

Citation preview

Page 1: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Categorias de Documentos XMLCategorias de Documentos 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 2: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 3: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

BD estendido para lidar com dados XML– mais adequado a DODs– funcionalidades para tratamento de dados XML

aplicadas a um BD com um modelo lógico e físico diferente BD Relacional, BDOO, ...

– pode apresentar um modelo lógico para dados XML ou apenas definir um mapeamento de um esquema lógico XML para o esquema lógico do BD

BD XML nativo– mais adequado a DODocs– gerenciamento específico de dados XML

Tipos de BDs para XMLTipos de BDs para XML

Page 4: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

BD XML NativoBD XML Nativo Suporta um modelo lógico para dados XML

– requisitos mínimos definição de elementos, atributos, #PCDATA e ordem

Define um modelo de armazenamento físico proprietário para dados XML

Adequado a – docs XML fortemente semi-estruturados

mapeamento para BD relacional seria complexo!

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

Page 5: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

BD XML Nativo - CaracterísticasBD XML Nativo - Características

Objetivo– discussão de características encontradas ou

desejadas em BDs XML Nativos

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

Page 6: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

ColeçõesColeções

Noção lógica de um conjunto de docs XML– a decisão sobre 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 7: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Coleções - TaminoColeções - Tamino 1 BD – n coleções – n esquemas com 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 8: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 (análise de conteúdo textual)– consultas declarativas– resultados de consultas

doc XML, fragmentos de docs XML ou novas estruturas XML

Page 9: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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

busca por padrão

Page 10: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 11: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 12: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 13: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 14: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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

Conceitos de transação e sessão – 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 15: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

ConectividadeConectividade

Interface ODBC– 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 16: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Conectividade - TaminoConectividade - Tamino

Interface principal de acesso é HTTP– 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 Java– API XML:DB

Page 17: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Tamino – Conectividade HTTPTamino – Conectividade HTTP

Page 18: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Round-TrippingRound-Tripping

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

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 19: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Round-TrippingRound-Tripping - Tamino - Tamino

Duas formas de armazenamento– campo longo CLOB

utilizado em geral para 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 índices sobre elementos e atributos podem ser definidos garante round-tripping a nível de hierarquia de

elementos

Page 20: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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– integridade referencial dentro de um documento XML

(recursos do tipo ID/IDREF ou key/keyref) Basicamente estas RIs são controladas em BDs

XML Carência de um mecanismo de integridade mais

robusto– similar a BD relacional (checks, triggers, ...)

Page 21: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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 22: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

ArmazenamentoArmazenamento Docs XML “in-natura”

tratados como uma “caixa preta”– deseja-se preservar o texto do documento

indexação apenas textual (por palavra-chave)

Objetos DOM que representam os dados XML (+ usado) armazenamento clusterizado de objetos

– nodos próximos na hierarquia do doc XML são armazenados próximos fisicamente

através de uma busca em largura ou profundidade

– facilita indexação e busca de uma hierarquia de objetos apenas os elementos de mais alto nível precisam ser indexados os demais elementos são buscados via varredura linear

Page 23: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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

– para elementos e atributos

Indexação de texto do doc XML Indexação de estrutura

– indexação de nodos do doc XMO associada a técnicas para localização de nodos filhos facilita consultas em docs XML sem esquema

– não se sabe quais elementos filhos um elemento possui

Page 24: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

Indexação – SGBD eXistIndexação – SGBD eXist Índices são IDs numéricos para nodos, com uma numeração

dada por uma busca em largura– supondo uma árvore sempre completa (“nodos virtuais”)

– certas propriedades da árvore permitem calcular o ID de nodos filhos, pai, irmãos, ... ex.: maxFilhos = 4 filhos de X [ID(X)*4+1, ID(X)*4+4]

livro

título preço

nome mail

autor autor

0

nome mail

1 2 3 4

. . .

“XML & BD” 79.00

8 12

15 16 19 20

Page 25: Categorias de Documentos XML Documento Orientado a Dados (DOD) –fracamente semi-estruturado representação de dados mais homogênea e estruturada Beira-Mar

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