Categorias 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>
Categorias 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 email:<eMail>[email protected]</eMail><contato>
</anuncio>
Tipos 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
BD 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
BD 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
Coleçõ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
Coleçõ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
Consultas
 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
Consultas - Tamino
 Suporte a Xpath (chamada X-Query) e XQuery estendidos
 Geração de docs XML como resultado
busca por padrão
Atualizaçõ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
XUpdate
 Sintaxe XML
– I / E de elementos, atributos e texto
– A do conteúdo de elementos e atributos
 Exemplo 1:
<xupdate:append select=”//autor[nome=´Maria´]/eMail” child=”last()”>
<xupdate:element name="eMail">[email protected]</xupdate:element>
</xupdate:append>
(inclusão de um novo eMail para Maria)
 Exemplo 2:
<xupdate:remove select="/listalivros/livro[1]"/>
(remoção do primeiro livro)
Atualizaçõ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>))
Gerê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
Gerê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
Conectividade
 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
Conectividade - 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_col
eção>]<comando_API_HTTP>
 Outras formas de acesso
– API DOM para Java
– API XML:DB
Tamino – Conectividade HTTP
Round-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
Round-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
Integridade 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, ...)
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
Armazenamento
 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
Indexaçã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
Indexaçã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
1
“XML & BD”
8
preço
2
0
autor
3
autor
4
79.00
12
...
nome
mail
nome
mail
15
16
19
20
Referê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
Download

Gerenciamento de Dados XML