Gerenciamento de Dados XML

Slides:



Advertisements
Apresentações semelhantes
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Advertisements

Sistema de Informações para Gerenciamento de Publicações
Introdução Marcus Vinícius Carneiro Teixeira.
Standard para representar e trocar informação estruturada
Profa. Rudson apostilas.wikidot.com/hipermidia
Funcionalidades de um SGBD
Helena Galhardas DEI IST
1 FEUPXML Anotação de Documentos Elementos, Atributos, Entidades, Comentários, Declarações e Instruções de Processamento.
XML (eXtensible Markup Language) W3C - World Wide Web Consortium Documentos TXT estruturados? Por que XML? XML, ou eXtensible Markup Language, é uma linguagem.
Maurício Edgar Stivanello
Validação HTML.
XML - Extensible Markup Language
Vânia Maria Ponte Vidal
Consultado Documentos XML com XPATH
Categorias de Documentos XML
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
Geórgia Maria e Maria das Graças
Tecnologia para Web JavaScript
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Tecnologias para Internet Thyago Maia Tavares de Farias Aula 6.
Conteúdo XML DOM XSL XSD XML DOM-XSL-XSD.
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
Programação WEB HTML.
Jquery – Parte 3 Linguagem de scripts.
HTML Básico João Araujo.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
SEDNA SGBD XML NATIVO.
XML Extended Markup Language
Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.
XML Schema Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa Fumagalli.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando.
Document Type Definition - DTD
Tópicos avançados em internet A
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Programação WEB HTML.
HTML Programação Web.
Conceitos de J2EE para a WEB
Document Type Definition (DTD) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.
Profº Cláudio Barbosa XHTML – Introdução  XHTML (eXtensible HyperText Markup Language) – linguagem baseada na XML para.
Professor: Márcio Amador
PrograMação para internet
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Introdução a XML Prof. Ismael H F Santos.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Universidade do Estado do Rio de Janeiro Instituto de Matemática e Estatística XML: Extensible Markup Language EquipeEquipe: Adriana Cristina de Oliveira.
XML – Extensible Markup Language [Introdução] Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa.
©Silberschatz, Korth and Sudarshan (modificado)10.1.1Database System Concepts Capítulo 10: XML XML para transferência de dados Estrutura hierárquica do.
Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.
The Petri Net Markup Language (PNML) Wellington João da Silva Mestrado Ciência da Computação.
©Silberschatz, Korth and Sudarshan (modificado)10.2.1Database System Concepts Capítulo 10: XML XML para transferência de dados Estrutura hierárquica do.
PROGRAMAÇÃO WEB AULA XHTML
Validando Documentos XML Vânia Maria Ponte Vidal
XML Prof. Dr. Fernando Gauthier INE/UFSC. XML XML (Extensible Markup Language) é uma linguagem para marcar documentos que contêm informações estruturadas.
XML Namespaces XML Namespaces provê um método para evitar conflito de nomes de elementos.
XML – Extensible Markup Language [Sintaxe] Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa Fumagalli.
XML: Conceitos, Tecnologias e Aplicações Vânia Maria Ponte Vidal
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Introdução a XML Prof. Ismael H F Santos.
ODMG - Object Database Management Group Padrão para SGBDOO Consórcio de pesquisadores e fabricantes Objetivo –integração e padronização de funcionalidades.
Consultando Documentos XML com XQUERY Vânia Maria Ponte Vidal
Java e XML Eduardo Aranha. Slogans de Java e de XML Java – “Portabilidade de Código” XML – “Portabilidade de Dados” Java e XML – “Portabilidade de Código.
SQL SERVER XML Guia Essencial para Programação com XML no SQL Server.
LexML 2.0: Tratamento do Texto Integral
1 Sistemas Multimídia Fundamentos Básicos - HTML Prof. Hemir Santiago Prof. Hemir Santiago.
Modelagem de dados XML Yago Zacarias Gomes Coutinho Ribeiro
YOUR LOGO Tópicos Avançados em Internet Prof. Lincoln Ferreira Dantas Sistemas de Informação UNIESP – Presidente Epitácio.
Prof. João Ricardo Andrêo Programação p/ INTERNET - HTML 31/5/ :34 1 Introdução e Conceitos CSS CSS significa Cascade Style Sheetes (Folha de Estilo.
Design para Web 3 XHTML.
Rhizome. Roteiro Definição Metas Características Arquitetura Tecnologias envolvidas Referências.
Transcrição da apresentação:

Gerenciamento de Dados XML V Escola Regional de Informática Norte Mini-Curso Gerenciamento de Dados XML Ronaldo dos Santos Mello INE/CTC/UFSC ronaldo@inf.ufsc.br

Sobre este mini-curso... Motivação Objetivos 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 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

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) Tecnologia desenvolvida pela W3C W3C: World Wide Web Consortium definição de padrões para a Web consórcio formado por acadêmicos e empresários Padrão para representação e transferência de dados Motivação: Aplicações Web extração, manipulação, integração e publicação de dados através da Web

