56
Gestão de dados XML - Introdução Helena Galhardas DEI IST

Gestão de dados XML - Introdução Helena Galhardas DEI IST

Embed Size (px)

Citation preview

Page 1: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Gestão de dados XML - Introdução

Helena Galhardas

DEI IST

Page 2: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Agenda

Contexto O que é o XML? Herança Dialectos Vantagens de XML Uma vista de olhos sobre a linguagem Tipos em XML Alguns standards importantes Sumário

Page 3: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Revolução da Web

HTML tem sido a linguagem da Web Mesmo se existe uma grande quantidade de

ficheiros .doc, .ps, .pdf, .jpg, .gif, som, vídeo Existem milhares de páginas

Públicas/privadas, estáticas/dinâmicas, vísiveis/escondidas

Suporte natural para a informação distribuída Destinada a seres humanos e, cada vez mais,

para as aplicações

Page 4: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Aplicações sobre dados distribuídos sobre a Web HTML não está adaptado a estas aplicações

B2C, B2B, bibliotecas on-line, ... Não chega aceder a um conjunto de páginas

HTML como nos motores de busca Estas aplicações necessitam de “tipos” para

representar a estrutura dos dados Que modelo de dados então adoptar?

Base de Dados?

Page 5: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Modelo BD relacional vs Modelo dados Web (1) Conhece-se a estrutura das tabelas e a

semântica das colunas; não sobre a Web Estrutura dos dados fixa vs irregular

Falta de dados Estrutura explicita vs implicita Alguns dados podem não ter estrutura

Texto, imagens Alguns dados podem não ser conforme a

estrutura

Page 6: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Modelo BD relacional vs Modelo dados Web (2)

Esquema de dados: pode ser deduzido a posteriori pode ser complexo e grande pode ser ignorado pelas interrogações pode evoluir mto rapidamente.

Page 7: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Junção de dois modelos resulta ....

Gestão de documentos

SGML

HTML

Documentação hipertexto

Gestão de dados

Bases de Dados estruturadas(relacional e OO)

Bases de dadossemi-estruturadas

Page 8: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Dados semi-estruturados

Systèmes Documentaire

SystèmesRelationnels

Dados estruturados

Estrutura mínima

MetadadosHierarquia +

Books Contracts Catalogs Bank accounts

Emails Financial Reports Insurance Policies

Economical Analysis Derivatives Inventory

Political analysis Insurance Claims

Financial News Sports News Resumes

Page 9: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Acesso a dados XML Características das interrogações:

Bases de dados (estilo SQL/OQL) Navegação Palavras chaves (estilo motor de pesquisa Web) e “pattern

matching” (estilo comando “grep”)

Interrogação de dados e estrutura ao mesmo tempo – a estrutura não é totalmente conhecida previamente

Interrogações têem em conta o factor tempo, sobre versões, arquivos, mudanças nos dados

Apoio linguístico: sinónimos, correcções de erros ortográficos

Page 10: Gestão de dados XML - Introdução Helena Galhardas DEI IST

O que é o XML?

Page 11: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML – eXtensible Markup Language

Formato universal para os documentos e dados semi-estruturados na Web

Versão simplificada de SGML Esperanto da Web que vai substituir o HTML Família de standards: XLink, XPath, XSL,

XQuery, SOAP, DOM, ....

Modelo de dados baseado em árvores e uma linguagem de representação baseada em “tags” (etiquetas)

Page 12: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Exemplo (estrutura e semântica entre tags)

ficha

nome trab

ln Ender. email

cidade CPGalhardas

Porto Salvo2790-380

[email protected]

IST Ensinar bem…

missãotipo

ensino

fn

fn

tipo

2790-380

Helena

ElementosAtributos

Dados

<ficha><nome>

<fn>Helena</fn><ln>Galhardas</ln>

</nome><trab tipo=“ensino">

IST<ender><cidade>Porto Salvo</cidade><cp>92310</cp></ender><email>[email protected]</email>

</trab><missão>Ensinar bem</missão></ficha>

Page 13: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Observações (1)

XML fornece uma sintaxe, não fornece semântica apriori

As tags não têm apresentação ou significado definido pela linguagem, mas podem fazer sentido para as aplicações

XML define apenas a estrutura e conteúdo de um documentos, não o seu comportamento nem o seu tratamento

Page 14: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Observações (2)

Desenvolvida e promovida pelo W3C Indústria: Oracle, IBM, Microsoft, CompaQ, Xerox,... Laboratórios de investigação: MIT, INRIA, etc

