Gerenciamento de dados xml
This presentation is the property of its rightful owner.
Sponsored Links
1 / 125

Gerenciamento de Dados XML PowerPoint PPT Presentation


  • 38 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Gerenciamento de Dados XML

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Gerenciamento de dados xml

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

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

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


Roteiro1

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


Xml extensible markup language

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

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

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

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 bd1

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?


Roteiro2

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


Formato xml

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

Exemplo de Dado XML

tag (intenção do dado)

<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>

conteúdo do dado

estrutura hierárquica, ordenada e complexa


Xml x html

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

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

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 xml1

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>

cabeçalho


Exemplo de documento xml2

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 xml3

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>

instrução de processamento


Exemplo de documento xml4

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>

elemento raiz

elemento simples

(#PCDATA)

elemento composto

elemento misto


Exemplo de documento xml5

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>

atributo


Exemplo de documento xml6

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>

declaração de

entidade

referência a

uma entidade


Documento xml bem formado

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


Roteiro3

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


Tecnologia xml

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

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)


Gerenciamento de dados xml

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

DTD - 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>


Gerenciamento de dados xml

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

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 – 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

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

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)

[email protected](acesso a um atributo)

/livro[título=“XML”] (filtro)

/livro[@ISBN=“112”]/título (filtro)

/livro//secao[..[email protected]=“XML e BD”] (filtro)


Xquery

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”)

    forvariável in expressãoXPath

    [letassociação de novas variáveis]

    [wherecondição]

    returnestrutura de resultado


Xquery exemplos

XQuery - Exemplos

(consulta

simples)

for $liv in /livro

where $liv/autor/nome = “João Silva”

return { [email protected], $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 [email protected] != [email protected]

  • and $liv2/autor/nome = $liv1/autor/nome

  • return $liv2/titulo

(nova estrutura

de resultado)

(junção)


Dom document object model

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

título

mail

Objetos do Modelo DOM

document

node

listaLivros

. . .

livro

ISBN

livro

preço

autor

autor

“Tecnologia XML”

79.00

element

nome

nome

“Maria Souza”

[email protected]

“João da Silva”

[email protected]

nodelist


Exemplos de m todos da api dom

Exemplos de Métodos da API DOM

document

nodeList

element


Dom exemplo javascript

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

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

Documento 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)

<stylesheetxmlns = "http://www.w3.org/XSL/Transform/1.0">

</templatematch = “/livro/autor">

...

</template>

...

</stylesheet>

namespace default

(DTD da W3C com instruções XSL)

elemento raiz

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 xsl

Exemplo de Transformação XSL

Transformação: doc XSL

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-templatesselect =

“livro[@tipo = "tecnico"]">

<sort = "título">

</apply-templates>

</P>

</template>

...

<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>

processar

elementos

filhos

selecionar

livros

técnicos

ordenar

por

títrulo


Exemplo de transforma o xsl1

Exemplo de Transformação XSL

Transformação: doc XSL

Entrada: doc XML

...

<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>

<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>

selecionar

o conteúdo

de título

selecionar

o conteúdo

do nome

do autor


Exemplo de transforma o xsl2

Exemplo de Transformação XSL

Entrada: doc XML

Saída: doc HTML

<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>

<html>

<head>

<title>

Livros Técnicos

</title>

</head>

<P>

XML Companion,N. Bradley

</P>

<P>

Data on the Web,S. Abiteboul

</P>

...

</html>


Roteiro4

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


Xml e bd

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

Dados Semi-Estruturados

  • Principais características

    • estrutura heterogênea

    • estrutura auto-descritiva

    • estrutura parcial

    • estrutura dinâmica


Estrutura heterog nea

Estrutura heterogênea

  • Cada ocorrência de dado pode ter um esquema particular

<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>

<autor>

<nome>Ronaldo Mello</nome>

<endereco>rua B,23</endereco>

<eMail>[email protected]</eMail>

</autor>


Estrutura auto descritiva

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

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

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

XML & BD

  • Dados XML não são naturalmente adequados para armazenamento em BDs


Categorias de docs xml

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 xml1

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 e-mail:<eMail>[email protected]</eMail><contato>

</anuncio>


Categorias de docs xml2

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


Roteiro5

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados através de bancos de dados XML nativos

  • Conclusão


Bds relacionais e xml

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 xml1

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 xml2

BDs Relacionais e XML

  • Questões básicas a resolver

    • armazenamento de docs XML

    • acesso a dados XML


Armazenamento de docs 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 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 middleware1

BDR 1

BDR 2

Web

Aplicações Middleware

aplicação B

aplicação A

tabela BD1.X

tabela BD2.X

<BD nome=“1”>

<tabela nome=“1”>

<linha>

<coluna nome=“x1”>10</coluna>

<coluna nome=“x2”>15</coluna>

</linha> . . .

</tabela> . . .

</BD>

aplicação

middleware

aplicação

middleware


Armazenamento xml no bd

