Gerenciamento de Dados XML

Propaganda
V Escola Regional de Informática Norte
Mini-Curso
Gerenciamento de
Dados XML
Ronaldo dos Santos Mello
INE/CTC/UFSC
[email protected]
Sobre este mini-curso...
 Motivação
– XML consolida-se como padrão para
representação e transferência de dados
– necessidade de armazenamento e manipulação
de dados XML
 Objetivos
– apresentação (“revisão”) da tecnologia XML
– estado da arte na área de gerenciamento de
dados XML
Roteiro
1.
2.
3.
4.
Introdução
Representação de Dados em XML
Tecnologia XML
XML e Bancos de Dados
a. gerenciamento de dados XML através de
bancos de dados relacionais
b. gerenciamento de dados XML através de
bancos de dados XML nativos
5. Conclusão
Roteiro
1. Introdução
2. Representação de Dados em XML
3. Tecnologia XML
4. XML e Bancos de Dados
a. gerenciamento de dados XML através de
bancos de dados relacionais
b. gerenciamento de dados XML através de
bancos de dados XML nativos
5. Conclusão
XML (eXtensible Markup Language)
 Tecnologia desenvolvida pela W3C
– W3C: World Wide Web Consortium
 definição de padrões para a Web
 consórcio formado por acadêmicos e empresários
 Padrão para representação e transferência de
dados
 Motivação: Aplicações Web
– extração, manipulação, integração e publicação
de dados através da Web
Protocolos XML
 Definidos em diversos domínios de
aplicação
– comércio eletrônico
 CMXL, eBisXML, GCI, ...
– referências bibliográficas
 padrão DBLP, padrão SIGMOD, padrão BibTeX, ...
– sistemas de informação geográfica
 SVG, GML, ...
– ...
Uso Extensivo de Protocolos XML...
 Problemas a serem resolvidos
– tratamento de dados XML pelos programas de
aplicação
– projeto da estrutura dos dados XML
– facilidades para armazenamento e manipulação
de dados XML
– ...
 A tecnologia de Banco de Dados (BD) é útil
neste contexto
Tecnologia XML x Tecnologia BD
 Simliaridades
– documentos XML mantém coleções de dados
– tecnologia XML oferece mecanismos para
definição e manipulação de dados
 DTD, XSD, XQuery, XSL, DOM, ...
 Diferenças
– dado XML não é um dado convencional
– tecnologia XML é carente de alguns
mecanismos de gerenciamento de dados
 integridade, segurança, indexação, ...
Tecnologia XML x Tecnologia BD
 Conclusão
– tecnologia XML não é equivalente à tecnologia
de BD
 Desafio para a comunidade científica de BD
– gerenciamento eficiente de dados XML
– como tratar?
 extensão de SGBDs existentes?
 desenvolvimento de SGBDs específicos para XML?
Roteiro
1. Introdução
2. Representação de Dados em XML
3. Tecnologia XML
4. XML e Bancos de Dados
a. gerenciamento de dados XML através de bancos
de dados relacionais
b. gerenciamento de dados XML através de bancos
de dados XML nativos
5. Conclusão
Formato XML
 XML é uma meta-linguagem de marcação
– meta-linguagem
 XML é um padrão aberto
– cada aplicação define o protocolo (linguagem) para a
representação dos seus dados
– linguagem de marcação
 semelhante à linguagem HTML
 utiliza tags para descrição os dados
– tag: indica a intenção do dado e delimita o seu conteúdo
Exemplo de Dado XML
<livro>
<titulo>Tecnologia XML</titulo>
tag (intenção do dado)
<autor>
<nome>João da Silva</nome> conteúdo do dado
<eMail>[email protected]</eMail>
<endereco>
<comercial>rua A, 34 – Fpolis - SC</comercial>
<residencial>rua B, 5 – Fpolis – SC</residencial>
</endereco>
</autor>
...
<capitulo nome=“Introdução”>Este capítulo apresenta ...
<secao>
<nome>Linguagens de Marcação</nome>
...
</secao>
</capitulo>
...
</livro>
estrutura hierárquica, ordenada e complexa
XML x HTML
 HTML
– linguagem de marcação
– tags predefinidas e com intenção específica
 formatação da apresentação de dados em browsers
 XML
– meta-linguagem de marcação
 não há tags predefinidas
– intenção das tags é definida pela aplicação
Sintaxe XML
 Dados XML são definidos em um documento
XML
 Um documento XML contém
– cabeçalho
– dados
 elementos simples ou compostos
 atributos de elementos
 referências a entidades
