Você está na página 1de 35

XML e Banco de Dados

Prof. Daniela Barreiro Claro

DCC/IM/UFBA

Banco de Dados na Web

Armazenamento de dados na Web


HTML muito utilizada para formatar e
estruturar documentos na Web

No adequada para especificar dados


estruturados de BD

XML a linguagem mais adequada para


estruturar dados na Web
Mas onde a XML est localizada na Web?
Prof. Daniela Barreiro Claro

Arquitetura da Web
Camada Cliente

Browser

Camada Negcio

HTTP
HTTP

HTML, JavaScript

Camada de Dados
XML

XML
Servidor Web
JDBC
JSP, PHP, Servlets,
XML, ...

XML
XML

Banco de Dados
Prof. Daniela Barreiro Claro

O documento XML

XML (eXtensible Markup Language

1a linguagem de marcao

GML (Generalized Markup Language) em 1969

Em 1974, a SGML foi criada


HTML um subconjunto da SGML

Representar dados que inclui uma marcao


Marcao no formato de TAGS

Destinado hiperlinks
Mistura o contedo, a apresentao e o processo
Prof. Daniela Barreiro Claro

O documento XML

XML

Tb um subconjunto (muitos dizem que uma


configurao)
Estimula separar

Contedo: como tipos de elementos abstratos


Apresentao: objetos de formatao
Processos: como folhas de estilos

XML isola o contedo da apresentao


Projetada para ser distribuda pela Web
Prof. Daniela Barreiro Claro

O documento XML

Estrutura

Construo fundamental de um documento XML


ELEMENTO identificado por uma tag de incio e tag de fim
<artigos> xxxx </artigos>

XML x HTML

Elemento pode conter outros elementos


Elemento complexos so construdos hierarquicamente a
partir de outros elementos
Elementos simples contm valores de dados
Em XML os nomes das tags so definidas de acordo com o
significado do elemento
Em vez de descrever como no HTML como o texto ser
exibido
Prof. Daniela Barreiro Claro

O documento XML

Contm somente um elemento raiz


Exemplo no formato de um grafo
publicacao

artigo

artigo

titulo

Dependable Web
Services

autor

Daniela e
Macdo

cidade

tipo

Rio de
Janeiro

Full Paper

Prof. Daniela Barreiro Claro

O documento XML

Alm dos elementos, a XML especifica os


ATRIBUTOS

Um atributo de um elemento s pode


aparecer uma vez em determinada tag.

Acrescentar o atributo relevante=sim/nao


para artigo informando se um dos artigos
mais relevantes das suas publicaes
Prof. Daniela Barreiro Claro

O documento XML

Vantagens

A presena das tags torna a mensagem autodocumentvel

Um esquema no precisa ser consultado para se


entender o significado do texto

Chamamos de dados semi-estruturados ou schemeless

Formato do documento no rgido

Se uma tag for acrescentada, o destinatrio pode


ignorar a nova tag
Prof. Daniela Barreiro Claro

O documento XML

Vantagens

Permite estruturas aninhadas


<ordemCompra...
<comprador...
<item...

Ferramentas disponveis

10

Isso corresponde a
mltiplas tabelas em um
esquema relacional

Grande variedade para auxiliar o processamento da


XML

Pessoas exibem as informaes da maneira que


desejarem

HTML, PDF, DOC etc.

Prof. Daniela Barreiro Claro

Tipos de Dados de um XML

Documento XML deve ser bem formado e


vlido.
XML bem formado se

11

comear com uma declarao XML indicando a


verso do documento
seguir as diretrizes do modelo de rvore:um nico
elemento raiz
Cada elemento precisa incluir um par de tags

Um documento XML bem formado


Prof. Daniela Barreiro Claro
sintaticamente correto

Tipos de Dados de um XML

XML vlido se

DTD ou XML Schema so documentos


opcionais de um XML
Principal objetivo

12

ele bem formado


elementos seguem a estrutura especificada em
um esquema: DTD ou XML Schema

Restringir as informaes e os tipos de


informaes presentes no documento
Prof. Daniela Barreiro Claro

DTD Document Type Definition

DTD no restringe os tipos no sentido dos


tipos bsicos

13

Exemplo inteiro e string

Restringe o surgimento de subelementos e


atributos dentro de um elemento
A ausncia de uma declarao de um
elemento equivalente a declar-lo como
ANY

Qualquer elemento pode ocorrer como


Prof. Daniela Barreiro Claro
subelemento do elemento.

DTD Document Type Definition

Os atributos tambm so especificados no


DTD
O tipo CDATA especifica que o atributo
contm dados de caracter
Ja o atributo do tipo ID oferece um
identificador exclusivo para o elemento

14

No pode ocorrer em nenhum outro elemento no


mesmo documento
Prof. Daniela Barreiro Claro

DTD Document Type Definition

Embora bastante til para especificar


estrutura de rvore, tem vrias limitaes

Seria vantajoso validar um XML utilizando a


prpria sintaxe XML

15

No se pode restringir elementos positivos e


negativos
Possui sua prpria sintaxe especial
Requer processadores especializados

Os mesmos processadores da XML poderiam ser


utilizado para as regras de sintaxe.
Prof. Daniela Barreiro Claro

XML Schema

16

um padro para especificar a estrutura de


documentos XML
Utiliza as mesmas sintaxes de documentos
XML
Define uma srie de tipos internos como
string, integer, decimal, date, boolean.
Permite tipos definidos por usurios
As definies de esquema em XML Schema
so especificadas utilizando a sintaxe XML

Para diferenciar necessrio utilizar


namespaces
Prof. Daniela Barreiro Claro

XML Schema

Chaves e referncias de chaves

SELECTOR

uma expresso de caminho que define o


escopo para a restrio

FIELD

17

Correspondem s definies de chaves primrias


e chaves estrangeiras

Determina os elementos ou atributos que formam


a chave
Prof. Daniela Barreiro Claro

XML Schema

18

Vantagens

Permite que os valores dos elementos sejam


restritos a tipos especficos: numricos, string

Permite criar tipos definidos pelo usurio

Restries de exclusividade e chave estrangeira

Permite criar valores mnimos e mximos

J temos o documento e os tipos, mas como


consult-lo?
Prof. Daniela Barreiro Claro

Consultas XML

Ferramentas de consultas so essenciais

19

Principalmente quando so grandes XML

Sada de uma relao uma relao

Sada de um XML um XML

Vrias linguagens

XPATH expresses de caminho

XQUERY padro para consultar dados XML


Prof. Daniela Barreiro Claro

Consultas XML - XPath

Enderea partes de um documento por


Retorna todas as tags
expresses de caminho
uma sequncia de etapas
/publicacao/artigo/titulo

dos ttulos dos artigos


separadado
por
/
LaSiD

Atributos pode ser acessados usando o


simbolo @
/publicacao/artigo/@relevante

20

Prof. Daniela Barreiro Claro

Consultas XML - XPath

Predicados de seleo
Localizados em qualquer etapa de um caminho
Entre colchetes
/publicacao/artigo/[ano>2006]

Contador (count)
Funo interna doc(nome)

21

doc(publicacao.xml)/artigo/titulo

Prof. Daniela Barreiro Claro

Consultas XML - XQuery

a linguagem de consulta padro da W3C

Consultas Xquery so modeladas em 5


sees

22

Deriva de uma linguagem chamada QUILT

FOR= corresponde ao From; variveis de XPATH


LET=atribui resultados XPATH s variveis
WHERE=testa as tuplas unidas
ORDER BY=ordena
RETURN=constri o resultado

FLWOR

Prof. Daniela Barreiro Claro

Consultas XML - XQuery

Juno (JOIN)

23

So especificadas da mesma maneira que na


SQL
Supondo que tivssemos outro XML para as
conferncias com todas as informaes da
conferncia
E um artigo tivesse as informaes da
conferncia onde ele foi publicado.

Prof. Daniela Barreiro Claro

Consultas XML - XQuery

Consultas Aninhadas

Embora no possua GROUP BY

24

Podem ser aninhadas na clusula RETURN

funes agregadas como SUM() e COUNT()


podem ser escritas no caminho ou no RETURN

ORDER BY
FOR $c in /publicacao/artigo
ORDER BY $c/ano
RETURN <cliente> {$c/*} </cliente>

Prof. Daniela Barreiro Claro

Folha de Estilo e Transformaes

XML puro...
Folha de estilo

25

Formatao do XML

Normalmente fora do XML, separando a


formatao do contedo
CSS HTML (exemplo de CSS)
XSL XML
Prof. Daniela Barreiro Claro

Folha de Estilo e Transformaes

XSL inclui um mecanismo de transformao

26

XSLT (XSL Transformation)


Transforma um documento XML em outro XML
ou HTML

As transformaes podem atuar como uma


linguagem de consulta
Transformaes so expressas como
Template permite a
templates
seleo de ns em uma
Template simples de XSL rvore XML por uma

expresso XPATH

Parte de MATCH e parte SELECT

Prof. Daniela Barreiro Claro

Manipulao do XML

Ferramentas para manipular XML


Manipulao via programao

27

Duas APIs que esto disponveis em vrias


linguagens

DOM Document Object Model


SAX Simple API for XML

Prof. Daniela Barreiro Claro

Manipulao do XML

DOM

Trata o contedo XML como uma rvore


Cada elemento representado como um n
(DOMNODE)
API Java oferece interfaces Node, Element,
Attribute
Srie de funes para atualizar documentos

28

Acrescentando e excluindo filhos, definindo valores de


um n, etc
PROBLEMA: coloca toda a rvore na memria.
Prof. Daniela Barreiro Claro

Manipulao do XML

SAX

29

Eventos de anlise
correspondem ao
reconhecimento de
parte do documento

um modelo de eventos
Corresponde s funes especificadas pelo
usurio associadas a eventos de anlise
Exige mais esforo de programao que DOM
Se baseia em eventos e no precisa colocar a
estrutura de rvore na memria.
Pode ser mais eficiente na extrao de
documentos grandes
PROBLEMA: Anlise baseada em eventos pode
precisar de estruturas temporrias adicionais

Prof. Daniela Barreiro Claro

Armazenamento de Dados XML

30

Documento XML pronto...

Armazenamento no-relacional ou relacional

Armazenamento no-relacional

Arquivo simples no Servidor Web

Banco de Dados XML Nativo

dbXML, eXcelon e TAMINO

Precisam de um Servidor Web

Prof. Daniela Barreiro Claro

Armazenamento de Dados XML

Armazenamento relacional (BD bastante


difundido)

Uma STRING

Para documentos pequenos


Para documentos grandes, transformar cada elemento
em uma relao

ELEMENTO_ARTIGO

Representao de rvore

Modelados como uma rvore e armazenados como um


par de relaes
no(id,tipo,rotulo,valor)
filho(id_filho,id_pai)

31

Cada elemento desmembrado em muitas partes


Prof. Daniela Barreiro Claro

Armazenamento de Dados XML

Armazenamento Relacional

Publicando e Fragmentando Dados XML

Armazenamento nativo do XML em BDR

32

Um doc XML fragmentado para o formato das


relaes e depois convertido e publicado como XML
BD como o Oracle j permite que este processo seja
automtico

Como string ou representaes binrias, sem converter


para o formato relacional
Tipo de dado XML
Tipos CLOB e BLOB podem ser utilizados
Prof. Daniela Barreiro Claro

Banco de Dados Comerciais e XML

Oracle

XML como um tipo de dado nativo

IBM DB2

Rico em funes XML


Tem suporte para o SQL/XML

33

Armazenamento de um XML
Converte automaticamente resultado de uma consulta SQL
para XML

Extenso ao padro SQL

XML como grandes objetos ou como atributos


fragmentados em tabelas

SQL Server

Tambm possui o tipo de dados XML nativo


Prof. Daniela Barreiro Claro

Aplicaes da XML

34

Vrias so as aplicaes da XML

Estruturas complexas como arquivos de


configurao

Formato padronizado para troca de dados

EDI XML para a troca de informaes inter-empresas

Utlizao em aplicaes cientficas, ex. Produtos


qumicos

Produtos qumicos similares com frmulas distintas no


so contemplados pela XML

Ontologias
Prof. Daniela Barreiro Claro

Aplicaes da XML

Web services

Aplicaes trocam dados entre organizaes


Sites podem ser preenchidos...
...mas aplicaes precisam enviar e receber
estes dados
SOAP e WSDL utilizam XML

XML essencial
35

Prof. Daniela Barreiro Claro

Você também pode gostar