Sobre a Internet: publicação e troca de informação Simplicidade: produção, leitura, análise sintática,

compreensão Os mesmos dados com diferentes folhas de estilo

disponíveis para diferentes suportes e numerosas aplicações

Page 15: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Múltiplos standards

XML: dados [DTD],Xschema, XSD: tipos

Os documentos devem ser bem formados, mas os tipos não são obrigatórios

XSLT, Xquery: transformação e interrogações XPATH: caminhos XLink: ligações entre documentos DOM: API SOAP: computação distribuída ...

Page 16: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Herança

Page 17: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML como sucessor de HTML HTML: Hypertext Markup Language

Um cjto pré-definido de tags sobretudo para apresentação, definido por uma norma

Semântica das tags: h1,...,h6, título, endereço, ... Dão indicações

estruturais Center, hr, b, i, big, small, ... Não servem senão a

descrever um formato de página

Page 18: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Problemas do HTML

A apresentação do documento está fortemente dependente da interpretação que faz o navegador

É necessário ter várias versões do documento em função do meio

A indexação dos documentos só se pode fazer sobre a parte textual

É um documento e não são dados!

Page 19: Gestão de dados XML - Introdução Helena Galhardas DEI IST

SGML e etiquetagem (tagging) estrutural Era necessário passar de etiquetagem de

apresentação para etiquetagem estrutural XML descendente de SGML utilizam etiquetagem

estrutural SGML: Standardized Generalized Markup

Language Mto utilizada em documentação técnica Documentação tem que ser precisa e não ambígua SGML + vocabulário controlado: ontologia

Meta-linguagens de descrição e de troca de documentos estruturados Meta-linguagem: possibilidade de definir dialectos sobre

domínios especificos

Page 20: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML vs SGML

SGML Mto utilizada na indústria para grandes documentações

técnicas Demasiado complexa para uma utilização pública em geral

ou em domínios de aplicação menos exigentes em termos de precisão

Mtos aspectos complicados e inúteis XML

Utiliza 10% do SGML para representar de forma eficaz a maior parte das necessidades das aplicações

Page 21: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Exemplo de documento

Saint Pétaouchnoque,Le 30 nivose 2004

Editions Duschmol,12 rue SchmurzYT123 Rapis

WindStar 2000Les rosières en bugetAB562 Saint Pétaouchnoque

Tel: 012133564Fax: 879765426

Objet: ben quoi?

Monsieur,

Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v

Veuillez agréer patati patata vachement sincères.

signature

Pied de page

Logotipo

Data

Destinatário

Corpo

Rodapé

Cabeçalho

Objecto

Saudação

Fórmula de simpatia

Assinatura

Page 22: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Representação XML…<data> 30 Nivose 2004 </data>

<saudação> Monsieur, </saudação>

<corpo> <paragrafo> Ici le premier paragraphe </paragrafo> <paragrafo> et là le deuxième </paragrafo></corpo>

</carta>

<carta><cabeçalho> <logotipo loc="lgraph.vml"/> <endereço> &abrev-adresse; </endereço></cabeçalho><destinatário> <nome> Mr Schnock </nome> <endereço> <rua> rue des églantiers </rua> <cidade> Saint Glin </cidade> </endereço></destinatário><objecto> bla bla </objecto>…

Page 23: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Aspectos importantes

A representação desta carta em XML não comporta nenhuma indicação sobre a apresentação do documento Os aspectos gráficos estão ausentes da fonte

XML Estes aspectos serão definidos por uma style

sheet. Uma style sheet é um cjto. de regras para

especificar a realização concreta de um documento sobre um meio em particular

Page 24: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Principio de funcionamento das sshs

Saint Pétaouchnoque,Le 30 nivose 2004

Editions Duschmol,12 rue SchmurzYT123 Rapis

WindStar 2000Les rosières en bugetAB562 Saint Pétaouchnoque

Tel: 012133564Fax: 879765426

Objet: ben quoi?

Monsieur,Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v

Veuillez agréer patati patata vachement sincères.

signature

Pied de page

<carta> <cabeçalho> . . . </cabeçalho>

<corpo> . . . </corpo></carta>

Se carta então …Se cabeçalho então …Se corpo então

Se paragrafo entãoType new roman,size 12, identar primeira linha

Se … então …

Page 25: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Alguns dialectos

Page 26: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Ideia geral

Para uma determinada aplicação, define-se uma sintaxe (um dialecto XML) e define-se a sua semântica.