– comentários
– instruções de processamento
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1“>
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
<!ENTITY xml “eXtensible Markup Language”>
...
]>
<listaLivros>
<livro ISBN=“112”>
<título>Tecnologia &xml</título>
<autor>
<nome>João da Silva</nome>
<eMail>[email protected]</eMail>
</autor>
...
<capítulo nome=“Introdução”>A &xml foi ...
<seção>
<nome>Linguagens de Marcação</nome> ...
</seção>
</capítulo> ...
</livro> ...
</listaLivros>
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1">
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
<!ENTITY xml “eXtensible Markup Language”>
...
cabeçalho
]>
<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>
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1">
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
<!ENTITY xml “eXtensible Markup Language”>
...
]>
<listaLivros>
<livro ISBN=“112”>
<título>Tecnologia &xml</título>
<autor>
<nome>João da Silva</nome>
<eMail>[email protected]</eMail>
</autor>
...
<capítulo nome=“Introdução”>A &xml foi ...
<seção>
<nome>Linguagens de Marcação</nome> ...
</seção>
</capítulo> ...
</livro> ...
</listaLivros>
comentário
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1">
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
instrução de processamento
<!ENTITY xml “eXtensible Markup Language”>
...
]>
<listaLivros>
<livro ISBN=“112”>
<título>Tecnologia &xml</título>
<autor>
<nome>João da Silva</nome>
<eMail>[email protected]</eMail>
</autor>
...
<capítulo nome=“Introdução”>A &xml foi ...
<seção>
<nome>Linguagens de Marcação</nome> ...
</seção>
</capítulo> ...
</livro> ...
</listaLivros>
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1">
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
<!ENTITY xml “eXtensible Markup Language”>
...
elemento raiz
]>
elemento simples
<listaLivros>
(#PCDATA)
<livro ISBN=“112”>
<título>Tecnologia &xml</título>
<autor>
elemento composto
<nome>João da Silva</nome>
<eMail>[email protected]</eMail>
</autor>
elemento misto
...
<capítulo nome=“Introdução”>A &xml foi ...
<seção>
<nome>Linguagens de Marcação</nome> ...
</seção>
</capítulo> ...
</livro> ...
</listaLivros>
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1">
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
<!ENTITY xml “eXtensible Markup Language”>
...
atributo
]>
<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>
Exemplo de Documento XML
<?xml version =“1.0” encoding ="ISO-8859-1">
<!–- documento XML sobre livros -->
<!DOCTYPE listalivros [
<!ENTITY xml “eXtensible Markup Language”>
...
declaração de
]>
entidade
<listaLivros>
<livro ISBN=“112”>
<título>Tecnologia &xml</título>
<autor>
<nome>João da Silva</nome>
referência a
<eMail>[email protected]</eMail>
uma entidade
</autor>
...
<capítulo nome=“Introdução”>A &xml foi ...
<seção>
<nome>Linguagens de Marcação</nome> ...
</seção>
</capítulo> ...
</livro> ...
</listaLivros>
Documento XML Bem Formado
 Requisitos
– contém um elemento raiz
– define elementos com tags inicial e final
– define atributos com conteúdo delimitado por
aspas simples (‘) ou aspas duplas (“)
 Parser XML
– programa que verifica se um documento XML é
bem formado
 alguns browsers são capazes de realizar tal verificação
Roteiro
1. Introdução
2. Representação de Dados em XML
3. Tecnologia XML
4. XML e Bancos de Dados
a. gerenciamento de dados XML através de
bancos de dados relacionais
b. gerenciamento de dados XML através de
bancos de dados XML nativos
5. Conclusão
Tecnologia XML
 Esquemas
– DTD e XSD
 Linguagens de consulta
– XPath e XQuery
 APIs
– DOM, ...
 Transformação e apresentação de dados
– XSL
 ...
Definição de Esquemas
 Esquema XML
– define restrições para a organização hierárquica dos
elementos em um doc XML
– documento válido
 documento cuja estrutura está de acordo com um esquema
 validação é feita por um parser
 Duas recomendações
– DTD (Document Type Definition)
– XSD (XML Schema Definition)
DTD
 Primeira recomendação da W3C
 Gramática para definição de hierarquia
– baseada em seqüências ordenadas e escolhas
 Definição de elementos