Armazenamento XML no BD

  • Dois enfoques

    • grafo [Florescu99]

    • níveis de granularidade [Graves03]


Enfoque grafo

. . .

listaLivros

. . .

1

livro

. . .

2

capítulo

ISBN

8

. . .

autor

“112”

título

3

nome

5

9

nome

eMail

“XML”

“Introdução”

7

4

“João Silva”

[email protected]"

6

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>


Alternativa 1 tabela de arestas

3

4

6

Alternativa 1 – Tabela de Arestas

Arestas

. . .

listaLivros

. . .

1

livro

. . .

2

capítulo

ISBN

8

. . .

autor

“112”

título

nome

5

9

nome

eMail

“XML”

“Introdução”

7

“João Silva”

[email protected]"


Alternativa 2 tabelas p r tulos

. . .

listaLivros

. . .

1

livro

. . .

2

capítulo

ISBN

8

. . .

autor

“112”

título

3

nome

5

9

nome

eMail

“XML”

“Introdução”

7

4

“João Silva”

[email protected]"

6

Alternativa 2 – Tabelas p/ Rótulos

Autor

Título

NomeAutor

Livro

. . .


Enfoque grafo1

Enfoque - Grafo


Enfoque n veis de granularidade

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

Granularidade Grande

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> ...

</listaLivros>

livros.xml


Granularidade pequena

Granularidade Pequena

Elementos

Atributos

Conteúdos

<?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>

Documentos

livros.xml


Granularidade m dia

Granularidade Média

Elementos

Atributos

Textos

---

<?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>

Conteúdos

Documentos

livros.xml


Enfoque n veis de granularidade1

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

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 relacional1

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

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 extender1

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

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 9i1

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/purchaseOrder.xsd"


Acesso a dados xml

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

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 doc1

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 doc2

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

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 xml1

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 xml2

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 xml3

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 xml4

Resultados de Consultas em XML

<?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>

  • Exemplo2 – DB2 XML Extender

Exemplo de esquema de mapeamento (DAD)

Exemplo de uso da função de geração de doc XML

  • dxxGenXMLCLOB(

  • CLOB(100K) EspecifDAD, /* arq. Map */

  • ...,

  • CLOB(1M) docXML, /* doc XML result. */

  • )


Atualiza o de dados 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


Roteiro6

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


Bd xml

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 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

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

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

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

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

Consultas - Tamino

  • Suporte a Xpath (chamada X-Query) e XQuery estendidos

  • Geração de docs XML como resultado

busca por padrão


Atualiza es

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

XUpdate

  • 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 tamino

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

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

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

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

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_coleção>]<comando_API_HTTP>

  • Outras formas de acesso

    • API DOM para aplicações Java, Jscript e Active X

    • API XML:DB


Tamino conectividade http

Tamino – Conectividade HTTP


Round tripping

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

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

Armazenamento de Entidades Externas

  • Fragmentos de docs XML podem ser externos

    • referenciados através de entidades

  • Duas alternativas básicas

    • manter a referência e não incorporar os dados

    • 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

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

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

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

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

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

Guia para Projeto de BD XML

  • Especificação de requisitos

    • levantamento das necessidades de dados

  • Modelagem conceitual

    • uso de um modelo de dados convencional (ex.: ER)

  • Modelagem lógica

    • uso de um modelo de dados baseado em grafo

      • adequado à representação de uma hierarquia XML

  • Modelagem física

    • especificação do esquema XML (DTD ou XSD)


Modelagem conceitual exemplo

Modelagem Conceitual - Exemplo

ISBN

título

nome

(1,N)

(0,N)

eMail (0,N)

Autores

Livros

autoria

nome

ordem

(1,N)

(1,1)

Capítulos

organização

referências (0,N)


Modelagem l gica

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 gica1

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

Modelagem Lógica - Exemplo

nodo raiz

Livros

(1,N)

nodo léxico

nodo central

Livro

(1,1)

(1,1)

ISBN

Título

(1,N)

(1,N)

nodo não-léxico

Autor

Capítulo

(1,1)

(1,1)

(1,1)

(0,N)

(0,N)

Nome

Nome

eMail

Ordem

Referência


Modelagem f sica

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

Modelagem Física - Exemplo

<!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)>

Livros

(1,N)

Livro

(1,1)

(1,1)

ISBN

Título

(1,N)

(1,N)

Autor

Capítulo

(1,1)

(1,1)

(1,1)

(0,N)

(0,N)

Nome

Nome

Ordem

eMail

Referência


Modelagem f sica revis o

Modelagem 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)>

  • ordem implícita

  • para capítulos

  • capítulos com

  • conteúdo textual

<!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)>


Roteiro7

Roteiro

  • Introdução

  • Representação de Dados em XML

  • Tecnologia XML

  • XML e Bancos de Dados

    • gerenciamento de dados XML através de bancos de dados relacionais

    • gerenciamento de dados XML através de bancos de dados XML nativos

  • Conclusão


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 o1

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 o2

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

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


  • Login