Protocolos XML Definidos em diversos domínios de aplicação comércio eletrônico CMXL, eBisXML, GCI, ... referências bibliográficas padrão DBLP, padrão SIGMOD, padrão BibTeX, ... sistemas de informação geográfica SVG, GML, ... ...

Uso Extensivo de Protocolos XML... Problemas a serem resolvidos tratamento de dados XML pelos programas de aplicação projeto da estrutura dos dados XML facilidades para armazenamento e manipulação de dados XML ... A tecnologia de Banco de Dados (BD) é útil neste contexto

Tecnologia XML x Tecnologia BD Simliaridades documentos XML mantém coleções de dados tecnologia XML oferece mecanismos para definição e manipulação de dados DTD, XSD, XQuery, XSL, DOM, ... Diferenças dado XML não é um dado convencional tecnologia XML é carente de alguns mecanismos de gerenciamento de dados integridade, segurança, indexação, ...

Tecnologia XML x Tecnologia BD Conclusão tecnologia XML não é equivalente à tecnologia de BD Desafio para a comunidade científica de BD gerenciamento eficiente de dados XML como tratar? extensão de SGBDs existentes? desenvolvimento de SGBDs específicos para XML?

Roteiro Representação de Dados em XML Introdução 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 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 tag (intenção do dado) conteúdo do dado <livro> <titulo>Tecnologia XML</titulo> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</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 HTML HTML XML linguagem de marcação tags predefinidas e com intenção específica formatação da apresentação de dados em browsers XML meta-linguagem de marcação não há tags predefinidas intenção das tags é definida pela aplicação

Sintaxe XML Dados XML são definidos em um documento XML Um documento XML contém cabeçalho dados elementos simples ou compostos atributos de elementos referências a entidades comentários instruções de processamento

Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1“> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</eMail> </autor> <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros>

Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</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 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>js@hotmail.com</eMail> </autor> <capítulo nome=“Introdução”>A &xml foi ... <seção> <nome>Linguagens de Marcação</nome> ... </seção> </capítulo> ... </livro> ... </listaLivros> comentário

Exemplo de Documento XML <?xml version =“1.0” encoding ="ISO-8859-1"> <!–- documento XML sobre livros --> <!DOCTYPE listalivros [ <!ENTITY xml “eXtensible Markup Language”> ... ]> <listaLivros> <livro ISBN=“112”> <título>Tecnologia &xml</título> <autor> <nome>João da Silva</nome> <eMail>js@hotmail.com</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 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>js@hotmail.com</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 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>js@hotmail.com</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 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>js@hotmail.com</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 Requisitos contém um elemento raiz define elementos com tags inicial e final define atributos com conteúdo delimitado por aspas simples (‘) ou aspas duplas (“) Parser XML programa que verifica se um documento XML é bem formado alguns browsers são capazes de realizar tal verificação

Roteiro Tecnologia XML Introdução Representação de Dados em 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 Esquemas Linguagens de consulta APIs DTD e XSD Linguagens de consulta XPath e XQuery APIs DOM, ... Transformação e apresentação de dados XSL . . .

Definição de Esquemas Esquema XML Duas recomendações define restrições para a organização hierárquica dos elementos em um doc XML documento válido documento cuja estrutura está de acordo com um esquema validação é feita por um parser Duas recomendações DTD (Document Type Definition) XSD (XML Schema Definition)

