gerência de dados xml em bancos de dados ronaldo dos santos mello ine/ctc/ufsc [email protected]...
TRANSCRIPT
![Page 1: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/1.jpg)
Gerência de Dados XML Gerência de Dados XML em Bancos de Dadosem Bancos de Dados
Ronaldo dos Santos MelloINE/CTC/[email protected]
http://www.inf.ufsc.br/~ronaldo
II Escola Regional de Banco de Dados – II ERBD
Mini-Curso
![Page 2: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/2.jpg)
RoteiroRoteiro
1. Introdução2. Tecnologia XML3. Gerência de Dados XML
a. em bancos de dados relacionaisb. em bancos de dados XML nativos
4. Considerações Finais
![Page 3: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/3.jpg)
RoteiroRoteiro
1.1. IntroduçãoIntrodução2. Tecnologia XML3. Gerência de Dados XML
a. em bancos de dados relacionaisb. em bancos de dados XML nativos
4. Considerações Finais
![Page 4: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/4.jpg)
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 pela academia e indústria
Padrão para representação e transferência de dados Motivações para utilização crescente da XML
– aplicações sobre a Web extração, manipulação, integração, transferência e publicação
de dados
– aplicações que lidam com dados de natureza complexa exemplos: aplicações científicas, geográficas, ... preferência por docs XML ao invés de dados em BDs
relacionais
![Page 5: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/5.jpg)
Protocolos XMLProtocolos XML Definidos em diversos domínios e tecnologias
– comércio eletrônico CXML, eBisXML, ...
– referências bibliográficas DBLP, SIGMOD, ...
– sistemas de informação geográfica SVG, GML, ...
– dispositivos móveis WAP, WML, ...
– web services SOAP, WSDL, ...
– ...
![Page 6: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/6.jpg)
Uso Extensivo de Protocolos XML...Uso Extensivo de Protocolos XML...
Necessidades– métodos de acesso a dados XML pelos
programas de aplicação– projeto da estrutura dos dados XML– facilidades para armazenamento e manipulação
de dados XML persistentes– ...
A tecnologia de Banco de Dados (BD) é útil neste contexto
![Page 7: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/7.jpg)
Tecnologia XML x Tecnologia BDTecnologia XML x Tecnologia BD Similaridades
– documentos XML mantém coleções de dados– tecnologia XML oferece mecanismos para definição e
manipulação de dados DTD e XSD, XPath e XQuery, DOM, ...
Diferenças– dado XML não é um dado convencional
dado semi-estruturado– misto de texto e estrutura, instâncias heterogêneas, auto-descritivo, ...
– tecnologia XML é carente de alguns mecanismos de gerenciamento de dados integridade, transações, indexação, atualização, ...
![Page 8: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/8.jpg)
Tecnologia XML x Tecnologia BDTecnologia XML x Tecnologia BD
Conclusão– tecnologia XML não é totalmente equivalente à
tecnologia de BD Tópico de pesquisa na comunidade
científica de BD– gerenciamento de dados XML através de BDs– como tratar?
extensão de SGBDs existentes? desenvolvimento de SGBDs específicos para XML?
![Page 9: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/9.jpg)
RoteiroRoteiro
1. Introdução
2.2. Tecnologia XMLTecnologia XML3. Gerência de Dados XML
a. em bancos de dados relacionaisb. em bancos de dados XML nativos
4. Considerações Finais
![Page 10: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/10.jpg)
O que é XML?O que é XML? XML é uma meta-linguagem de marcação
– 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
– meta-linguagem XML é um padrão aberto
– cada aplicação define o protocolo (linguagem) para a representação dos seus dados
Dados no formato XML são descritos em um documento XML
![Page 11: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/11.jpg)
Exemplo de Documento XMLExemplo de Documento XML<?xml version =“1.0” encoding ="ISO-8859-1“><!–- documento XML sobre livros --><!DOCTYPE listaDeLivros [ <!ELEMENT listaLivros(livro+) ...]><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>
dado XML: estrutura hierárquica, ordenada e complexa
atributoelemento (simples)elemento (complexo)
elemento (misto)
informações dodocumento
elemento (raiz)
![Page 12: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/12.jpg)
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
![Page 13: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/13.jpg)
Tecnologia XML da W3CTecnologia XML da W3C
Principais facilidades similares a SGBDs– definição de esquemas
DTD e XSD– linguagens de consulta
XPath e XQuery– modelo de representação e interface de acesso
DOM
![Page 14: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/14.jpg)
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)
![Page 15: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/15.jpg)
DTDDTD Primeira recomendação da W3C Gramática para definição de hierarquia
– baseada em seqüências ordenadas e escolhas 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))
![Page 16: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/16.jpg)
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)>
![Page 17: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/17.jpg)
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 de elementos 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, ...– ...
![Page 18: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/18.jpg)
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 19: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/19.jpg)
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 20: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/20.jpg)
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:
<título>Tecnologia XML</título> <título>Sistema de Banco de Dados</título> ...
![Page 21: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/21.jpg)
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)
![Page 22: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/22.jpg)
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
![Page 23: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/23.jpg)
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 24: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/24.jpg)
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
![Page 25: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/25.jpg)
Objetos do Modelo DOMObjetos do Modelo DOM
listaLivros
livro
título preço
ISBN
“Tecnologia XML” 79.00
“João da Silva”“[email protected]”
nome mail
autor
nome
autor
“Maria Souza”
livro
. . .
document
node
element
nodelist
![Page 26: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/26.jpg)
Exemplos de Métodos da API DOMExemplos de Métodos da API DOM
Método ResultadodocumentElement Element
getElementByTagName(String) NodeList
createElement(String) Element
. . .
document
Método ResultadotagName String
getAttribute(String) String
setAttribute(String nome, String valor) Attr
removeAttribute(String)
getElementsByTagName NodeList
. . .
element
Método ResultadoLength int
item(int) Node
nodeList
![Page 27: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/27.jpg)
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 28: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/28.jpg)
RoteiroRoteiro
1. Introdução2. Tecnologia XML
3.3. Gerência de Dados XMLGerência de Dados XMLa. em bancos de dados relacionaisb. em bancos de dados XML nativos
4. Considerações Finais
![Page 29: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/29.jpg)
XML em BDs Relacionais (BDRs)XML em BDs Relacionais (BDRs) BDRs são adequados a
– docs XML fortemente estruturados “documentos orientados a registros”
– aplicações que realizam intercâmbio de dados convencionais em XML dados de BD, arquivos, docs bem formatados em geral
<endereço> <rua>Beira-Mar</rua><numero>104</numero><complemento>apto 203</complemento> <bairro>centro</bairro><cidade>Florianópolis</cidade> <cep>88010-600</cep></endereço> <endereço> <rua>Lauro Linhares</rua><numero>761</numero><bairro>trindade</bairro> <cidade>Florianópolis</cidade><cep>88040-900</cep></endereço>
![Page 30: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/30.jpg)
XML em BDRsXML em BDRs Vantagem
– uso de uma tecnologia madura de BD acesso eficiente escalabilidade linguagens de consulta declarativas ampla utilização no mercado
Vários SGBDs já lidam com o formato XML– Oracle, DB2, ...
Questões básicas a resolver– armazenamento dos docs XML– acesso aos dados XML
![Page 31: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/31.jpg)
Armazenamento de XML em BDRArmazenamento de XML em BDR
Duas abordagens– esquemas de armazenamento que não levam em
conta o esquema XML (no schema-based) aresta rótulo nodo níveis de granularidade
– esquemas de armazenamento que levam em conta o esquema XML (schema-based) inlining
visão de grafo
![Page 32: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/32.jpg)
Abordagem Abordagem no schema-basedno schema-based Nas três primeiras alternativas
– doc XML é armazenado na forma de um grafo orientado rotulado ênfase na estrutura de dados genérica XML esquema relacional é o mesmo para qq tipo de doc
<?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”
“112”
2
1
3
4 5
“João Silva”7
8
nome
9
. . .
. . .
livros.xml
![Page 33: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/33.jpg)
Alternativa 1 - ArestaAlternativa 1 - Aresta
origem ordem nome tipo destino valor0 1 listaLivros ref 1
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ãoSilva
...
6
livro
título
. . .listaLivros
ISBN
nome
autor
capítulo
“XML”“Introdução”
“112”
2
1
3
4 5
“João Silva”7
8
nome
9
. . .
. . .
LivrosXMLArestas
![Page 34: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/34.jpg)
Alternativa 2 – RótuloAlternativa 2 – Rótulo
docID origem ordem destino100 1 1 2
...
docID origem ordem destino valor100 2 2 4 XML
...
Livro
docID origem ordem destino100 2 3 5
...
Autor
Título
6
livro
título
. . .listaLivros
ISBN
nome
autor
capítulo
“XML”“Introdução”
“112”
2
1
3
4
. . .
5
“João Silva”7
8
nome
9
. . .
. . .
docID origem ordem destino valor100 5 2 7 [email protected]
...
. . .
![Page 35: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/35.jpg)
Alternativa 3 – NodoAlternativa 3 – Nodo
docID camID nodo valor100 Y 7 [email protected]
...
docID camID inicio fim ordem100 X 5 7 3
...Textos
ID expressão...
X listaLivros.livro.autorY listaLivros.livro.autor.eMai
l
...
Caminhos
Nodos6
livro
título
. . .listaLivros
ISBN
nome
autor
capítulo
“XML”“Introdução”
“112”
2
1
3
4
. . .
5
“João Silva”7
8
nome
9
. . .
. . .
![Page 36: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/36.jpg)
Comparativo das AlternativasComparativo das AlternativasAresta Rótulo Nodo
+ Tabela única Bom desempenho em buscas na hierarquia do doc
Não há desperdício de espaço Bom desempenho em buscas por um certo tipo de elemento ou atributo
Não há desperdício de espaço Bom desempenho em buscas por relacionamentos ancestral-descendente Poucas tabelas
- Colunas nulas Desempenho ruim em buscas por um certo tipo de elemento ou atributo
Várias tabelas Desempenho ruim em buscas na hierarquia do doc (acesso a muitas tabelas)
Desempenho ruim em buscas por um certo tipo de elemento ou atributo Os conteúdos dos nodos são mantidos em uma tabela separada
Desempenho ruim na reconstrução do doc XML (muitos acessos) Não há distinção entre elemento e atributo
![Page 37: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/37.jpg)
Alternativa Níveis de GranularidadeAlternativa 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 38: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/38.jpg)
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 39: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/39.jpg)
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
ElementosatrID tag elem ordem valor
1 ISBN 2 1 112
...
Atributos
contID valor elem
1 XML 3
2 João Silva 5
. . .
Conteúdos (de elementos simples)
![Page 40: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/40.jpg)
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
. . .
ElementosatrID tag elem ordem valor
1 ISBN 2 1 112
...
Atributos
docID nome raiz
. ...
Documentos
contID conteúdo elem ordem1 2 3
. . .
Textos---
contID valor elem
. . .
Conteúdos
![Page 41: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/41.jpg)
Níveis de Granularidade - AnáliseNíveis de Granularidade - AnáliseGranularidade
GrandeGranularidade
MédiaGranularidade
Pequena
aumenta a complexidade da reconstrução do doc XML melhora o desempenho de consultas
– granularidade grande: buscas por palavras-chaveX
– granularidade pequena: consulta e indexação de qualquer tipo de elemento ou atributo (coluna tag) e do conteúdo (coluna valor)
diminui o volume de armazenamento– granularidade grande/média: tags do doc ocupam muito espaço
![Page 42: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/42.jpg)
AbordagemAbordagem schema-based schema-based Doc XML é armazenado em um conjunto de
tabelas baseado no seu esquema de elementos – ênfase na estrutura dos elementos– docs diferentes geram esquemas relacionais diferentes
Abordagem principal– Inlining (alinhamento)
agrupamento do maior número possível de descendentes na tabela do elemento ancestral
– elementos simples ou atributos que aparecem uma única vez tabelas são geradas para
– elementos complexos– relacionamentos com descendentes que ocorrem mais de uma vez
no elemento ancestral
![Page 43: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/43.jpg)
AbordagemAbordagem Inlining Inlining - Exemplo- Exemplo
Esquema XML (DTD)
Seção (ID, nome, conteúdo, IDcapítulo)ConteúdoCapítulo (ID, texto, IDcapítulo)Capítulo (ID, nome, ISBN)Autor (ID, nome, eMail, ISBN)Livro (ISBN, titulo, preço, ediçãoAnterior, IDlistaLivros)
<!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)>
Esquema Relacional
+ : esquema relacional mais próximo da organização lógica do esquema XML− : esquema relacional não totalmente normalizado; exige sempre docs com esquema
![Page 44: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/44.jpg)
Projeto do Esquema RelacionalProjeto do Esquema Relacional Depende das prioridades da aplicação
– prioriza-se a reconstrução do doc XML granularidade grande ou média
– prioriza-se navegações por relacionamentos hierárquicos aresta; nodo; inlining
– prioriza-se consultas a determinados tipos de elementos rótulo; granularidade média ou pequena; inlining
– prioriza-se economia no espaço de armazenamento aresta; nodo; granularidade pequena
– ...
![Page 45: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/45.jpg)
Projeto do Esquema RelacionalProjeto do Esquema Relacional
Combinações de alternativas podem ser adotadas– exemplo: rótulo + granularidade média
possibilidade de consulta a um 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 46: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/46.jpg)
Análise de SGBDRsAnálise de SGBDRs - - DB2 XML Extender DB2 XML Extender
Armazenamento de doc XML – com granularidade grande
coluna XMLCLOB, XMLVarchar ou XMLFile– próximo de uma abordagem inlining
definição um DAD (Database Action Diagram) documento XSD estendido com anotações de
mapeamento
![Page 47: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/47.jpg)
Exemplo 1 – Exemplo 1 – DB2 XML ExtenderDB2 XML Extender Armazenamento com granularidade grande
CREATE TABLE Documentos ( docID VARCHAR(10) NOT NULL PRIMARY KEY nome VARCHAR(40) conteúdo XMLCLOB);
![Page 48: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/48.jpg)
Exemplo 2 – Exemplo 2 – DB2 XML ExtenderDB2 XML Extender Armazenamento com definições de
mapeamento através de DAD<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DAD PUBLIC "dadId" "dad.dtd"><DAD> <dtdid>livros.dtd</dtdid> <Xcollection> ... <prolog>?xml version="1.0"?</prolog> ... <element_node name=“livro"> <RDB_node> <table name=“Livros" key=“códLivro"/> <table name=”Capítulos” key=“códCapto”>
... </RDB_node> <attribute_node nome = “titulo”> <RDB_node> <table name=“Livros”/> <column name=“titulo” type=“varchar(50)”/> </RDB_node> </attribute_node> ...</DAD>
elemento a mapeartabelas relacionaisque mantêm dados do elemento
mapeamento de elementos simples ou atributos para colunas de tabelas
![Page 49: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/49.jpg)
Exemplo 3 – Exemplo 3 – DB2 XML ExtenderDB2 XML Extender Armazenamento com definições de
mapeamento em um doc XSD estendido... <xsd:element name=“livro"> <xsd:complex_type> <xsd:sequence> <xsd:element name=“titulo" type=“xsd:string" db2-xdb:rowSet=“Livros” db2-xdb:column=“titulo”/>
<xsd:element name=“preço" type=“xsd:integer" db2-xdb:rowSet=“Livros” db2-xdb:column=“valor”/>
... </xsd:sequence> </xsd:complex_type> </xsd:element> ...
![Page 50: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/50.jpg)
Oracle XML DBOracle XML DB Armazenamento de doc XML
– granularidade grande coluna CLOB
Exemplocreate table DocsXMLEstruturados(
docID varchar(10), nome varchar2(40),conteúdo CLOB)
![Page 51: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/51.jpg)
SQL ServerSQL Server
Armazenamento de doc XML – próximo de uma abordagem inlining
forma declarativa– função OPENXML invocada em instruções SQL
documento XSD estendido com anotações de mapeamento
– abordagem aresta função OPENXML
![Page 52: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/52.jpg)
Exemplo 1 – Exemplo 1 – SQL ServerSQL Server Armazenamento de forma declarativa
– definido de forma ad hoc
select * into Livros from OPENXML(@pDoc,‘/livro’,3)with (codLivro varchar(11) ‘@ISBN’, titulo varchar(50) ‘titulo’, preco numeric(5,2) ‘preço’,
...)
apontador do doc XMLelemento a armazenar
forma de mapeamento (*)
(*) indica a proveniência de um dado, de acordo com o seu nome, a menos que a cláusula WITH indique explicitamente sua localização: 1: centrada em atributo: dados vêm de atributos 2: centrada em elemento: dados vêm de sub-elementos 3: híbrido: dados vêm de atributos (tem precedência) ou de sub-elementos
![Page 53: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/53.jpg)
Exemplo 2 – Exemplo 2 – SQL ServerSQL Server Armazenamento de forma declarativa
– segundo uma abordagem aresta (“enxuta”) tabela única para o doc XML (ou parte dele) cláusula WITH não informada considera textos como nodos da árvore XML
select * into ArvoreXMLLivro from OPENXML(@pDoc,‘/livro’,2)
IDpai ID conteúdo tipoNodo1 1 livro 1
2 3 ISBN 2
3 4 112 32 5 título 2
...
ÁrvoreXMLLivro
tipoNodo:1: elemento2: atributo3: texto
![Page 54: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/54.jpg)
Exemplo 3 – Exemplo 3 – SQL ServerSQL Server Armazenamento com definições de
mapeamento em um doc XSD estendido<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xsd:element name="Cust" sql:relation="Customers"> <xsd:complexType> <xsd:sequence> <xsd:element name="CustNo" sql:field="CustomerId“ type="xsd:integer" /> <xsd:element name="Contact" sql:field="ContactName" type="xsd:string" />
. . . </xsd:sequence> </xsd:complexType> . . . </xsd:element> . . . </xsd:schema>
![Page 55: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/55.jpg)
Acesso a Dados XML em BDRsAcesso a Dados XML em BDRs
Armazenamento dos dados XML é relacional– SQL é o padrão para acesso!
Esquemas relacionais mais detalhados– exs.: granularidade pequena, rótulo ou inlining– instruções SQL tradicionais resolvem!
Esquemas relacionais mais compactos– exs.: granularidade grande/média– consultas SQL especiais sobre o conteúdo do doc
Resultados de consultas no formato XML
![Page 56: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/56.jpg)
SQL/XML SQL/XML
Padrão ANSI ISO derivado do SQL Métodos para manipulação de dados XML
através da SQL– principais funcionalidades
consulta ao conteúdo de docs XML geração de estruturas XML como resultado de uma
consulta SQL atualização de docs XML
Oracle e DB2 adotam grande parte do padrão– MySQL implementa algumas funcionalidades
![Page 57: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/57.jpg)
Exemplo1 – DB2 XML Extender
select docID, nomefrom Documentoswhere extract Varchar (conteúdo,“/livro/título”) like “%XML%”
Acesso ao Conteúdo de Docs XMLAcesso ao Conteúdo de Docs XML
nome de coluna quemantém o doc XML
![Page 58: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/58.jpg)
Exemplo2 – Oracle XML DB
select extractValue(conteúdo,'/livro/título')from DocsXMLEstruturados whereexistsNode(conteúdo,'/livro/autor/nome') = “João Silva”
Acesso ao Conteúdo de Docs XMLAcesso ao Conteúdo de Docs XML
resultadotabular
![Page 59: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/59.jpg)
Resultados de Consultas em XMLResultados de Consultas em XML Exemplo 3 – DB2 e Oracle
SELECT XMLElement(“Livro", XMLAttributes(l.codLivro AS “ISBN“, l.titulo AS “titulo”), XMLAgg( XMLElement(“Capitulo",
XMLForest (c.codCapto AS “numero”, c.nome AS “nome”))) FROM livros l INNER JOIN capitulos c
ON l.codLivro = c.codLivro
GROUP BY l.codLivro;
define um elemento XMLdefine atributos de um elemento XML
define uma agregação de sub-elementos com base em um agrupamento (por Livro, no caso)
define uma seqüência de elementos
![Page 60: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/60.jpg)
Resultados de Consultas em XMLResultados de Consultas em XML Exemplo 3 – DB2 e Oracle
– resultado<Livro ISBN=112 titulo=“XML"> <Capítulo> <numero>1</numero>
<nome>Introdução</nome> </Capítulo> <Capítulo> <numero>2</numero>
<nome>Sintaxe XML</nome> </Capítulo>
... </Livro> <Livro ISBN=119 titulo=“XML Schema">...
![Page 61: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/61.jpg)
Resultados na Forma de Docs XMLResultados na Forma de Docs XML Granularidade grande
– seleção direta da coluna que mantém o doc XML na íntegra
Geração doc XML a partir de dados de tabelas
– Oracle XML DB métodos da API DBMS_XMLGEN geram docs XML
a partir do resultado de consultas SQL– DB2 XML Extender
1. define-se um esquema de mapeamento relacionalXML (DADs)
2. utiliza-se métodos específicos de geração de docs XML a partir desta DAD
![Page 62: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/62.jpg)
Geração de Docs XMLGeração de Docs XML Exemplo – Oracle XML DB
– trecho de programa PL/SQL para consultas SQL/XML
– fragmento XML do resultado é transformado em um doc XML para consultas SQL convencionais
– uma transformação predefinida para uma estrutura XML é aplicada (através dos métodos DBMS_XMLGEN)
DECLARE qCtx DBMS_XMLGen.ctxHandle; result CLOB; BEGIN qCtx := DBMS_XMLGen.newContext('SELECT ... '); result := DBMS_XMLGen.getXML(qCtx); DBMS_XMLGen.closeContext(qCtx); END;
![Page 63: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/63.jpg)
Atualização de Conteúdo XMLAtualização de Conteúdo XML Granularidade grande
– inclusão/exclusão/substituição do doc XML Operadores SQL/XML de atualização (Oracle)
– insertChildXML(), insertXMLBefore(), appendChildXML(), deleteXML(), updateXML()
Métodos proprietários executados na instrução update da SQL (DB2)
Não há padronização...
![Page 64: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/64.jpg)
Exemplo 1 – Exemplo 1 – Oracle XML DBOracle XML DB Atualização via SQL/XML
update EsquemaLivros pset object_value = updateXML(object_value, ‘/livro/preco/text()’, ‘117.50’)
where ref(p) = (select extractValue(res, ‘/livro[ISBN=112]’) from DocsXMLEstruturados
where docID = 100)
esquema XML registrado no Oracle (atualização deve respeitá-lo)
objeto default do Oracle para conteúdo XML
variável com os dados XML a atualizar
![Page 65: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/65.jpg)
Exemplo 2 – Exemplo 2 – DB2 XML ExtenderDB2 XML Extender Atualização via instrução update da SQL
– com método proprietário db2xml.Update()
update Documentos set conteudo =db2xml.Update(conteudo, ’/livro[ISBN=112]/preço’, ‘117.50’)
where docID = ‘100’;
![Page 66: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/66.jpg)
Acesso XML – Outros BDRsAcesso XML – Outros BDRs SQL Server
– extensão proprietária da SQL (métodos e cláusulas) geração de resultados no formato XML escrita de dados em docs XML
– updategrams sintaxe XML para atualização de docs XML execução em APIs para acesso a BD (ADO, OLE DB)
MySQL– alguns recursos da SQL/XML para consulta– extensões das cláusulas insert e update da SQL
para inserção e substituição de fragmentos de docs XML
![Page 67: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/67.jpg)
RoteiroRoteiro1. Introdução2. Tecnologia XML3. Gerência de Dados XML
a. em bancos de dados relacionais
b.b. em bancos de dados XML nativosem bancos de dados XML nativos4. Considerações Finais
![Page 68: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/68.jpg)
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
![Page 69: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/69.jpg)
BD XMLBD XML Documento Orientado a Texto
– fortemente semi-estruturado representação menos estruturada e homogênea
Tópico atual de pesquisa e desenvolvimento na área de BD– exemplos de SGBDs XML: Tamino, eXist, ...
<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 70: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/70.jpg)
BD XML - Características PrincipaisBD XML - Características Principais
Esquemas lógicos baseados em coleções Consultas Atualização Transações Conectividade Restrições de Integridade Armazenamento e indexação de dados
![Page 71: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/71.jpg)
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
– uma coleção pode estar restrita a um ou mais esquemas XML
Consultas e atualizações podem ser direcionadas a coleções
![Page 72: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/72.jpg)
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
![Page 73: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/73.jpg)
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
![Page 74: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/74.jpg)
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
![Page 75: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/75.jpg)
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
![Page 76: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/76.jpg)
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 77: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/77.jpg)
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 78: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/78.jpg)
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 79: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/79.jpg)
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
![Page 80: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/80.jpg)
Conectividade – APIs Conectividade – APIs Interfaces ODBC tradicionais
– conexão com o BD, execução de consultas e atualizações e exploração de resultados
XQuery API para Java (JQX)– 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
![Page 81: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/81.jpg)
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
![Page 82: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/82.jpg)
Tamino – Conectividade HTTPTamino – Conectividade HTTP
![Page 83: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/83.jpg)
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)
![Page 84: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/84.jpg)
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
![Page 85: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/85.jpg)
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 BDOOpreserva 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
![Page 86: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/86.jpg)
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”
![Page 87: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/87.jpg)
Exemplo de Indexação - eXistExemplo de Indexação - 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 e irmãos ex.: maxFilhos = 4 filhos de n [ID(n)*4+1, ID(n)*4+4]
livro
título preço
nome eMail
autor autor
0
nome eMail
1 2 3 4
. . .
“XML & BD” 79.00
8 12
15 16 19 20
![Page 88: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/88.jpg)
XML Nativo em BDR – XML Nativo em BDR – Oracle XML DBOracle XML DB
Tipo nativo XMLType– usado para definir uma coluna, tabela (coleções de
docs XML) ou variável PL/SQL– mantém um doc XML bem formado– existem métodos específicos para sua manipulação
funções SQL/XML, validação com esquema XSD, ...
Registro de esquemas XSD– armazenados e acessados para validar docs XML– podem ser associados a uma coluna XMLType
garante docs XML válidos
![Page 89: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/89.jpg)
XML Nativo em BDR– XML Nativo em BDR– Oracle XML DBOracle XML DB Armazenamento objeto-relacional
– decomposição em objetos SQL (Oracle é BDOR!) aproveita facilidades de gerência OR do Oracle baseia-se no esquema do doc XML para a conversão de
tipos complexos de elementos em tipos SQL
Indexação– por valor (árvore-B)– full-text (utilizado em CLOB ou XMLType)– por caminho (indexa expressões XPath em CLOB ou
XMLType) útil para alcançar dados presentes em hierarquias específicas
![Page 90: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/90.jpg)
XML Nativo em BDR– XML Nativo em BDR– Oracle XML DBOracle XML DB Consulta a dados XML nativos
– função XMLQuery embute XQuery em SQL possibilitando junções de dados relacionais e XML
– exemplo: select XMLQuery( ‘for $liv in /livro
where $liv/autor/nome = “Maria Souza” return $liv/titulo’passing conteúdo returning content)
as titulofrom DocsXMLEstruturados;
– tradução de expressões XPath para instruções SQL3 processamento e otimização de consultas a nível OR
Atualização– API específica para o tipo XMLType
appendChildXML(), insertXLBefore(), ...
coluna do tipo XMLType
retorno de valores noformato de tabela
![Page 91: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/91.jpg)
XML Nativo em BDR – XML Nativo em BDR – DB2DB2 Tipo nativo XML
– pode ser associado a uma coluna de uma tabela Armazenamento hierárquico proprietário
– com manutenção de ordem e economia de espaço substitui: nomes de tags por IDs e relações pai-filho por ponteiros
físicos; índices de páginas indicam todos os fragmentos de um doc XML
nomes de tagssubstituídospor IDs únicos
Tabela de strings
árvore do doc XML é particionada em páginas
índice páginas
página página página
![Page 92: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/92.jpg)
XML Nativo em BDR – XML Nativo em BDR – DB2DB2 Formas de indexação idênticas ao Oracle XML DB
– exemplocreate index ind1 on documentos(conteudo) (índice por caminho)using xmlpattern ‘/livro/capitulo/secao/nome as sql
varchar(50)’ Consulta
– XQuery permitindo integração com SQL e SQL/XML
– manipulação conjunta de dados relacionais e XML exemplo:
– SQL com função XMLQuery() Atualização
– método db2xml.update() atualiza valores de elementos e atributos– APIs (JDBC, ODBC e DOM) oferecem métodos para inserção e remoção de
conteúdo em docs XML
for $l in db2-fn:sqlquery( ‘select d.conteudo from documentos d, repositorios r where d.docID = r.docID and r.cidade = “Florianópolis”’)/livrowhere $l/preço > 100.00return $l/titulo
![Page 93: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/93.jpg)
RoteiroRoteiro
1. Introdução2. Tecnologia XML3. Gerência de Dados XML
a. em bancos de dados relacionaisb. em bancos de dados XML nativos
4.4. Considerações FinaisConsiderações Finais
![Page 94: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/94.jpg)
Considerações FinaisConsiderações Finais
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
![Page 95: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/95.jpg)
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, ...
![Page 96: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/96.jpg)
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
![Page 97: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/97.jpg)
BenchmarkBenchmark BD XML x BDR BD XML x BDR [Chaudhri03,Lu05][Chaudhri03,Lu05]
BD XML ocupa mais espaço– mais índices; tags também são nodos DOM
BD XML e BDR com desempenho semelhante em consultas a grandes massas de dados– BD XML: boas estratégias de indexação; não há overhead de mapeamento
de modelo de dados alternativa de representação mais eficiente: DOM
– BDR: boas técnicas de clusterização; menor volume de dados (modelo de dados mais simples)
alternativa de representação mais eficiente: inlining BD XML é mais lento em atualizações
– inexistência de métodos DOM eficientes ou linguagens declarativas padrão para atualização
alterações geralmente exigem parsing do doc XML– atualização de muitos índices
BD XML já apresenta boa compatibilidade com APIs Java, porém requer mais codificação– BDRs tem mais ferramentas proprietárias para desenvolvimento de
aplicações, requerendo menos codificação
![Page 98: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/98.jpg)
Considerações FinaisConsiderações Finais
SGBDs XML irão vingar?– não há resposta imediata...– provavelmente não serão “A nova geração de
SGBDs” BDs relacionais continuam adequados a diversas
categorias de aplicações BDs relacionais estão evoluindo para se tornar BDs
híbridos (relacional e XML)
![Page 99: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/99.jpg)
Referências RelevantesReferências Relevantes Tecnologia XML
– http://www.w3c.org/xml– http://www.w3schools.com
XML & BD– http://www.rpbourret.com/xml/XMLAndDatabases.htm
SQL/XML– http://sqlx.org
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/
SGBDs XML Nativos (Tamino e eXist)– http://www.softwareag.com/tamino – http://exist-db.org/
![Page 100: Gerência de Dados XML em Bancos de Dados Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br ronaldo II Escola Regional de](https://reader035.vdocuments.pub/reader035/viewer/2022081520/5706384d1a28abb8238f6ba5/html5/thumbnails/100.jpg)
Gerência de Dados XML Gerência de Dados XML em Bancos de Dadosem Bancos de Dados
Ronaldo dos Santos MelloINE/CTC/[email protected]
http://www.inf.ufsc.br/~ronaldo
II Escola Regional de Banco de Dados – II ERBD
Mini-Curso