Upload
anila
View
28
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Gerenciamento de Gerenciamento de Dados XMLDados XML
Ronaldo dos Santos Mello
INE/CTC/[email protected]
V Escola Regional de Informática Norte
Mini-Curso
Sobre este mini-curso...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
RoteiroRoteiro
1. Introdução2. Representação de Dados em XML3. Tecnologia XML4. 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
RoteiroRoteiro
1.1. IntroduçãoIntrodução2. Representação de Dados em XML3. Tecnologia XML4. 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 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 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 XMLProtocolos 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...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 BDTecnologia 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 BDTecnologia 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?
RoteiroRoteiro
1. Introdução
2.2. Representação de Dados em XMLRepresentação de Dados em XML3. Tecnologia XML4. 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 XMLFormato 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 XMLExemplo de Dado XML<livro> <titulo>Tecnologia XML</titulo> <autor> <nome>João da Silva</nome> <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>
tag (intenção do dado)
conteúdo do dado
estrutura hierárquica, ordenada e complexa
XML x HTMLXML 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 XMLSintaxe 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 XMLExemplo 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 XMLExemplo 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>
cabeçalho
Exemplo de Documento XMLExemplo 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 XMLExemplo 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>
instrução de processamento
Exemplo de Documento XMLExemplo 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>
elemento raizelemento simples (#PCDATA)
elemento composto
elemento misto
Exemplo de Documento XMLExemplo 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>
atributo
Exemplo de Documento XMLExemplo 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>
declaração deentidade
referência auma entidade
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 são capazes de realizar tal verificação
RoteiroRoteiro
1. Introdução2. Representação de Dados em XML
3.3. Tecnologia XMLTecnologia XML4. 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 XMLTecnologia XML
Esquemas– DTD e XSD
Linguagens de consulta– XPath e XQuery
APIs– DOM, ...
Transformação e apresentação de dados– XSL
. . .
Definição de EsquemasDefiniçã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)
DTDDTD
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 - ExemploDTD - Exemplo
<!ELEMENT listaLivros (livro+)><!ELEMENT livro (título, autor+, capítulo+)><!ATTLIST livro ISBN CDATA #IMPLIED><!ELEMENT título (#PCDATA)><!ELEMENT autor (nome, eMail?)><!ELEMENT nome (#PCDATA)><!ELEMENT eMail (#PCDATA)><!ELEMENT capítulo (#PCDATA | seção)*><!ATTLIST capítulo nome CDATA #REQUIRED><!ELEMENT seção (nome, conteúdo)><!ATTLIST seção ident ID><!ELEMENT conteúdo (#PCDATA)><!ATTLIST conteúdo ref IDREFS #IMPLIED>
XSDXSD
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 - 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> ...
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>
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:
<resultado> <título>Tecnologia XML</título> <título>Sistema de Banco de Dados</título> . . .</resultado>
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[@ISBN=“112”]/título (filtro)
/livro//secao[../@nome=“XML e BD”] (filtro)
XQueryXQuery
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
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)
DOM (DOM (Document Object ModelDocument 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 DOMObjetos do Modelo DOM
listaLivros
livro
título preço
ISBN
“Tecnologia XML” 79.00
“João da Silva”
nome mail
autor
nome
autor
“Maria Souza”
livro
. . .
document
node
element
nodelist
Exemplos de Métodos da API DOMExemplos de Métodos da API DOM
Método Resultado
documentElement Element
getElementByTagName(String) NodeList
createElement(String) Element
. . .
document
Método Resultado
tagName String
getAttribute(String) String
setAttribute(String nome, String valor) Attr
removeAttribute(String)
getElementsByTagName NodeList
. . .
element
Método Resultado
Length int
item(int) Node
nodeList
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);}
XSL (XSL (XML Style sheet LanguageXML 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 XMLHTML, XMLXML, XMLTexto puro, ...
Documento XSLDocumento XSL
Define uma folha de estilo Sintaxe XML Referenciado em um doc XML
Processador XSL– programa que valida e executa as regras
definidas em um doc XSL– alguns browsers Web processam docs XSL
<?xml version=“1.0” ?><?xml-stylesheet type=“text/xsl” href=“estilo.xsl” ?>...
Estrutura de um Doc XSL(T) Estrutura de um Doc XSL(T)
<stylesheet xmlns = "http://www.w3.org/XSL/Transform/1.0">
</template match = “/livro/autor"> ...</template>
...
</stylesheet>
elemento raiznamespace default
(DTD da W3C com instruções XSL)
padrão: indica o elemento ou atributo para o qual a regra se aplica
(expressão XPath)regra de formatação
Exemplo de Transformação XSLExemplo de Transformação XSL
<listaLivros>
<livro tipo=“tecnico” ISBN=“01”>
<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>
<autor>
<nome>S. Abiteboul<\nome>...
<\autor> ...
<\livro> ...
</listaLivros>
Entrada: doc XML<stylesheet xmlns = ...>
<template match = "listaLivros">
<html><head>
<title>Livros Técnicos</title> </head>
<apply-templates/>
</html>
</template>
<template match = “livro">
<P>
<apply-templates select =
“livro[@tipo = "tecnico"]">
<sort = "título">
</apply-templates>
</P>
</template>
...
Transformação: doc XSL
processar elementos
filhos
selecionar livros
técnicos
ordenarpor
títrulo
Exemplo de Transformação XSLExemplo de Transformação XSL
<listaLivros>
<livro tipo=“tecnico” ISBN=“01”>
<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>
<autor>
<nome>S. Abiteboul<\nome>...
<\autor> ...
<\livro> ...
</listaLivros>
Entrada: doc XML Transformação: doc XSL
selecionaro conteúdo
de título
...
<variable name = "separador">,</variable>
<template match = "título">
<value-of select = ".">
<value-of select = "{$separador}">
</template>
<template match = "author/name">
<value-of select = ".">
</template>
</stylesheet>
selecionaro conteúdo
do nomedo autor
Exemplo de Transformação XSLExemplo de Transformação XSL
<listaLivros>
<livro tipo=“tecnico” ISBN=“01”>
<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>
<autor>
<nome>S. Abiteboul<\nome>...
<\autor> ...
<\livro> ...
</listaLivros>
Entrada: doc XML<html>
<head>
<title>
Livros Técnicos
</title>
</head>
<P>
XML Companion,N. Bradley
</P>
<P>
Data on the Web,S. Abiteboul
</P>
...
</html>
Saída: doc HTML
RoteiroRoteiro
1. Introdução2. Representação de Dados em XML3. Tecnologia XML
4.4. XML e Bancos de DadosXML e Bancos de Dadosa. gerenciamento de dados XML através de
bancos de dados relacionaisb. gerenciamento de dados XML através de
bancos de dados XML nativos
5. Conclusão
XML e BDXML 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-EstruturadosDados Semi-Estruturados
Principais características– estrutura heterogênea– estrutura auto-descritiva– estrutura parcial– estrutura dinâmica
Estrutura heterogêneaEstrutura 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-descritivaEstrutura 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 parcialEstrutura 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âmicaEstrutura 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 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 XMLCategorias 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 XMLCategorias de Docs XML
Documento Orientado a Documento (DODoc)– fortemente semi-estruturado
representação fortemente textual
<anuncio><transacao>Vendo</transação>, por motivo de viagem,<produto>automóvel Gol I 97</produto>, cor azul, em ótimo estado de conservação. Preço: R$<preco>9000,00</preco>. Tratar com<contato><nome>Pedro</nome> fone</fone>99991111</fone></contato> </anuncio> <anuncio>Atenção! Se você deseja vender o seu veículo, nós realizamos o melhor negócio. <transacao>Compramos</transação> qq tipo de <produto>veículo</produto>. Ligue-nos: <contato><fone>2340011</fone> ou envie um e-mail:<eMail>[email protected]</eMail><contato></anuncio>
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
Categorias de Docs XMLCategorias de Docs XML
RoteiroRoteiro
1. Introdução
2. Representação de Dados em XML
3. Tecnologia XML
4. XML e Bancos de Dados
a.a. gerenciamento de dados XML através gerenciamento de dados XML através de bancos de dados relacionaisde bancos de dados relacionais
b. gerenciamento de dados através de bancos de dados XML nativos
5. Conclusão
BDs Relacionais e XMLBDs 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 XMLBDs 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 XMLBDs Relacionais e XML
Questões básicas a resolver– armazenamento de docs XML– acesso a dados XML
Armazenamento de Docs XMLArmazenamento 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 Aplicações MiddlewareMiddleware
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 Aplicações MiddlewareMiddleware
BDR 1
aplicaçãomiddleware
aplicação A
BDR 2
aplicação B
aplicaçãomiddleware
x1 x2
10 15
... ...
tabela BD1.Xx1 x2
10 15
... ...
tabela BD2.X
<BD nome=“1”> <tabela nome=“1”> <linha> <coluna nome=“x1”>10</coluna> <coluna nome=“x2”>15</coluna> </linha> . . . </tabela> . . .</BD>
Web
Armazenamento XML no BDArmazenamento XML no BD
Dois enfoques– grafo [Florescu99]– níveis de granularidade [Graves03]
Enfoque - GrafoEnfoque - 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>
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
. . .
. . .
Alternativa 1 – Tabela de ArestasAlternativa 1 – Tabela de Arestas
origem ordem nome tipo destino valor
...
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ão
Silva
...
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
. . .
. . .
Arestas
Alternativa 2 – Tabelas p/ RótulosAlternativa 2 – Tabelas p/ Rótulos
origem ordem destino
1 1 2
...
origem ordem destino valor
2 2 4 XML
...
Livro
origem ordem destino
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
. . .
. . .
origem ordem destino valor
5 1 6 João Silva
...
NomeAutor
. . .
Enfoque - GrafoEnfoque - Grafo
Tabela de Arestas Tabelas p/ Rótulos
+ Uma única tabela Bom desempenho para buscas na hierarquia do doc
Não há desperdício de espaço 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 GranularidadeEnfoque – 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 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
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
Elementos
atrID tag elem ordem valor
1 ISBN 2 1 112
...
Atributos
contID valor elem
1 XML 3
2 João Silva 5
. . .
Conteúdos
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
. . .
Elementos
atrID tag elem ordem valor
1 ISBN 2 1 112
...
Atributos
docID nome raiz
. ...
Documentos
contID conteúdo elem ordem
1 2 3
. . .
Textos
---
contID valor elem
. . .
Conteúdos
Enfoque – Níveis de GranularidadeEnfoque – Níveis de GranularidadeGranularidade
GrandeGranularidade
MédiaGranularidade
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-chaveX
– 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 RelacionalProjeto 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 RelacionalProjeto 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 – Exemplo 1 – DB2 XML ExtenderDB2 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 – Exemplo 1 – DB2 XML ExtenderDB2 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 – Exemplo 2 – Oracle 9iOracle 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 – Exemplo 2 – Oracle 9iOracle 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/purchaseOrder.xsd"
Acesso a Dados XMLAcesso 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 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 DocConsultas 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 DocConsultas 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 XMLResultados 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 XMLResultados 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 relacionalXML
(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 XMLResultados 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.editoraGROUP BY e.razao_social;
Resultados de Consultas em XMLResultados 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 XMLResultados de Consultas em XML Exemplo2 – DB2 XML Extender
dxxGenXMLCLOB(
CLOB(100K) EspecifDAD, /* arq. Map */
...,
CLOB(1M) docXML, /* doc XML result. */
)
<?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> ...</DAD> Exemplo de esquema de mapeamento (DAD)
Exemplo de uso da função de geração de doc XML
Atualização de Dados XMLAtualizaçã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
RoteiroRoteiro
1. Introdução
2. Representação de Dados em XML
3. Tecnologia XML
4. XML e Bancos de Dadosa. gerenciamento de dados XML através de bancos de
dados relacionais
b.b. gerenciamento de dados XML através gerenciamento de dados XML através de bancos de dados XML nativosde bancos de dados XML nativos
5. Conclusão
BD XMLBD 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 NativoBD 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ísticasBD 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çõ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
– 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 - TaminoColeçõ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
ConsultasConsultas
Suporte a pelo menos uma linguagem de consulta para XML– uso mais extensivo de XPath – uso de alguns dialetos da XQuery (tendência!)
Características desejadas para uma linguagem de consulta para XML– busca por padrões (texto em linguagem natural)– consultas declarativas– resultados de consultas
doc XML, fragmentos de docs XML ou novas estruturas XML
Consultas - TaminoConsultas - Tamino Suporte a Xpath (chamada X-Query) e XQuery estendidos Geração de docs XML como resultado
busca por padrão
AtualizaçõesAtualizações
Capacidades de atualização são variadas– possibilidade apenas de substituição de um doc
XML completo– API DOM para atualização de nodos– linguagens de atualização declarativas
exemplo: XUpdate (consórcio XML:DB) XML:DB
– consórcio de empresas responsável pelo desenvolvimento de tecnologias para BDs XML
tendência: XQuery como linguagem de atualização
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]"/>
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>))
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
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– existe um limite máximo de tempo para manter um
doc bloqueado
APIs - ConectividadeAPIs - 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 - TaminoAPIs - 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_coleção>]<comando_API_HTTP>
Outras formas de acesso– API DOM para aplicações Java, Jscript e Active X– API XML:DB
Tamino – Conectividade HTTPTamino – Conectividade HTTP
Round-TrippingRound-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-TrippingRound-Tripping - Tamino - 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 Armazenamento de Entidades ExternasExternas
Fragmentos de docs XML podem ser externos – referenciados através de entidades
Duas alternativas básicas1. manter a referência e não incorporar os dados2. 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 DadosRedundâ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 ReferencialIntegridade 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ânticaIntegridade Semântica
RIs a nível de esquemas XML são limitadas– ordem hierárquica e restrições de cardinalidade– tipo de dado de elementos e atributos– valores permitidos
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 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 XMLProjeto 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 XMLGuia 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 - ExemploModelagem Conceitual - Exemplo
Autores
nome
eMail (0,N)autoria(1,N)
Livros(0,N)
títuloISBN
organização(1,N)(1,1)
Capítulos
ordem nome
referências (0,N)
Modelagem LógicaModelagem 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ógicaModelagem 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 - ExemploModelagem Lógica - Exemplo
(1,N)
Livro(1,1) (1,1)
ISBN
Autor
Título
(1,1)
Nome(0,N)
(1,N)
Capítulo(1,1)
Nome
(1,1)
Ordem
Livros
(1,N)
nodo raiz
nodo centralnodo léxico
nodo não-léxico
(0,N)
Referência
Modelagem FísicaModelagem 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 - ExemploModelagem Física - Exemplo
(1,N)
Livro(1,1) (1,1)ISBN
Autor
Título
(1,1)
Nome(0,N)
(1,N)
Capítulo(1,1)
Nome
(1,1)
Ordem
Livros
(1,N)
<!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, Referência*)><!ATTLIST Capítulo ordem CDATA><!ELEMENT Referência (#PCDATA)>
(0,N)
Referência
Modelagem Física - RevisãoModelagem Física - Revisão<!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, Referência*)><!ATTLIST Capítulo ordem CDATA><!ELEMENT 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)>
• ordem implícita para capítulos• capítulos com conteúdo textual
RoteiroRoteiro
1. Introdução2. Representação de Dados em XML3. Tecnologia XML4. 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.5. ConclusãoConclusão
ConclusãoConclusã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ãoConclusã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ãoConclusã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ênciasReferências
Tecnologia XML– http://www.w3c.org/xml
XML & BD– http://www.rpbourret.com/xml/XMLAndDatabases.htm
SQL/XML– http://otn.oracle.com/tech/xml/xmldb/htdocs/sql_xml.html
XML:DB– http://www.xmldb.org
SGBD XML Tamino– http://www.softwareag.com/tamino