DTD Primeira recomendação da W3C Gramática para definição de hierarquia baseada em seqüências ordenadas e escolhas Definição de elementos compostos, textuais (#PCDATA), vazios (EMPTY), mistos ((#PCDATA | ...)*) ou com conteúdo aberto (ANY) Definição de atributos obrigatórios (#REQUIRED) opcionais (#IMPLIED), fixos (#FIXED), valor default, enumeração, referência (ID, IDREF(S))

DTD - Exemplo <!ELEMENT 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>

XSD Recomendação mais recente Sintaxe XML Extensão da funcionalidade de um DTD definição e especialização de tipos de elementos definição de tipos de dados simples (string, integer, boolean, ...) complexos (list, union) facilidades adicionais para definição de restrições intervalos de valores permitidos, padrões de conteúdo via expressões regulares, ... . . .

XSD - Exemplo <?xml version=“1.0” encoding=“UTF-8”> <xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”> ... <!-– Declaração de Tipos --> <xsd:simpleType name=“Tisbn”> <xsd:restriction base=“xsd:string”> <xsd:pattern value=“[0-9]{2}-[0-9]{3}-[0-9]{4}-[0-9]”/> </xsd:restriction> </xsd:simpeType> <xsd:complexType name=“Tlivro”> <xsd:sequence> <xsd:element name=“titulo” type=“xsd:string”/> <xsd:element name=“autor” type=“Tautor” minOccurs=“1” maxOccurs=“unbounded”/> <xsd:element name=“preço” type=“xsd:float“/> ... </xsd:sequence> <xsd:attribute name=“isbn” type=“Tisbn”/> </xsd:complexType>

XSD – Exemplo (cont.) ... <xsd:complexType name=“TlivroTécnico” base=“Tlivro” derivedBy=“extension”> <xsd:element name=”area" type=“xsd:string" minOccurs=“1” maxOccurs=“1”/> </complexType> <!-– Declaração de Elementos --> <xsd:element name=“listaLivros”> <xsd:complexType> <xsd:element name=“livro” type=“Tlivro”/> minOccurs=“1” maxOccurs=“unbounded”/> </xsd:complexType> </xsd:element> </xsd:schema>

XPath Primeira recomendação para consulta a dados Linguagem para acessar partes de um doc XML sintaxe: expressões de caminho assemelha-se à navegação em diretórios de arquivos exemplo expressão XPath: /livro/título resultado: <resultado> <título>Tecnologia XML</título> <título>Sistema de Banco de Dados</título> . . . </resultado>

XPath - Exemplos / (elemento raiz – todo o doc XML) /livro/*/eMail (‘*’ substitui 1 elem) /livro//seção (qq elemento descendente seção) /livro/capítulo[1] (primeiro capítulo de livros) /livro/capítulo/nome | /livro/capítulo/seção/nome (união) /livro/@ISBN (acesso a um atributo) /livro[título=“XML”] (filtro) /livro[@ISBN=“112”]/título (filtro) /livro//secao[../@nome=“XML e BD”] (filtro)

XQuery Recomendação mais recente Oferece mais recursos que a XPath junções, definição de estruturas de resultado, variáveis de consulta, atributos calculados, funções de agregação, ... Sintaxe básica (expressão “FLWR”) for variável in expressãoXPath [let associação de novas variáveis] [where condição] return estrutura de resultado

XQuery - Exemplos for $liv in /livro (consulta simples) where $liv/autor/nome = “João Silva” return { $liv/@ISBN, $liv/titulo } (consulta simples) for $liv in /livro let $pDesc := $liv/preço - $liv/preço * 0.1 where $liv/categoria = “ficcao” return <FiccaoDesc>{$liv/titulo, $pDesc}</FiccaoDesc> for $liv1 in /livro[@ISBN = “562”] for $liv2 in /livro where $liv2/@ISBN != $liv1/@ISBN and $liv2/autor/nome = $liv1/autor/nome return $liv2/titulo (nova estrutura de resultado) (junção)

DOM (Document Object Model) Modelo de dados para XML modelo hierárquico (árvore) API DOM principais classes de objetos document, node, nodelist e element métodos para consulta e atualização de dados Parsers DOM validam um doc XML geram um objeto document

Objetos do Modelo DOM document node element nodelist . . . listaLivros ISBN livro título preço autor autor “Tecnologia XML” 79.00 element nome mail nome “João da Silva” “js@hotmail.com” “Maria Souza” “jsilva@xxx.com” nodelist

Exemplos de Métodos da API DOM document Método Resultado documentElement Element getElementByTagName(String) NodeList createElement(String) . . . nodeList Método Resultado Length int item(int) Node element Método Resultado tagName String getAttribute(String) setAttribute(String nome, String valor) Attr removeAttribute(String) getElementsByTagName NodeList . . .

DOM – Exemplo (JavaScript) var doc, raiz, livro1, autores, autor2; doc = new ActiveXObject(“Microsoft.XMLDOM”); doc.load(“livros.xml”); if (doc.parseError != 0) ...; else { raiz = doc.documentElement; /* busca o primeiro livro (primeiro nodo filho) */ livro1 = raiz.childNodes.item(0); /* busca a lista de autores do primeiro livro */ autores = livro1.getElementsbyTagName(“autor”); /* busca o segundo autor */ autor2 = autores.item(1); /* escreve o nome do autor – primeiro nodo filho */ document.write(“Nome do segundo autor: “ + autor.childNodes.item(0).data); }

XSL (XML Style sheet Language) Style sheet (folha de estilos) define regras para a apresentação de dados XSL linguagem de definição de folha de estilos para um doc XML formatação de apresentação transformação do conteúdo do documento XML (XSLT) indicação de que dados serão exibidos ou descartados inserção de novos conteúdos conversão XMLHTML, XMLXML, XMLTexto puro, ...