Exemplos: XHTML, MathML, SVG, XSL, SOAP, WSDL, XML Schema

Page 27: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XHTML = HTML com uma sintaxe XML Reformulação de HTML como sendo uma

aplicação XML Fecha-se o que se abriu

Interesse: sintaxe mais rigorosa Importação de fragmentos de documentos de

outros domínios Possibilidade de utilizar aplicações XML standard

Page 28: Gestão de dados XML - Introdução Helena Galhardas DEI IST

MathXML

Permite a troca e tratamento de expressões matemáticas sobre a Web

Facilita a inserção de expressões matemáticas em docs HTML ou XML

Page 29: Gestão de dados XML - Introdução Helena Galhardas DEI IST

SVG: gráficos 2D

Linguagem de descrição de gráficos 2D Gráficos vectoriais Interactivos e dinâmicos

Animações declarativas Programação ECMAScript

Page 30: Gestão de dados XML - Introdução Helena Galhardas DEI IST

SMIL

Video Sincronização entre imagem e som Sincronização entre várias janelas

Page 31: Gestão de dados XML - Introdução Helena Galhardas DEI IST

SOAP: Simple Object Access Protocol Protocolo de tansferência de dados entre

aplicações distantes Adaptado para ser utilizado debaixo do

protocolo HTTP

Page 32: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Exemplo SOAP

<evp:Envelopexmlns:evp='http://schemas.xmlsoap.org/soap/envelope/'evp:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <evp:Header> <t:Transaction xmlns:t='http://stock.org/registry/updPriceList/'> evp:mustUnderstand='1'> 5 </t:Transaction> </evp:Header> <evp:Body> <m:GetLastTradePrice xmlns:'http://stock.org/registry/updPriceList'> <symbol>DEF</symbol> <company>DEF Corp</company> </m:GetLastTradePrice> </evp:Body></evp:envelop>

Page 33: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Vantagens do XML

Page 34: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Transferência e partilha de informação Uma comunidade de utilizadores (ex: indústria da

biotecnologia) inventa livremente as tags que lhe parecem úteis para representar as informações que pretendem trocar ou partilhar

Exemplo: diferentes maneiras de representar uma data<data> 5 Janvier 2000 </data>

<data>

<a>2000</a><m>01</m><d>05</d>

</data>

<data formato='ISO-8601'> 2000-01-05 </data>

Page 35: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Interoperabilidade das ferramentas de tratamento Ferramentas para dados XML

Parsers, editores, browsers,... Consequências:

Um servidor de documentos XML consegue responder a um conjunto de necessidades de uma organização

Um único editor permite tratar o conjunto de dados de uma organização

Page 36: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Modularidade e reutilização Cada utilizador é livre de definir as suas

próprias estruturas de documento ou utilizar as estruturas já definidas

Cada comunidade pode tb propôr estruturas normalizadas

Ser conforme uma estrutura pré-definida permite a automatização dos tratamentos e assegura a possibilidade de validação.

Page 37: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Acesso a fontes de informação heterógeneas A interrogação e a troca de dados entre

sistemas de informação hetérógeneos é mtas vezes complexa

XML pretende colmatar esse problema Formato de transferência de informação

normalizado independente da plataforma A indexação e interrogação de bases de

dados documentais grandes é baseada em informações estruturais e textuais.

Page 38: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Vista de olhos sobre a linguagem

Page 39: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Exemplos de documentos XML

<?xml version="1.0" standalone="yes" ?> <document>o <saudação> Bom dia! </saudação> </document>

<document> <saudação> Bom dia! </saudação> </document>

<document> </document>

<document/>

<document> Bom dia! </document>

Page 40: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML 1.0: estrutura de um elemento Um elemento tem a forma:

<nome atributo='valor'> conteúdo </nome> <nome> é a tag de abertura </nome> é a tag de fecho [ elementos vazios: <nome> </nome> ou </nome> ] «  »conteúdo é o conteúdo de um elemento!

Composto por uma lista (pode ser vazia) de texto, de outros elementos, de instruções de tratamento, de comentários

atr='valor' representa um cjto, eventualmente vazio, de atributos – pares (nome, valor).

Um elemento só pode ter um atributo com um determinado nome.

Page 41: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Exemplos de elementos

<a></a> </a><a>Olá, bom dia</a><a><b>…</b><b>…</b><a>…</a></a><a><b>…</b>Olá<b>…</b>Bom dia</a>