– compostos, textuais (#PCDATA), vazios (EMPTY),
mistos ((#PCDATA | ...)*) ou com conteúdo
aberto (ANY)
 Definição de atributos
– obrigatórios (#REQUIRED) opcionais (#IMPLIED),
fixos (#FIXED), valor default, enumeração,
referência (ID, IDREF(S))
DTD - Exemplo
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ATTLIST
listaLivros (livro+)>
livro (título, autor+, capítulo+)>
livro ISBN CDATA #IMPLIED>
título (#PCDATA)>
autor (nome, eMail?)>
nome (#PCDATA)>
eMail (#PCDATA)>
capítulo (#PCDATA | seção)*>
capítulo nome CDATA #REQUIRED>
seção (nome, conteúdo)>
seção ident ID>
conteúdo (#PCDATA)>
conteúdo ref IDREFS #IMPLIED>
XSD
 Recomendação mais recente
 Sintaxe XML
 Extensão da funcionalidade de um DTD
– definição e especialização de tipos de elementos
– definição de tipos de dados
 simples (string, integer, boolean, ...)
 complexos (list, union)
– facilidades adicionais para definição de restrições
 intervalos de valores permitidos, padrões de conteúdo via
expressões regulares, ...
–...
XSD - 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>
...
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>
XPath
 Primeira recomendação para consulta a dados
 Linguagem para acessar partes de um doc XML
– sintaxe: expressões de caminho
 assemelha-se à navegação em diretórios de arquivos
– exemplo
 expressão XPath: /livro/título
 resultado:
<resultado>
<título>Tecnologia XML</título>
<título>Sistema de Banco de Dados</título>
. . .
</resultado>
XPath - Exemplos
/
(elemento raiz – todo o doc XML)
/livro/*/eMail
(‘*’ substitui 1 elem)
/livro//seção
(qq elemento descendente seção)
/livro/capítulo[1]
(primeiro capítulo de livros)
/livro/capítulo/nome |
/livro/capítulo/seção/nome (união)
/livro/@ISBN
(acesso a um atributo)
/livro[título=“XML”] (filtro)
/livro[@ISBN=“112”]/título (filtro)
/livro//secao[../@nome=“XML e BD”] (filtro)
XQuery
 Recomendação mais recente
 Oferece mais recursos que a XPath
– junções, definição de estruturas de resultado,
variáveis de consulta, atributos calculados, funções
de agregação, ...
 Sintaxe básica (expressão “FLWR”)
for variável in expressãoXPath
[let associação de novas variáveis]
[where condição]
return estrutura de resultado
XQuery - Exemplos
for $liv in /livro
where $liv/autor/nome = “João Silva”
return { $liv/@ISBN, $liv/titulo }
(consulta
simples)
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
(nova estrutura
de resultado)
where $liv2/@ISBN != $liv1/@ISBN
and $liv2/autor/nome = $liv1/autor/nome
return $liv2/titulo
(junção)
DOM (Document Object Model)
 Modelo de dados para XML
– modelo hierárquico (árvore)
– API DOM
 principais classes de objetos
– document, node, nodelist e element
 métodos para consulta e atualização de dados
 Parsers DOM
– validam um doc XML
– geram um objeto document
Objetos do Modelo DOM
document
node
listaLivros
...
livro
título
“Tecnologia XML”
ISBN
preço
livro
autor
autor
79.00
nome
“João da Silva”
mail
“[email protected]”
“[email protected]”
nodelist
nome
element
“Maria Souza”
Exemplos de Métodos da API DOM
document
Método
Resultado
documentElement
Element
getElementByTagName(String)
NodeList
createElement(String)
Element
...
element
Método
Resultado
tagName
String
getAttribute(String)
String
setAttribute(String nome, String valor)
Attr
removeAttribute(String)
getElementsByTagName
...
NodeList
nodeList
Método
Resultado
Length
int
item(int)
Node
DOM – Exemplo (JavaScript)
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);
}
XSL (XML Style sheet Language)
 Style sheet (folha de estilos)
– define regras para a apresentação de dados
 XSL
– linguagem de definição de folha de estilos para um
doc XML
 formatação de apresentação
 transformação do conteúdo do documento XML
(XSLT)
– indicação de que dados serão exibidos ou descartados
– inserção de novos conteúdos
– conversão XMLHTML, XMLXML, XMLTexto puro, ...
Documento XSL
 Define uma folha de estilo
 Sintaxe XML
 Referenciado em um doc XML
<?xml version=“1.0” ?>
<?xml-stylesheet type=“text/xsl” href=“estilo.xsl” ?>
...
 Processador XSL
– programa que valida e executa as regras
definidas em um doc XSL
– alguns browsers Web processam docs XSL
Estrutura de um Doc XSL(T)
<stylesheet xmlns = "http://www.w3.org/XSL/Transform/1.0">
elemento raiz
namespace default
(DTD da W3C com instruções XSL)
</template match = “/livro/autor">
...
padrão: indica o elemento ou
</template>
...
atributo para o qual a regra se aplica
(expressão XPath)
regra de formatação
</stylesheet>
Exemplo de Transformação XSL
Entrada: doc XML
<listaLivros>
<livro tipo=“tecnico” ISBN=“01”>
Transformação: doc XSL
<stylesheet xmlns = ...>
<template match = "listaLivros">
<título>XML Companion<\título>
<html><head>
<autor>
<title>Livros Técnicos</title> </head>
<apply-templates/>
<nome>N. Bradley<\nome> ...
<\autor> ...
</html>
<\livro>
</template>
<livro tipo=“tecnico” ISBN=“02”>
<template match = “livro">
<título>Data on the Web<\título>
<autor>
<P>
<apply-templates select =
selecionar
livros
técnicos
“livro[@tipo = "tecnico"]">
<nome>S. Abiteboul<\nome>...
<sort = "título">
<\autor> ...
</apply-templates>
<\livro> ...
</listaLivros>
processar
elementos
filhos
</P>
</template>
...
ordenar
por
títrulo
Exemplo de Transformação XSL
Entrada: doc XML
Transformação: doc XSL
<listaLivros>
...
<livro tipo=“tecnico” ISBN=“01”>
<variable name =
"separador">,</variable>
<título>XML Companion<\título>
<autor>
<nome>N. Bradley<\nome> ...
<\autor> ...
<\livro>
<livro tipo=“tecnico” ISBN=“02”>
<título>Data on the Web<\título>
selecionar
o conteúdo
de título
<template match = "título">
<value-of select = ".">
<value-of select = "{$separador}">
</template>
<autor>
<nome>S. Abiteboul<\nome>...
<\autor> ...
<\livro> ...
</listaLivros>
<template match = "author/name">
<value-of select = "."> selecionar
o conteúdo
</template>
do nome
</stylesheet>
do autor
Exemplo de Transformação XSL
Entrada: doc XML
<listaLivros>
Saída: doc HTML
<html>
<livro tipo=“tecnico” ISBN=“01”>
<head>
<título>XML Companion<\título>
<title>
<autor>
Livros Técnicos
<nome>N. Bradley<\nome> ...
</title>
<\autor> ...
</head>
<\livro>
<livro tipo=“tecnico” ISBN=“02”>
<P>
<título>Data on the Web<\título>
<autor>
<nome>S. Abiteboul<\nome>...
XML Companion,N. Bradley
</P>
<P>
<\autor> ...
Data on the Web,S. Abiteboul
<\livro> ...
</listaLivros>
</P>
...
</html>
Roteiro
1. Introdução
2. Representação de Dados em XML
3. Tecnologia XML
4. XML e Bancos de Dados
a. gerenciamento de dados XML através de
bancos de dados relacionais
b. gerenciamento de dados XML através de
bancos de dados XML nativos
5. Conclusão
XML e BD
 Dados XML
– manipulados por diversos domínios de aplicação
 Tecnologia de BD
– necessária para a manutenção de dados XML
persistentes
 XML & BD
– XML é um dado não-convencional
 dado semi-estruturado
– tecnologia de BD necessita ser estendida para
tratar este tipo de dado
Dados Semi-Estruturados
 Principais características
–
–
–
–
estrutura heterogênea
estrutura auto-descritiva
estrutura parcial
estrutura dinâmica
Estrutura heterogênea
 Cada ocorrência de dado pode ter um
esquema particular
<autor>
<nome>Ronaldo Mello</nome>
<endereco>rua B,23</endereco>
<eMail>[email protected]</eMail>
</autor>
<autor>
<nome>Patrícia Vilain</nome>
<endereco>
<rua>Beira-Mar</rua>
<numero>767</numero>
<cidade>Fpolis</cidade>
</endereco>
<fone>3313333</fone>
<fone>3313332</fone>
</autor>
Estrutura auto-descritiva
 Cada ocorrência de dado carrega o seu
esquema
<autor>
<nome>Patrícia Vilain</nome>
<endereco>
<rua>Beira-Mar</rua>
<numero>767</numero>
<cidade>Fpolis</cidade>
</endereco>
<fone>3313333</fone>
<fone>3313332</fone>
</autor>
Estrutura parcial
 Apenas parte da descrição de um dado pode
ser estruturada
<capítulo numero = 2 titulo = “Tecnologia XML”>
Este capítulo descreve ... XML<ref>(Mel03)</ref>.
XML é um padrão ...
<secao numero = 1>
<titulo>DTD</titulo>
Esta seção descreve ...
</secao>
...
</capítulo>
Estrutura dinâmica
 Esquema para os dados deve suficientemente
flexível para contemplar a heterogeneidade
das ocorrências
– conseqüências
 esquemas extensos
 esquemas com suporte a representações alternativas
XML & BD
 Dados XML não são naturalmente
adequados para armazenamento em BDs
Dado de BD
Dado XML
representação
homogênea
representação heterogênea
esquema independente
dos dados
representação auto-descritiva
totalmente estruturado
estrutura parcial
esquema enxuto
esquema extenso
esquema fixo
esquema dinâmico
Categorias de Docs XML
 Documento Orientado a Dados (DOD)
– fracamente semi-estruturado
 representação de dados mais homogênea e
estruturada
<endereco>
<rua>Beira-Mar</rua><numero>104</numero><complemento>apto 203</complemento>
<bairro>centro</bairro><cidade>Fpolis</cidade> <cep>88010-600</cep>
</endereco>
<endereco>
<rua>Lauro Linhares</rua><numero>761</numero><bairro>trindade</bairro>
<cidade>Fpolis</cidade><cep>88040-900</cep>
</endereco>
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>
Categorias de Docs XML
 Duas alternativas para gerenciamento de
dados XML são geralmente adotadas
– uso de BDs relacionais estendidos para lidar
com dados XML
 mais adequado a DODs
– uso de BDs XML nativos
 mais adequado a DODocs
Roteiro
1.
2.
3.
4.
Introdução
Representação de Dados em XML
Tecnologia XML
XML e Bancos de Dados
a. gerenciamento de dados XML através
de bancos de dados relacionais
b. gerenciamento de dados através de bancos de dados
XML nativos
5. Conclusão
BDs Relacionais e XML
 Alternativa adequada a docs XML fortemente
estruturados
 Ênfase nos dados propriamente ditos
– manipulação dos dados delimitados por tags
– ordem hierárquica dos elementos e componentes
textuais não são relevantes
 Adequado a aplicações que realizam
intercâmbio de dados convencionais em XML
– dados de BD, arquivos, relatórios, docs bem
formatados em geral
BDs Relacionais e XML
 Vantagem
– uso da tecnologia de BD relacional
 acesso eficiente
 sscalabilidade
 linguagens de consulta declarativas
 tecnologia utilizada em larga escala
 Vários SGBDs já lidam com o formato XML
– Oracle 9i, DB2, Informix, ...
BDs Relacionais e XML
 Questões básicas a resolver
– armazenamento de docs XML
– acesso a dados XML
Armazenamento de Docs XML
 Soluções adotadas dependem da intenção da
aplicação
 Alternativas
– uso de aplicações middleware
– implementação do tratamento de dados XML
no próprio BD relacional
Aplicações Middleware
 Aplicações que realizam o mapeamento de
dados relacionais para XML e vice-versa
– apenas dados relacionais são mantidos no BD
– protocolo XML de mapeamento é definido
previamente entre as aplicações
 Solução adequada a aplicações
– que apenas desejam transferir dados relacionais
– que não manipulam nem definem dados
diretamente no formato XML
Aplicações Middleware
aplicação A
BDR 1
aplicação
middleware
tabela BD1.X
tabela BD2.X
x1
x2
x1
x2
10
15
10
15
...
...
...
...
<BD nome=“1”>
<tabela nome=“1”>
<linha>
<coluna nome=“x1”>10</coluna>
<coluna nome=“x2”>15</coluna>
</linha> . . .
</tabela> . . .
</BD>
Web
aplicação B
BDR 2
aplicação
middleware
Armazenamento XML no BD
 Dois enfoques
– grafo [Florescu99]
– níveis de granularidade [Graves03]
Enfoque - Grafo
 Doc XML é armazenado na forma de um grafo
orientado rotulado
 Duas alternativas em geral são adotadas
– tabela de arestas
– tabela para cada rótulo
<?xml version =“1.0” encoding = ...>
<listaLivros>
<livro ISBN=“112”>
<título>XML</título>
<autor>
<nome>João Silva</nome>
<eMail>[email protected]</eMail>
</autor>
<capítulo nome=“Introdução”> ...
</capítulo> ...
</livro> ...
</listaLivros>
...
listaLivros
...
1
livro
ISBN
...
capítulo
2
...
título
nome
4
“XML”
8
autor
“112” 3
nome
6
“João Silva”
5
eMail
7
9
“Introdução”
”[email protected]"
Alternativa 1 – Tabela de Arestas
Arestas
...
listaLivros
origem ordem nome
...
1
ISBN
8
...
título
nome
4
“XML”
1
...
capítulo
autor
“112” 3
nome
6
“João Silva”
destino valor
...
livro
2
tipo
5
eMail
7
9
“Introdução”
”[email protected]"
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
1
nome
string
6
...
...
5
...
João
Silva
Alternativa 2 – Tabelas p/ Rótulos
Autor
...
listaLivros
...
1
livro
ISBN
8
autor
“112” 3
...
título
nome
4
“XML”
5
nome
eMail
6
“João Silva”
7
ordem
destino
2
3
5
...
...
capítulo
2
origem
9
“Introdução”
Título
origem ordem
destino valor
2
4
2
XML
...
”[email protected]"
NomeAutor
Livro
origem ordem destino valor
origem
ordem
destino
5
1
1
2
...
...
...
1
6
João Silva
Enfoque - Grafo
Tabela de Arestas
Tabelas p/ Rótulos
+
 Uma única tabela
 Não há desperdício de
espaço
 Bom desempenho para
buscas na hierarquia do doc  Bom desempenho para
buscas por um determinado
tipo de elemento ou atributo
—
 Espaços nulos
 Desempenho ruim para
buscas por um determinado
tipo de elemento ou atributo
 Várias tabelas
 Desempenho ruim para
buscas na hierarquia do doc
(exige junções)
 Desempenho ruim na reconstrução do doc XML
 Não há distinção entre elemento e atributo
Enfoque – 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
Granularidade Grande
DocID
Nome
1
livros.xml
Documentos
...
<?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> ...
livros.xml
</listaLivros>
Conteúdo
---
Granularidade Pequena
Elementos
Atributos
elemID
tag
elemPai
1
listaLivros
2
livro
1
3
título
2
ordem
doc
atrID
tag
elem
ordem
valor
1
1
ISBN
2
1
112
1
1
...
1
1
...
<?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
Conteúdos
contID
valor
elem
1
XML
3
2
João Silva
5
...
Documentos
docID
nome
raiz
1
livros.xml
1
...
Granularidade Média
Elementos
Atributos
elemID
tag
elemPai
1
listaLivros
2
livro
1
3
título
2
ordem
doc
atrID
tag
elem
ordem
valor
1
1
ISBN
2
1
112
1
1
...
1
1
conteúdo
elem
ordem
2
3
...
<?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
Textos
contID
1
---
...
Conteúdos
contID
valor
elem
...
Documentos
docID
. ...
nome
raiz
Enfoque – Níveis de Granularidade
Granularidade
Grande
Granularidade
Média
Granularidade
Pequena
 aumenta a complexidade para a reconstrução do doc XML
 aumenta a complexidade do esquema relacional
 aumenta o desempenho de consultas declarativas
– granularidade grande: buscas por palavras-chave
X
– granularidade pequena: consultas a qq tipo de dado do doc; qq item
de dado pode ser indexado
 diminui o volume de armazenamento
– granularidade grande/média: tags do doc ocupam muito espaço
Projeto do Esquema Relacional
 Depende das prioridades da aplicação
– prioriza-se a manutenção e fácil reconstrução do
doc XML e/ou consultas hierárquicas
 tabela de arestas; uso de granularidade grande/média
– prioriza-se flexibilidade de consultas declarativas
 tabelas por rótulo; uso de granularidade média/pequena
– prioriza-se economia no espaço de armazenamento
 tabela de arestas; granularidade pequena
–...
Projeto do Esquema Relacional
 Combinações de enfoques podem ser adotadas
– exemplo: tabelas por rótulo + granularidade média
 possibilidade de consulta declarativa a cada tipo de
elemento ou atributo até o nível de detalhe desejado
 certa economia de espaço
 desempenho médio na reconstrução do doc XML
Exemplo 1 – DB2 XML Extender
 Armazenamento de doc XML
– granularidade grande
 coluna XMLCLOB, XMLVarchar ou XMLFile
 indexação de elementos e atributos
– enfoque de grafo baseado em tabelas por rótulo
 mapeamento DTD-Tabelas definido pelo projetista
Exemplo 1 – DB2 XML Extender
 Exemplo de armazenamento com granularidade
grande
TABLE Documentos
docID VARCHAR(10) NOT NULL
PRIMARY KEY
nome VARCHAR(40)
conteúdo XMLCLOB;
Exemplo 2 – Oracle 9i
 Armazenamento de doc XML
– granularidade grande
 coluna CLOB
 indexação textual (palavras-chave)
– granularidade pequena “virtual”
 mapeamento XSD-Esquema hierárquico OR ou DOM
– possibilidade de definir quais elementos e atributos serão
mapeados
 coluna especial do tipo xmltype encapsula o esquema
hierárquico do doc
 esquema hierárquico é mantido em tabelas do SGBD
que não são manipuladas pelo usuário (esquema
“virtual”)
Exemplo 2 – Oracle 9i
 Exemplo de armazenamento com granularidade
pequena “virtual” (II)
create table DocsXMLEstruturados(
docID varchar(10),
nome varchar2(40),
conteúdo xmltype )
xmltype column conteúdo xmlschema
"http://asktom.oracle.com/xsd/purchase
Order.xsd"
Acesso a Dados XML
 Armazenamento dos dados XML é relacional
– SQL é o padrão para acesso!
 Esquemas relacionais mais complexos
– exs.: granularidade pequena ou tabelas por rótulo
– consultas SQL tradicionais resolvem!
 Esquemas relacionais mais simples
– exs.: granularidade grande/média
– consultas SQL estendidas ao conteúdo do doc
 Resultados de consultas no formato XML
Consultas ao Conteúdo do Doc
 Organização física do doc em fragmentos
 Índices por palavras-chave a fragmentos
– buscas por palavras-chave
– linguagens de consulta XML podem ser
utilizadas para buscas baseadas em nomes de
tags ou de atributos
 Clustering de fragmentos de um mesmo doc
Consultas ao Conteúdo do Doc
 Exemplo1 – DB2 XML Extender
select docID, nome
from Documentos
where extract Varchar (conteúdo,
“/listaLivros/livro/título”)
like “%XML%”
Consultas ao Conteúdo do Doc
 Exemplo2 – Oracle 9i
select extractValue
(conteúdo,'/listalivros/livro/título')
from DocsXMLEstruturados
where
existsNode(conteúdo,'/listalivros/
livro/autor/nome') = “João Silva”
Resultados de Consultas em XML
 Uma estrutura XML pode ser gerada como resultado
 Um doc XML pode ser reconstruído ou gerado
 SQL/XML
– padrão ANSI ISO derivado do SQL
– define o tratamento de dados XML pela SQL
– diversas funcionalidades
 geração de elementos, hierarquias de elementos ou docs XML
 agrupamento e concatenação de elementos ou hierarquias de
elementos
 transformação de estruturas XML através de XSL
Resultados de Consultas em XML
 Oracle 9i e DB2 XML Extender
– ambos adotam parcialmente SQL/XML
– geração de docs XML
 Oracle 9i
– métodos da API DBMS_XMLGEN geram docs XML a partir
do resultado de consultas SQL/XML
 DB2 XML Extender
– definição de um esquema de mapeamento relacionalXML
(DAD) e uso de métodos específicos de geração
(dxxGenXMLCLOB(), dxxRetrieveXMLCLOB(), ...)
– geração de relatórios a partir de consultas SQL com
formatação XML
Resultados de Consultas em XML
 Exemplo 1 – Oracle 9i com SQL/XML
SELECT XMLElement(“Editoras",
XMLAttributes(e.razao_social AS “nome"),
XMLAgg( XMLElement(“Livro",
XMLForest (l.título AS “nome”,
l.ano AS “ano”,
l.nroPags AS “páginas”))))
FROM editoras e INNER JOIN livros l
ON e.código = l.editora
GROUP BY e.razao_social;
Resultados de Consultas em XML
 Exemplo 1 – Oracle 9i
– Resultado
<Editora nome=“Makron Books">
<Livro>
<nome>Sistema de Banco de Dados</nome>
<ano>2000</ano>
<páginas>676</páginas>
</Livro>
<Livro>
<nome>Projeto de Banco de Dados com XML</nome>
<Ano>2003</Ano>
<Páginas>518</Páginas>
</Livro> ...
</Editora>
<Editora nome=“Campus”>
...
Resultados de Consultas em XML
 Exemplo2 – DB2 XML Extender
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE DAD PUBLIC "dadId" "dad.dtd">
<DAD>
<dtdid>defaults.dtd</dtdid>
<Xcollection> ...
<prolog>?xml version="1.0"?</prolog> ...
<element_node name="ClassingRequest">
<RDB_node>
<table name="TEST.TAB1" key=“IMBSSN IMBRID IMBBLE"/>
<table name="TEST.TAB2" key="IMHSSN IMHRID"/>
<condition> TEST.TAB1.IMBSSN=TEST.TAB2.IMBSSN
</condition>
</RDB_node> ...
Exemplo de esquema de mapeamento
</DAD>
dxxGenXMLCLOB(
Exemplo de uso da
CLOB(100K) EspecifDAD, /* arq. Map */
...,
CLOB(1M) docXML, /* doc XML result. */
)
(DAD)
função de geração de doc XML
Atualização de Dados XML
 Esquemas de granulação média/pequena
– atualizações a nível relacional devem preservar
docs XML correspondentes sempre válidos
 Esquemas de granulação grande
– operações de inclusão, exclusão e sobreposição
de docs XML
Roteiro
1.
2.
3.
4.
Introdução
Representação de Dados em XML
Tecnologia XML
XML e Bancos de Dados
a. gerenciamento de dados XML através de bancos de
dados relacionais
b. gerenciamento de dados XML através
de bancos de dados XML nativos
5. Conclusão
BD XML
 BD que suporta um modelo lógico para dados
XML
– requisitos mínimos
 definição de elementos, atributos, #PCDATA e ordem
 Adequados a
– docs XML fortemente semi-estruturados
 mapeamento para BD relacional seria complexo!
– aplicações que lidam apenas com dados no
formato XML
 Intensa atividade de pesquisa e
desenvolvimento
BD XML x BD XML Nativo
 BD XML Nativo
– define um modelo de armazenamento físico
proprietário para dados XML
 BD XML
– pode ser construído sobre um BD com um modelo
lógico e físico diferente
 exemplo: BD relacional (tabelas e registros)
– apenas uma visão lógica XML é disponibilizada
BD XML - Características
 Objetivo
– discussão de características encontradas ou
desejadas em BD XML
 Estudo de Caso
– SGBD XML Tamino (www.softwareag.com/tamino)
 “Transaction Architecture for the Management of INternet Objects”
 servidor de dados XML desenvolvido pela Software AG
 suporte a SQL (mapeamento para formato relacional)
Coleções
 Noção lógica de um conjunto de docs XML
– a decisão por quais docs XML pertencem a uma
coleção fica em geral a cargo da aplicação
 + : flexibilidade quanto ao conteúdo da coleção
 - : baixo nível de integridade dos dados
– em alguns casos, um esquema XML fixo pode ser
associado a uma coleção
 Consultas e atualizações podem ser
direcionadas a coleções
Coleções - Tamino
 1 BD – n coleções – n esquemas – n tipos de documentos
– tipo de documento: definição de elemento raiz
– novo doc XML: inserido em uma coleção e válido para algum tipo doc
 Docs sem esquema mantidos na coleção ino:etc
tipos de documentos
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 (texto em linguagem natural)
– 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
 Usuários definem sessões de conexão com o BD
– várias transações podem ocorrer dentro de uma
sessão
– interrupção da sessão implica rollback de todas as
transações pendentes
 mecanismo de log e backup de dados
– deadlock
 transação mais recente tem prioridade
 Granularidade de bloqueio é sempre o doc XML
– existe um limite máximo de tempo para manter um
doc bloqueado
APIs - Conectividade
 Interfaces ODBC tradicionais
– conexão com o BD, execução de consultas e
atualizações e exploração de resultados
 Protocolos HTTP
– acesso via browsers Web (alguns BDs)
 Consórcio XML:DB
– propõe uma API para BDs XML
 manipulação de BDs e coleções; execução de
consultas Xpath e XUpdate; acesso a resultados de
consultas; controle de transações
APIs - Tamino
 Interface principal de acesso é via Web
– um servidor Tamino deve estar sempre associado a
um Web server (domínio Internet)
– define uma API que encapsula chamadas HTTP
 criação e manipulação de BDs, coleções e docs
– acesso:
http://<nome_domínio>/tamino/<nome_BD>/[<nome_col
eção>]<comando_API_HTTP>
 Outras formas de acesso
– API DOM para aplicações Java, Jscript e Active X
– API XML:DB
Tamino – Conectividade HTTP
Round-Tripping
 Capacidade de recuperação integral de um
doc XML
– seqüência textual intacta
 Funcionalidade importante para DODocs
 Precisão do round-tripping é diretamente
proporcional ao poder de expressão do
modelo lógico
– BDs XML garantem pelo menos round-tripping
a nível de elementos, atributos e seus conteúdos
Round-Tripping - Tamino
 Duas formas de armazenamento
– campo longo CLOB
 utilizado para DODocs e docs XML sem esquema
 índices de texto podem ser definidos
– permite buscas por padrões
 100% round-tripping
– formato nativo
 esquema de objetos proprietário
 utilizado para DODs
 índices sobre elementos e atributos podem ser definidos
 garante round-tripping a nível de hierarquia de
elementos
Armazenamento de Entidades
Externas

Fragmentos de docs XML podem ser externos
–

referenciados através de entidades
Duas alternativas básicas
1. manter a referência e não incorporar os dados
2. incorporar o conteúdo da referência ao doc XML

Alternativa 1 é relevante se o conteúdo é um dado
não-XML (imagem, programa, ...)
Tamino

–
–
dados externos são armazenados separadamente (campos
longos, em geral)
referências a estes dados são mantidas para fins de
reconstrução do doc XML
Redundância de Dados
 Comum em docs XML
– um elemento é sub-elemento de diversos elementos
 Armazenamento não-redundante de elementos
em geral não é considerado
– difícil identificar unicamente uma instância de
elemento
– aumento da complexidade de reconstrução da
hierarquia do doc XML
 Tamino
– mantém armazenamento redundante
Integridade Referencial
 Referências em um doc XML
– atributos id / idref
– definição de links internos ou externos
 Integridade referencial em geral controlada
a nível de referências internas ao doc XML
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
 Basicamente estas RIs são controladas em
BDs XML
 Carência de um mecanismo de integridade
mais robusto
– similar a BD relacional (SQL/DDL)
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
Projeto de um BD XML
 Não há uma metodologia consolidada
 Projeto tradicional de um BD
– (i) especificação de requisitos; (ii) modelagem
conceitual; (iii) modelagem lógica e (iv)
modelagem física ou implementação
– pode ser aplicado a um BD XML
 adequado a DODs
– foco nos dados; docs XML fortemente estruturados
 no caso de DODocs
– revisão da modelagem física: considerar a existência de
informação textual não-estruturada no conteúdo de
elementos
Guia para Projeto de BD XML
1. Especificação de requisitos
 levantamento das necessidades de dados
2. Modelagem conceitual
 uso de um modelo de dados convencional (ex.: ER)
3. Modelagem lógica
 uso de um modelo de dados baseado em grafo

adequado à representação de uma hierarquia XML
4. Modelagem física
 especificação do esquema XML (DTD ou XSD)
Modelagem Conceitual - Exemplo
ISBN título
Livros
nome
(1,N)
(0,N)
Autores
autoria
ordem
eMail (0,N)
nome
(1,N)
(1,1)
organização
Capítulos
referências (0,N)
Modelagem Lógica
 Grafo orientado
 Nodos não-terminais (ou não-léxicos)
– mapeamento de entidades do ER
– modelam elementos compostos
 Nodos terminais (ou léxicos)
– mapeamento de atributos do ER
– modelam conteúdo de elemento ou de atributo
 Arestas rotuladas com restrições de cardinalidade
– mapeamento de relacionamentos ou associações
entidade-atributo do ER
– modelam relacionamentos hierárquicos ou associações
elemento-atributo no doc XML
Modelagem Lógica
 Eleição do nodo não-léxico central
– entidade central na modelagem conceitual
 a partir dela uma hierarquia de nodos pode ser definida a partir de
seus relacionamentos no ER
 exemplo: Livro
– um nodo raiz deve ser definido como pai deste nodo
(cardinalidade 1:N)
 sugestões de nomenclatura
– conjunto de ocorrências da entidade central (ex.: Livros)
– contexto do domínio (exs.: Livraria, Biblioteca, ...)
 Mais de um nodo central pode existir...
– entidades “independentes” (ex.: livros e funcionários de uma
biblioteca)
– todos serão filhos do nodo raiz (ex.: biblioteca)
Modelagem Lógica - Exemplo
nodo raiz
Livros
(1,N)
nodo léxico
(1,1)
Livro
ISBN
(1,1)
(1,N)
(1,N)
Autor
nodo central
(1,1)
Título
nodo não-léxico
Capítulo
(1,1)
(0,N)
Nome
(0,N)
(1,1)
Nome
eMail
Referência
Ordem
Modelagem Física
 Definição de elementos e atributos do esquema
– nodos não-léxicos  elementos compostos
– nodos léxicos  elementos #PCDATA ou atributos
 Determinação da ordem de sub-elementos
– análise das arestas que partem do nodo não-léxico
 Modelagem física de um nodo léxico
– como atributo
 economia de espaço no doc XML
 possibilidade de definição de restrições de integridade
– como elemento
 recomendado para conteúdos extensos
Modelagem Física - Exemplo
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
Livros
(1,N)
(1,1) Livro
(1,1)
ISBN
Título
(1,N) (1,N)
Autor
(1,1)
(0,N)
Nome
eMail
Capítulo
(1,1)
(1,1)
Nome
(0,N)
Ordem
Referência
Livros (Livro+)>
Livro (Título, Autor+, Capítulo+)>
Livro ISBN CDATA>
Título (#PCDATA)>
Autor (Nome, eMail*)>
Nome (#PCDATA)>
eMail (#PCDATA)>
Capítulo (Nome, Referência*)>
Capítulo ordem CDATA>
Referência (#PCDATA)>
Modelagem Física - Revisão
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ATTLIST
<!ELEMENT
Livros (Livro+)>
Livro (Título, Autor+, Capítulo+)>
Livro ISBN CDATA>
• ordem implícita
Título (#PCDATA)>
para capítulos
Autor (Nome, eMail*)>
• capítulos com
Nome (#PCDATA)>
conteúdo textual
eMail (#PCDATA)>
Capítulo (Nome, Referência*)>
Capítulo ordem CDATA>
Referência (#PCDATA)>
<!ELEMENT Livros (Livro+)>
<!ELEMENT Livro (Título, Autor+, Capítulo+)>
<!ATTLIST Livro ISBN CDATA>
<!ELEMENT Título (#PCDATA)>
<!ELEMENT Autor (Nome, eMail*)>
<!ELEMENT Nome (#PCDATA)>
<!ELEMENT eMail (#PCDATA)>
<!ELEMENT Capítulo (Nome, Texto)>
<!ELEMENT Texto (#PCDATA | Referência)*>
<!ELEMENT Referência (#PCDATA)>
Roteiro
1.
2.
3.
4.
Introdução
Representação de Dados em XML
Tecnologia XML
XML e Bancos de Dados
a. gerenciamento de dados XML através de
bancos de dados relacionais
b. gerenciamento de dados XML através de
bancos de dados XML nativos
5. Conclusão
Conclusão
 Uso amplo de XML requer soluções para
gerenciamento de dados XML
– tema de pesquisa atual na comunidade de BD
 Duas frentes de pesquisa/desenvolvimento
– extensão de SGBDs relacionais
– desenvolvimento de SGBDs XML nativos
 SGBDs XML nativos irão vingar?...
Conclusão
 Argumentos a favor de BDs XML nativos
– dados XML são semi-estruturados
 overhead de gerenciamento para BDs não-XML
– aplicações com regras de negócio pouco claras ou
muito dinâmicas
 flexibilidade estrutural de docs XML modela melhor as
transações e dados personalizados do negócio
– custo da extensão de um BD não-XML
 incorporação da tecnologia XML, mapeamento de/para
o formato XML
– aplicações que lidam apenas com dados XML
 por quê adquirir um BD não-XML?
– sub-utilização de recursos; recursos para o gerenciamento de
dados XML é limitado ou complicado
Conclusão
 SGBDs XML nativos irão vingar?
– não há resposta imediata...
– provavelmente não serão “A nova geração de
SGBDs”
 BDs relacionais continuam adequados a muitas
categorias de aplicações
 XML tornar-se-á um modelo de dados de uso
extensivo para BDs como o modelo relacional?
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