Documento XSL Define uma folha de estilo Sintaxe XML Referenciado em um doc XML 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) <stylesheet xmlns = "http://www.w3.org/XSL/Transform/1.0"> </template match = “/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 Entrada: doc XML Transformação: doc 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> <nome>S. Abiteboul<\nome>... <\livro> ... </listaLivros> <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> ... processar elementos filhos selecionar livros técnicos ordenar por títrulo

Exemplo de Transformação XSL Entrada: doc XML Transformação: doc 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> <nome>S. Abiteboul<\nome>... <\livro> ... </listaLivros> ... <variable name = "separador">,</variable> <template match = "título"> <value-of select = "."> <value-of select = "{$separador}"> </template> <template match = "author/name"> </stylesheet> selecionar o conteúdo de título selecionar o conteúdo do nome do autor

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> <nome>S. Abiteboul<\nome>... <\livro> ... </listaLivros> <html> <head> <title> Livros Técnicos </title> </head> <P> XML Companion,N. Bradley </P> Data on the Web,S. Abiteboul ... </html>

Roteiro XML e Bancos de Dados 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 Dados XML Tecnologia de BD XML & BD manipulados por diversos domínios de aplicação Tecnologia de BD necessária para a manutenção de dados XML persistentes XML & BD XML é um dado não-convencional dado semi-estruturado tecnologia de BD necessita ser estendida para tratar este tipo de dado

Dados Semi-Estruturados Principais características estrutura heterogênea estrutura auto-descritiva estrutura parcial estrutura dinâmica

Estrutura heterogênea Cada ocorrência de dado pode ter um esquema particular <autor> <nome>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>ronaldo@inf.ufsc.br</eMail> </autor>

Estrutura auto-descritiva Cada ocorrência de dado carrega o seu esquema <autor> <nome>Patrícia Vilain</nome> <endereco> <rua>Beira-Mar</rua> <numero>767</numero> <cidade>Fpolis</cidade> </endereco> <fone>3313333</fone> <fone>3313332</fone> </autor>

Estrutura parcial Apenas parte da descrição de um dado pode ser estruturada <capítulo numero = 2 titulo = “Tecnologia XML”> Este capítulo descreve ... XML<ref>(Mel03)</ref>. XML é um padrão ... <secao numero = 1> <titulo>DTD</titulo> Esta seção descreve ... </secao> ... </capítulo>

Estrutura dinâmica Esquema para os dados deve suficientemente flexível para contemplar a heterogeneidade das ocorrências conseqüências esquemas extensos esquemas com suporte a representações alternativas

XML & BD Dados XML não são naturalmente adequados para armazenamento em BDs Dado de BD Dado XML representação homogênea representação heterogênea esquema independente dos dados representação auto-descritiva totalmente estruturado estrutura parcial esquema enxuto esquema extenso esquema fixo esquema dinâmico

Categorias de Docs XML Documento Orientado a Dados (DOD) fracamente semi-estruturado representação de dados mais homogênea e estruturada <endereco> <rua>Beira-Mar</rua><numero>104</numero><complemento>apto 203</complemento> <bairro>centro</bairro><cidade>Fpolis</cidade> <cep>88010-600</cep> </endereco> <rua>Lauro Linhares</rua><numero>761</numero><bairro>trindade</bairro> <cidade>Fpolis</cidade><cep>88040-900</cep>

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> 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>lojao@bla.com.br</eMail><contato>

Categorias de Docs XML Duas alternativas para gerenciamento de dados XML são geralmente adotadas uso de BDs relacionais estendidos para lidar com dados XML mais adequado a DODs uso de BDs XML nativos mais adequado a DODocs

Roteiro 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 Alternativa adequada a docs XML fortemente estruturados Ênfase nos dados propriamente ditos manipulação dos dados delimitados por tags ordem hierárquica dos elementos e componentes textuais não são relevantes Adequado a aplicações que realizam intercâmbio de dados convencionais em XML dados de BD, arquivos, relatórios, docs bem formatados em geral

BDs Relacionais e XML Vantagem Vários SGBDs já lidam com o formato XML uso da tecnologia de BD relacional acesso eficiente sscalabilidade linguagens de consulta declarativas tecnologia utilizada em larga escala Vários SGBDs já lidam com o formato XML Oracle 9i, DB2, Informix, ...

BDs Relacionais e XML Questões básicas a resolver armazenamento de docs XML acesso a dados XML

Armazenamento de Docs XML Soluções adotadas dependem da intenção da aplicação Alternativas uso de aplicações middleware implementação do tratamento de dados XML no próprio BD relacional

Aplicações Middleware Aplicações que realizam o mapeamento de dados relacionais para XML e vice-versa apenas dados relacionais são mantidos no BD protocolo XML de mapeamento é definido previamente entre as aplicações Solução adequada a aplicações que apenas desejam transferir dados relacionais que não manipulam nem definem dados diretamente no formato XML