Conteúdo de um elemento = floresta de elementos ou de texto

Text UNICODE: pode representar qualquer alfabeto

Page 42: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML 1.0: Restrições sobre os nomes O nome de um elemento ou

atributo é uma cadeia não vazia de caracteres, escolhidos entre: Caracteres alfa-numéricos,

sublinhado (undescore), sinal menos, o ponto, caracter dois pontos (:)

Que deve satisfazer as seguintes condições: O primeiros caracter deve ser

alfabético ou sublinhado Os três primeiros caracteres não

devem formar uma cadeia cuja representação em minúsculas é "xml".

Exemplos de nomes de elementos

correctos incorrectos

_toto

Nom_sociedade

xsl:rule

X.11

1998-catalogo

XmlSpec

nome sociedade

Page 43: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML 1.0: Sintaxe dos atributos Um atributo é um par nome='valor' que

caracteriza um elemento Um elemento pode ter vários atributos (separados

por espaço): <relatório língua=‘pt' ult-modif='08/07/99'>

O valor de um atributo é uma cadeia delimitada por aspas (") ou ('). Não deve conter os caracteres ^, % e &.

Um elemento tem um cjto de atributos (a ordem não tem importância)

Page 44: Gestão de dados XML - Introdução Helena Galhardas DEI IST

XML 1.0: Documento bem formado Um documento XML deve representar uma

árvore de elementos Raiz do documento: um único elemento que

contem todos os outros

Page 45: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Tipos do XML

Page 46: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Estrutura de um documento Um documento XML é composto por:

Prólogo, eventualmente vazio

Uma árvore de elementos:

<?xml version="1.0" standalone="yes" ?>

<document> <saudacao> Bom dia! </saudacao> </document>

Page 47: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Prólogo Declaração XML facultativa

Indica ao processador a versão da linguagem usada, a codificação de caracteres usada, a existência de declarações exteriores ao documento

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes">

Declaração de tipo de documento, facultativa: Indica a estrutura particular a que deve obedecer o

documento<!DOCTYPE exemplo SYSTEM "exemplo.dtd" >

Page 48: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Documento bem formado sem tipificação

<?xml version="1.0" standalone="yes" ?>

<document>

<saudacao>

Bom dia!

</saudacao>

</document>

Page 49: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Documentos válidos Um documento é válido se:

Seu prólogo contém uma declaração de tipo de documento

A sua árvore de elementos respeita a estrutura definida pela declaração do tipo

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <!DOCTYPE document [ <!ELEMENT document (saudacao)> <!ELEMENT saudacao (#PCDATA)>]><document> <saudacao> Bom dia! </saudacao> </document>

Page 50: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Alguns standards importantes DOM (Document Object Model): interface de

programação que permite aceder à estrutura e conteúdo dos documentos

XPath: linguagem de expressões de caminho para aceder a partes do documento

XLink (XML Linking Language): XSLT: linguagem de transformação XQuery: linguagem de interrogação (o SQL

do XML)

Page 51: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Resumo

Page 52: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Resumo: o que interessa lembrar Semi-estruturado: casamento entre sistemas

documentais e SGBDs XML

Árvores ordenadas, etiquetadas e com ligações Semântica e tipos estão nas tags Formato de transferência de dados

Page 53: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Resumo: tecnologia

SGBDs: B-tree, hash table, optimização de interrogações

Documentos: Indíce texto, classificação

XML: Autómato de árvores

Page 54: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Resumo: problemas antigos ressurgem Optimização de interrogações distribuídas Integração de dados Procura de dados e serviços Gestão de actualizações de dados

Page 55: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Referências

Serge Abiteboul, Slides of the course: “Données Semistructurées”, Master Recherche Informatique Paris Sud, http://www-rocq.inria.fr/~abitebou/Master-SSD/index.html

Erik Wilde, Slides of the course: “XML Foundations”, UC Berkeley, http://dret.net/lectures/xml-fall07/

XML 1.0 Press Release, http://www.w3.org/Press/1998/XML10-REC

XML 1.0 Spec, http://www.w3.org/TR/REC-xml/ S. Abiteboul, P. Buneman, D. Suciu, “Data on the

Web, From Relations to Semistructured Data and XML”, Morgan Kaufmann, 2000.

Page 56: Gestão de dados XML - Introdução Helena Galhardas DEI IST

Tópicos próximas aulas Introdução ao XML Modelo de dados semi-estruturado XSDL, DTD, XML Schema XSLT XPath XQuery