Title: Categorias de Documentos XML
1Categorias de Documentos XML
- Documento Orientado a Dados (DOD)
- fracamente semi-estruturado
- representação de dados mais homogênea e
estruturada
ltenderecogt ltruagtBeira-Marlt/ruagtltnumerogt104lt/num
erogtltcomplementogtapto 203lt/complementogt
ltbairrogtcentrolt/bairrogtltcidadegtFpolislt/cidadegt
ltcepgt88010-600lt/cepgt lt/enderecogt ltenderecogt
ltruagtLauro Linhareslt/ruagtltnumerogt761lt/numerogtltbair
rogttrindadelt/bairrogt ltcidadegtFpolislt/cidadegtltc
epgt88040-900lt/cepgt lt/enderecogt
2Categorias de Docs XML
- Documento Orientado a Documento (DODoc)
- fortemente semi-estruturado
- representação fortemente textual
ltanunciogt lttransacaogtVendolt/transaçãogt, por
motivo de viagem,ltprodutogtautomóvel Gol I
97 lt/produtogt, cor azul, em ótimo estado de
conservação. Preço Rltprecogt9000,00lt/precogt.
Tratar comltcontatogtltnomegtPedrolt/nomegt
fonelt/fonegt99991111lt/fonegtlt/contatogt
lt/anunciogt ltanunciogt Atenção! Se você deseja
vender o seu veículo, nós realizamos o melhor
negócio. lttransacaogtCompramoslt/transaçãogt qq tipo
de ltprodutogtveículolt/produtogt. Ligue-nos
ltcontatogtltfonegt2340011lt/fonegt ou envie um
e-maillteMailgtlojao_at_bla.com.brlt/eMailgtltcontatogt lt/
anunciogt
3Tipos de BDs para XML
- 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
4BD 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
5BD 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
6Coleçõ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
7Coleçõ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 inoetc
tipos de documentos
8Consultas
- 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
9Consultas - Tamino
- Suporte a Xpath (chamada X-Query) e XQuery
estendidos - Geração de docs XML como resultado
busca por padrão
10Atualizaçõ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 XMLDB)
- XMLDB
- consórcio de empresas responsável pelo
desenvolvimento de tecnologias para BDs XML - tendência (?) XQuery como linguagem de
atualização
11XUpdate
- 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)
ltxupdateappend select//autornomeMaria/eMai
l childlast()gt ltxupdateelement
name"eMail"gtMaria_at_teste.comlt/xupdateelementgt lt/x
updateappendgt
ltxupdateremove select"/listalivros/livro1"/gt
12Atualizaçõ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 (ltautorgtltnomegtJoão Silvalt/nomegtlt/autor
gt) - following liv/autorlast())
- update (alteração de eMail de autor)
- for aut in input()/livro/autor
- where aut/nome Maria Souza
- do (replace aut/eMail with
- (lteMailgtms_at_new.comlt/eMailgt))
13Gerê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
14Gerê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
15Conectividade
- 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 XMLDB
- 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
16Conectividade - 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//ltnome_domíniogt/tamino/ltnome_BDgt/ltn
ome_coleçãogtltcomando_API_HTTPgt - Outras formas de acesso
- API DOM para Java
- API XMLDB
17Tamino Conectividade HTTP
18Round-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
19Round-Tripping - 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
20Integridade 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, ...)
21Integridade 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
22Armazenamento
- 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
23Indexaçã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
24Indexaçã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)41,
ID(X)44
0
livro
autor
4
preço
2
autor
1
3
XML BD
79.00
nome
nome
12
8
16
19
20
15
. . .
25Referê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_xm
l.html - XMLDB
- http//www.xmldb.org
- SGBD XML Tamino
- http//www.softwareag.com/tamino