Aplicações Middleware aplicação A aplicação B tabela BD1.X tabela BD2.X x1 x2 10 15 ... x1 x2 10 15 ... BDR 1 BDR 2 <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 Web

Armazenamento XML no BD Dois enfoques grafo [Florescu99] níveis de granularidade [Graves03]

Enfoque - Grafo Doc XML é armazenado na forma de um grafo orientado rotulado Duas alternativas em geral são adotadas tabela de arestas tabela para cada rótulo 6 livro título . . . listaLivros ISBN nome autor capítulo “XML” “Introdução” ”js@xxx.com" eMail “112” 2 1 3 4 5 “João Silva” 7 8 9 <?xml version =“1.0” encoding = ...> <listaLivros> <livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>js@xxx.com</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ... </livro> ... </listaLivros>

Alternativa 1 – Tabela de Arestas . . . listaLivros origem ordem nome tipo destino valor ... 1 livro ref 2 ISBN int 3 112 título string 4 XML autor 5 capítulo 8 6 João Silva . . . 1 livro . . . 2 ISBN capítulo 8 . . . 3 autor “112” título nome 4 5 nome “XML” eMail 9 “Introdução” 6 7 “João Silva” ”js@xxx.com"

Alternativa 2 – Tabelas p/ Rótulos Autor 6 livro título . . . listaLivros ISBN nome autor capítulo “XML” “Introdução” ”js@xxx.com" eMail “112” 2 1 3 4 5 “João Silva” 7 8 9 origem ordem destino 2 3 5 ... Título origem ordem destino valor 2 4 XML ... NomeAutor Livro origem ordem destino valor 5 1 6 João Silva ... origem ordem destino 1 2 ... . . .

Enfoque - 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 Granularidade Considera três níveis de detalhamento de docs XML para fins de armazenamento granularidade grande granularidade pequena granularidade média

Granularidade Grande Documentos livros.xml --- DocID Nome Conteúdo 1 . . . Documentos --- <?xml version =“1.0” encoding = ...> <listaLivros> <livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>js@xxx.com</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ... </livro> ... </listaLivros> livros.xml

Granularidade Pequena Elementos Atributos elemID tag elemPai ordem doc 1 listaLivros 2 livro 3 título . . . atrID tag elem ordem valor 1 ISBN 2 112 ... Conteúdos contID valor elem 1 XML 3 2 João Silva 5 . . . <?xml version =“1.0” encoding = ...> <listaLivros> <livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>js@xxx.com</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ... </livro> ... </listaLivros> Documentos docID nome raiz 1 livros.xml . . . livros.xml

Granularidade Média Textos Elementos Atributos Conteúdos Documentos elemID tag elemPai ordem doc 1 listaLivros 2 livro 3 título . . . atrID tag elem ordem valor 1 ISBN 2 112 ... Textos contID conteúdo elem ordem 1 2 3 . . . --- <?xml version =“1.0” encoding = ...> <listaLivros> <livro ISBN=“112”> <título>XML</título> <autor> <nome>João Silva</nome> <eMail>js@xxx.com</eMail> </autor> <capítulo nome=“Introdução”> ... </capítulo> ... </livro> ... </listaLivros> Conteúdos contID valor elem . . . Documentos docID nome raiz . ... livros.xml

Enfoque – Níveis de Granularidade Grande Granularidade Média Granularidade Pequena aumenta a complexidade para a reconstrução do doc XML aumenta a complexidade do esquema relacional aumenta o desempenho de consultas declarativas granularidade grande: buscas por palavras-chave X granularidade pequena: consultas a qq tipo de dado do doc; qq item de dado pode ser indexado diminui o volume de armazenamento granularidade grande/média: tags do doc ocupam muito espaço

Projeto do Esquema Relacional Depende das prioridades da aplicação prioriza-se a manutenção e fácil reconstrução do doc XML e/ou consultas hierárquicas tabela de arestas; uso de granularidade grande/média prioriza-se flexibilidade de consultas declarativas tabelas por rótulo; uso de granularidade média/pequena prioriza-se economia no espaço de armazenamento tabela de arestas; granularidade pequena . . .

Projeto do Esquema Relacional Combinações de enfoques podem ser adotadas exemplo: tabelas por rótulo + granularidade média possibilidade de consulta declarativa a cada tipo de elemento ou atributo até o nível de detalhe desejado certa economia de espaço desempenho médio na reconstrução do doc XML

Exemplo 1 – DB2 XML Extender Armazenamento de doc XML granularidade grande coluna XMLCLOB, XMLVarchar ou XMLFile indexação de elementos e atributos enfoque de grafo baseado em tabelas por rótulo mapeamento DTD-Tabelas definido pelo projetista

Exemplo 1 – DB2 XML Extender Exemplo de armazenamento com granularidade grande TABLE Documentos docID VARCHAR(10) NOT NULL PRIMARY KEY nome VARCHAR(40) conteúdo XMLCLOB;

Exemplo 2 – Oracle 9i Armazenamento de doc XML granularidade grande coluna CLOB indexação textual (palavras-chave) granularidade pequena “virtual” mapeamento XSD-Esquema hierárquico OR ou DOM possibilidade de definir quais elementos e atributos serão mapeados coluna especial do tipo xmltype encapsula o esquema hierárquico do doc esquema hierárquico é mantido em tabelas do SGBD que não são manipuladas pelo usuário (esquema “virtual”)

Exemplo 2 – Oracle 9i Exemplo de armazenamento com granularidade pequena “virtual” (II) create table DocsXMLEstruturados( docID varchar(10), nome varchar2(40), conteúdo xmltype ) xmltype column conteúdo xmlschema "http://asktom.oracle.com/xsd/purchaseOrder.xsd"

Acesso a Dados XML Armazenamento dos dados XML é relacional SQL é o padrão para acesso! Esquemas relacionais mais complexos exs.: granularidade pequena ou tabelas por rótulo consultas SQL tradicionais resolvem! Esquemas relacionais mais simples exs.: granularidade grande/média consultas SQL estendidas ao conteúdo do doc Resultados de consultas no formato XML

Consultas ao Conteúdo do Doc Organização física do doc em fragmentos Índices por palavras-chave a fragmentos buscas por palavras-chave linguagens de consulta XML podem ser utilizadas para buscas baseadas em nomes de tags ou de atributos Clustering de fragmentos de um mesmo doc

Consultas ao Conteúdo do Doc Exemplo1 – DB2 XML Extender select docID, nome from Documentos where extract Varchar (conteúdo, “/listaLivros/livro/título”) like “%XML%”

Consultas ao Conteúdo do Doc Exemplo2 – Oracle 9i select extractValue (conteúdo,'/listalivros/livro/título') from DocsXMLEstruturados where existsNode(conteúdo,'/listalivros/ livro/autor/nome') = “João Silva”

Resultados de Consultas em XML Uma estrutura XML pode ser gerada como resultado Um doc XML pode ser reconstruído ou gerado SQL/XML padrão ANSI ISO derivado do SQL define o tratamento de dados XML pela SQL diversas funcionalidades geração de elementos, hierarquias de elementos ou docs XML agrupamento e concatenação de elementos ou hierarquias de elementos transformação de estruturas XML através de XSL

Resultados de Consultas em XML Oracle 9i e DB2 XML Extender ambos adotam parcialmente SQL/XML geração de docs XML Oracle 9i métodos da API DBMS_XMLGEN geram docs XML a partir do resultado de consultas SQL/XML DB2 XML Extender definição de um esquema de mapeamento relacionalXML (DAD) e uso de métodos específicos de geração (dxxGenXMLCLOB(), dxxRetrieveXMLCLOB(), ...) geração de relatórios a partir de consultas SQL com formatação XML

Resultados de Consultas em XML Exemplo 1 – Oracle 9i com SQL/XML SELECT XMLElement(“Editoras", XMLAttributes(e.razao_social AS “nome"), XMLAgg( XMLElement(“Livro", XMLForest (l.título AS “nome”, l.ano AS “ano”, l.nroPags AS “páginas”)))) FROM editoras e INNER JOIN livros l ON e.código = l.editora GROUP BY e.razao_social;

Resultados de Consultas em XML Exemplo 1 – Oracle 9i Resultado <Editora nome=“Makron Books"> <Livro> <nome>Sistema de Banco de Dados</nome> <ano>2000</ano> <páginas>676</páginas> </Livro> <nome>Projeto de Banco de Dados com XML</nome> <Ano>2003</Ano> <Páginas>518</Páginas> </Livro> ... </Editora> <Editora nome=“Campus”> ...

Resultados de Consultas em XML Exemplo2 – DB2 XML Extender <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DAD PUBLIC "dadId" "dad.dtd"> <DAD> <dtdid>defaults.dtd</dtdid> <Xcollection> ... <prolog>?xml version="1.0"?</prolog> ... <element_node name="ClassingRequest"> <RDB_node> <table name="TEST.TAB1" key=“IMBSSN IMBRID IMBBLE"/> <table name="TEST.TAB2" key="IMHSSN IMHRID"/> <condition> TEST.TAB1.IMBSSN=TEST.TAB2.IMBSSN </condition> </RDB_node> ... </DAD> 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 Esquemas de granulação média/pequena atualizações a nível relacional devem preservar docs XML correspondentes sempre válidos Esquemas de granulação grande operações de inclusão, exclusão e sobreposição de docs XML

Roteiro 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 que suporta um modelo lógico para dados XML Adequados a requisitos mínimos definição de elementos, atributos, #PCDATA e ordem Adequados a docs XML fortemente semi-estruturados mapeamento para BD relacional seria complexo! aplicações que lidam apenas com dados no formato XML Intensa atividade de pesquisa e desenvolvimento

BD XML x BD XML Nativo BD XML Nativo BD XML define um modelo de armazenamento físico proprietário para dados XML BD XML pode ser construído sobre um BD com um modelo lógico e físico diferente exemplo: BD relacional (tabelas e registros) apenas uma visão lógica XML é disponibilizada

BD XML - Características Objetivo discussão de características encontradas ou desejadas em BD XML Estudo de Caso SGBD XML Tamino (www.softwareag.com/tamino) “Transaction Architecture for the Management of INternet Objects” servidor de dados XML desenvolvido pela Software AG suporte a SQL (mapeamento para formato relacional)

Coleções Noção lógica de um conjunto de docs XML a decisão por quais docs XML pertencem a uma coleção fica em geral a cargo da aplicação + : flexibilidade quanto ao conteúdo da coleção - : baixo nível de integridade dos dados em alguns casos, um esquema XML fixo pode ser associado a uma coleção Consultas e atualizações podem ser direcionadas a coleções

Coleções - Tamino 1 BD – n coleções – n esquemas – n tipos de documentos tipo de documento: definição de elemento raiz novo doc XML: inserido em uma coleção e válido para algum tipo doc Docs sem esquema mantidos na coleção ino:etc tipos de documentos

Consultas Suporte a pelo menos uma linguagem de consulta para XML uso mais extensivo de XPath uso de alguns dialetos da XQuery (tendência!) Características desejadas para uma linguagem de consulta para XML busca por padrões (texto em linguagem natural) consultas declarativas resultados de consultas doc XML, fragmentos de docs XML ou novas estruturas XML

Consultas - Tamino Suporte a Xpath (chamada X-Query) e XQuery estendidos Geração de docs XML como resultado busca por padrão

Atualizações Capacidades de atualização são variadas possibilidade apenas de substituição de um doc XML completo API DOM para atualização de nodos linguagens de atualização declarativas exemplo: XUpdate (consórcio XML:DB) XML:DB consórcio de empresas responsável pelo desenvolvimento de tecnologias para BDs XML tendência: XQuery como linguagem de atualização

XUpdate Sintaxe XML Exemplo 1: Exemplo 2: 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">Maria@teste.com</xupdate:element> </xupdate:append> <xupdate:remove select="/listalivros/livro[1]"/>

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>ms@new.com</eMail>))

Gerência de Transações Controle convencional de concorrência e recuperação contra falhas Granularidade de bloqueios coleção doc XML (bloqueio usual – baixo nível de concorrência) elementos

Gerência de Transações - Tamino Usuários definem sessões de conexão com o BD várias transações podem ocorrer dentro de uma sessão interrupção da sessão implica rollback de todas as transações pendentes mecanismo de log e backup de dados deadlock transação mais recente tem prioridade Granularidade de bloqueio é sempre o doc XML existe um limite máximo de tempo para manter um doc bloqueado

APIs - Conectividade Interfaces ODBC tradicionais Protocolos HTTP conexão com o BD, execução de consultas e atualizações e exploração de resultados Protocolos HTTP acesso via browsers Web (alguns BDs) Consórcio XML:DB propõe uma API para BDs XML manipulação de BDs e coleções; execução de consultas Xpath e XUpdate; acesso a resultados de consultas; controle de transações

APIs - Tamino Interface principal de acesso é via Web um servidor Tamino deve estar sempre associado a um Web server (domínio Internet) define uma API que encapsula chamadas HTTP criação e manipulação de BDs, coleções e docs acesso: http://<nome_domínio>/tamino/<nome_BD>/[<nome_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

Round-Tripping Capacidade de recuperação integral de um doc XML seqüência textual intacta Funcionalidade importante para DODocs Precisão do round-tripping é diretamente proporcional ao poder de expressão do modelo lógico BDs XML garantem pelo menos round-tripping a nível de elementos, atributos e seus conteúdos

Round-Tripping - Tamino Duas formas de armazenamento campo longo CLOB utilizado para DODocs e docs XML sem esquema índices de texto podem ser definidos permite buscas por padrões 100% round-tripping formato nativo esquema de objetos proprietário utilizado para DODs índices sobre elementos e atributos podem ser definidos garante round-tripping a nível de hierarquia de elementos

Armazenamento de Entidades Externas Fragmentos de docs XML podem ser externos referenciados através de entidades Duas alternativas básicas 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 Comum em docs XML um elemento é sub-elemento de diversos elementos Armazenamento não-redundante de elementos em geral não é considerado difícil identificar unicamente uma instância de elemento aumento da complexidade de reconstrução da hierarquia do doc XML Tamino mantém armazenamento redundante

Integridade Referencial Referências em um doc XML atributos id / idref definição de links internos ou externos Integridade referencial em geral controlada a nível de referências internas ao doc XML

Integridade Semântica RIs a nível de esquemas XML são limitadas ordem hierárquica e restrições de cardinalidade tipo de dado de elementos e atributos valores permitidos Basicamente estas RIs são controladas em BDs XML Carência de um mecanismo de integridade mais robusto similar a BD relacional (SQL/DDL)

Integridade Semântica - Tamino Definição de valores possíveis (fixos, defaults, enumerações, ...) Integridade referencial controlada por “funções de extensão” (para cada caso indicado na trigger) controles de integridade

Projeto de um BD XML Não há uma metodologia consolidada Projeto tradicional de um BD (i) especificação de requisitos; (ii) modelagem conceitual; (iii) modelagem lógica e (iv) modelagem física ou implementação pode ser aplicado a um BD XML adequado a DODs foco nos dados; docs XML fortemente estruturados no caso de DODocs revisão da modelagem física: considerar a existência de informação textual não-estruturada no conteúdo de elementos

Guia para Projeto de BD XML 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 ISBN título nome (0,N) (1,N) Livros Autores eMail (0,N) autoria nome ordem (1,1) (1,N) Capítulos organização referências (0,N)

Modelagem Lógica Grafo orientado Nodos não-terminais (ou não-léxicos) mapeamento de entidades do ER modelam elementos compostos Nodos terminais (ou léxicos) mapeamento de atributos do ER modelam conteúdo de elemento ou de atributo Arestas rotuladas com restrições de cardinalidade mapeamento de relacionamentos ou associações entidade-atributo do ER modelam relacionamentos hierárquicos ou associações elemento-atributo no doc XML

Modelagem Lógica Eleição do nodo não-léxico central entidade central na modelagem conceitual a partir dela uma hierarquia de nodos pode ser definida a partir de seus relacionamentos no ER exemplo: Livro um nodo raiz deve ser definido como pai deste nodo (cardinalidade 1:N) sugestões de nomenclatura conjunto de ocorrências da entidade central (ex.: Livros) contexto do domínio (exs.: Livraria, Biblioteca, ...) Mais de um nodo central pode existir... entidades “independentes” (ex.: livros e funcionários de uma biblioteca) todos serão filhos do nodo raiz (ex.: biblioteca)

Modelagem Lógica - Exemplo Livros nodo raiz (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 Referência Ordem

Modelagem Física Definição de elementos e atributos do esquema nodos não-léxicos  elementos compostos nodos léxicos  elementos #PCDATA ou atributos Determinação da ordem de sub-elementos análise das arestas que partem do nodo não-léxico Modelagem física de um nodo léxico como atributo economia de espaço no doc XML possibilidade de definição de restrições de integridade como elemento recomendado para conteúdos extensos

Modelagem Física - Exemplo <!ELEMENT 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) (1,1) Livro (1,1) ISBN Título (1,N) (1,N) Autor Capítulo (1,1) (1,1) (1,1) (0,N) Nome (0,N) Nome Ordem eMail Referência

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

Roteiro Conclusão 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 Uso amplo de XML requer soluções para gerenciamento de dados XML tema de pesquisa atual na comunidade de BD Duas frentes de pesquisa/desenvolvimento extensão de SGBDs relacionais desenvolvimento de SGBDs XML nativos SGBDs XML nativos irão vingar?...

Conclusão Argumentos a favor de BDs XML nativos dados XML são semi-estruturados overhead de gerenciamento para BDs não-XML aplicações com regras de negócio pouco claras ou muito dinâmicas flexibilidade estrutural de docs XML modela melhor as transações e dados personalizados do negócio custo da extensão de um BD não-XML incorporação da tecnologia XML, mapeamento de/para o formato XML aplicações que lidam apenas com dados XML por quê adquirir um BD não-XML? sub-utilização de recursos; recursos para o gerenciamento de dados XML é limitado ou complicado

Conclusão SGBDs XML nativos irão vingar? não há resposta imediata... provavelmente não serão “A nova geração de SGBDs” BDs relacionais continuam adequados a muitas categorias de aplicações XML tornar-se-á um modelo de dados de uso extensivo para BDs como o modelo relacional?

Referências Tecnologia XML XML & BD SQL/XML XML:DB SGBD XML Tamino 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