2. modelagem de dados semi-estruturados introdução

101
2. Modelagem de Dados semi-estruturados Introdução

Upload: jessica-sabrosa-aquino

Post on 07-Apr-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. Modelagem de Dados semi-estruturados Introdução

2. Modelagem de Dados semi-estruturados

Introdução

Page 2: 2. Modelagem de Dados semi-estruturados Introdução

Dados semi-estruturados ? Dados semi-estruturados: dados

heterogêneos e irregulares, por exemplo XML Banco de dados: originalmente, sistemas

fechados, dedicados a gestão de dados regulares, cuja estrutura pouco evolui no tempo

Novas aplicações requerem mais flexibilidade de representação e estão constantemente evoluindo o esquema

Os modelos relacional e de objetos chegaram a seus limites

Introdução

Page 3: 2. Modelagem de Dados semi-estruturados Introdução

Dados semi-estruturados ? Uma solução: usar um modelo de

grafo para armazenar os dados com características semi-estruturadas

Origens de dados semi-estruturados: integração de fontes heterogêneas fontes de dados sem estrutura

rígida dados biológicos dados da Web

Introdução

Page 4: 2. Modelagem de Dados semi-estruturados Introdução

Dados semi-estruturados ? Evolução:

1995: Projeto TSIMMIS, Modelo OEM na Universidade de Stanford, EUA

1996: Projeto LORE, primeiro SGBD semi-estruturado, Stanford

1999: aceitação de XML pela indústria para representação de dados semi-estruturados

Introdução

Page 5: 2. Modelagem de Dados semi-estruturados Introdução

Uma sintaxe para dados semi-estruturados

Dados semi-estruturados: dados sem esquema ou auto-descritivos

Não há separação entre os dados e o esquema Os dados contêm o esquema

Exemplo {nome:"Ana", tel:"3334567", email:[email protected]} {nome:"Ana", tel:"3334567", tel:"9715432"} Aqui os valores são os dados atômicos

Representação sob forma de grafos

nome

telemail

[email protected]

nome

teltel

33345679715432Ana

Page 6: 2. Modelagem de Dados semi-estruturados Introdução

Uma sintaxe para dados semi-estruturados

Os valores podem ser objetos complexos Exemplo

{pessoa: { nome:"ana", tel:"3334567" } }, {pessoa: { nome:{pré-nome:"Victor",sobrenome:"Bezerra"},

tel:"3218765" } }, {pessoa: { nome:"Sandra" }}

Page 7: 2. Modelagem de Dados semi-estruturados Introdução

Representação de bases relacionais

Um BD relacional é descrito por um esquema r1(a,b,c) r2(c,d) r1 e r2 são os nomes das relações a,b,c,d são os nomes dos atributos No esquema de uma relação, cada atributo é definido

sobre um domínio de valores atômicos.

r1a b ca1 b1 c1

a2 b2 c2

r2c dc2 d2

c3 d3

{r1:{row:{a:a1,b:b1,c:c1}, row:{a:a2,b:b2,c:c2} }, r2:{row:{c:c2,d:d2}, row:{c:c3,d:d3}}

Page 8: 2. Modelagem de Dados semi-estruturados Introdução

Representação de bases relacionais Representação num grafo

Introdução

r1 r2

row row row row

a b ca1 b1 c1

a b ca2 b2 c2

Page 9: 2. Modelagem de Dados semi-estruturados Introdução

Representação de bases de objeto Exemplo: considere uma coleção de três pessoas: Maria

tem dois filhos: José e Joana. Usando o conceito de identidade de objetos, podemos

representar esta coleção da seguinte forma:

{ pessoa:&p1{ nome:"Maria", idade:45, filho:&p2,filho:&p3 } pessoa:&p2{ nome:"José", idade:23, mãe:&p1 } pessoa:&p3{ nome:"Joana", idade:22, mãe:&p1 }}

Page 10: 2. Modelagem de Dados semi-estruturados Introdução

Representação de bases de objeto Representação em grafo

Introdução

&p1

&p3

&p2filho

mãefilho

mãe

nome

idade

nome

idade

nome

idade

Maria

45 Joana

22

José

23

root

pessoapessoa

pessoa

Page 11: 2. Modelagem de Dados semi-estruturados Introdução

2.1. Modelagem de dados semi-estruturados

O modelo OEM

Page 12: 2. Modelagem de Dados semi-estruturados Introdução

O modelo OEM Desenvolvido no projeto TSIMMIS-Stanford

sistema para integração de fontes de dados heterogêneas

Um objeto OEM é uma quádrupla (label,oid,type,value) label: cadeia de caracteres oid: identificador do objeto type: complexo ou atômico(int, string, gif, jpeg …) value:

se o tipo é complexo, conjunto de oid ’s senão um valor atômico

OEM

Page 13: 2. Modelagem de Dados semi-estruturados Introdução

O modelo OEM O modelo OEM é um modelo de

grafo. Os labels estão nos nodos e não nos arcos como visto anteriormente.

Obs.: Várias extensões ao OEM foram propostas e consireram labels nos arcos!

OEM

Page 14: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo de Semistructured Data Model

&o1

&o12 &o24 &o29

&o43&96

&243 &206

&25

“Serge” “Abiteboul”

1997

“Victor” “Vianu” 122 133

paper bookpaper

references

references references

author title year httpauthor

authorauthor

title publisherauthor

authortitle

page

firstnamelastname firstname lastname first

last

Bib

Object Exchange Model (OEM)

complex object

atomic object

Page 15: 2. Modelagem de Dados semi-estruturados Introdução

Exercício: representação de uma base de objetos usando o modelo OEM

esquema ODL da base de objetosclass Estado (extent estados) { attribute string nome; attribute Cidade capital;

relationship set<Cidade> cidades-em inverse Cidade::estado-de }class Cidade (extent cidades) { attribute string nome; relationship Estado estado-de

inverse Estado:cidades-em;}

Page 16: 2. Modelagem de Dados semi-estruturados Introdução

Exercício: representação de uma base de objetos usando o modelo OEM

Representação de dados ODMG{estados: {estado: &e1{nome:  "Pernambuco", capital: &c1,

cidades-em: {Cidade: &c1, Cidade: &c2, …} }, estado: &e2{nome:"Paraíba", capital:&c6, cidades-em: {Cidade: &c5, …} },…},

cidades: {cidade: &c1{nome: "Recife", estado-de: &e1}, cidade: &c2{nome: "Caruaru" , estado-de: &e1}, … }

}

Page 17: 2. Modelagem de Dados semi-estruturados Introdução

Introdução a XML

Page 18: 2. Modelagem de Dados semi-estruturados Introdução

XML ? « Buzz word » eXtensible Markup Language Uma linguagem de descrição de

documentos, definida por um organismo internacional W3C

Um conjunto de tecnologias derivadas: Xlink, Xpointer, Xschema, DOM, SAX, XSL,…

O esperanto da Web

Introdução

Page 19: 2. Modelagem de Dados semi-estruturados Introdução

A revolução da Web… 1989 - Primeiro Web Browser 1993 - Mosaic é difundido, há 50 web sites 1994 - Primeiras ferramentas de busca (WWWW,

webcrawler) 1996 - US$ 1M gastos em compras na Web,

presença em 150 países 1997 - 1 milhão de web sites 1998 - 300.000 web servers 2000 - mais de 1 bilhão de páginas web 2002 – quase 2,5 bilhões de páginas web

indexadas (google)

Introdução

Page 20: 2. Modelagem de Dados semi-estruturados Introdução

A Web hoje… documentos HTML voltada para uso humano gerado automaticamente por

aplicações Fácil de alcançar qualquer Web

page, de qualquer server, em qualquer plataforma

Introdução

Page 21: 2. Modelagem de Dados semi-estruturados Introdução

Limites da Web … aplicações não podem consumir HTML tecnologia de HTML wrapper é instável

(modifica-se a página => modifica-se o wrapper)

tecnologia OO (Corba) requer ambiente controlado

companhias se fundem, formam parcerias; necessitam de interoperabilidade de forma rápida

Introdução

Page 22: 2. Modelagem de Dados semi-estruturados Introdução

Web: Mudança de paradigma … Novo padrão Web XML:

XML gerado por aplicações XML consumido por aplicações

troca de dados entre plataformas: interoperabilidade

na empresa entre empresas

Introdução

Page 23: 2. Modelagem de Dados semi-estruturados Introdução

As novas aplicações Comércio Eletrônico Protocolos "B2B" Bibliotecas digitais sistemas distribuídos …precisamos de um "super HTML"

… estão surgindo ...Introdução

Page 24: 2. Modelagem de Dados semi-estruturados Introdução

XMLUm padrão W3C para complementar HTMLorigens: textos estruturados em SGMLmotivação:

HTML descreve apresentaçãoXML descreve conteúdo

http://www.w3.org/TR/REC-xml (2/98)

Page 25: 2. Modelagem de Dados semi-estruturados Introdução

O Segredo do sucesso de HTML

Simplicidade: Todo mundo pode escrever HTML

HTML é textual: é legível, pode-se usar qualquer editor, ...

HTML é transportável em qualquer plataforma (o browser é a aplicação universal)

HTML conecta pedaços de informação através de hypertext links

Page 26: 2. Modelagem de Dados semi-estruturados Introdução

De HTML para XML

HTML descreve a apresentação

Page 27: 2. Modelagem de Dados semi-estruturados Introdução

HTML

<h1> Bibliography </h1><p> <i> Foundations of Databases </i> Abiteboul, Hull, Vianu <br> Addison Wesley, 1995<p> <i> Data on the Web </i> Abiteoul, Buneman, Suciu <br> Morgan Kaufmann, 1999

Page 28: 2. Modelagem de Dados semi-estruturados Introdução

XML

<bibliography> <book> <title> Foundations… </title> <author> Abiteboul </author> <author> Hull </author> <author> Vianu </author> <publisher> Addison Wesley </publisher> <year> 1995 </year> </book> …

</bibliography>

XML descreve o conteúdo

Page 29: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo Suponha que um site de e-commerce

precisa emitir uma nota fiscal Exemplo Problemas:

Diversos departamentos da empresa usam estes dados de notas fiscais em diferentes plataformas, SO e linguagem de programação

Page 30: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo (cont) Melhor seria usar XML!

<?xml version=“1.0”><NotaFiscal>

<NomeCliente> Ana Silva </NomeCliente><EndCliente> Rua das Margaridas, Maceió, AL </EndCliente<EndEnvio> Rua das Margaridas, Maceió, AL </EndEnvio><Item>

<codigo> 123 </codigo><descricao> Parafuso 8mm </decricao><quantidade> 20 </quantidade><preco> 3,00 </preco>

</Item><Item> … </Item>

</NotaFiscal>

Page 31: 2. Modelagem de Dados semi-estruturados Introdução

Exemploficha

nome trab

ln end email

cidade cepSantos

Natal 52310

[email protected]

IBGE

tipo

gerente

Vera

fn

<ficha>

<nome><fn>Vera</fn><ln>Santos</ln>

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

IBGE<end><cidade>Natal</cidade><cep>52310</cep></end><email>[email protected]</email>

</trab>

</ficha>

ElementosAtributosDados

fntipo

52310

Syntaxe

Page 32: 2. Modelagem de Dados semi-estruturados Introdução

XML: sucessor de HTML HTML Hypertext Markup Language. Um conjunto pré-definido e limitado de

tags, definidas por uma norma (HTML 2.0, 3.2, 4.0).

Estas tags possuem semânticas variadas: h1,..,h6, title, address, … dando as

indicações estruturais center,hr,b,i,big,small,… servem para

descrever a apresentação.

Princípios fundamentais

Page 33: 2. Modelagem de Dados semi-estruturados Introdução

Problemas com HTML Uma vez criado, um documento é ligado

a uma norma particular (ex. HTML 3.2 ) A visualização de um documento é

fortemente dependente da interpretação que o navegador faz.

É necessário dispor de várias versões do documento em função da mídia em que vai ser apresentado

A indexação de documentos só pode ser feita sobre a parte textual.

Princípios fundamentais

Page 34: 2. Modelagem de Dados semi-estruturados Introdução

XML: uma resposta única a necessidades variadas

HTML é usada como a lingagem universal de apresentação de documentos na Web, mas não é uma linguagem adaptada para descrever a estrutura destes documentos

As bases de dados atuais são muito rígidas para manipular dados cuja estrutura é irregular e evolui com o tempo.

Introdução

Page 35: 2. Modelagem de Dados semi-estruturados Introdução

Os segredos de XML Como HTML:

simples, legível, fácil de aprender universal e transportável suportado pela W3C (indústria absorve!)

Mas, Além de HTML flexível : podemos representar qualquer tipo

de informação extensível: pode-se representar informação

de qualquer forma

Page 36: 2. Modelagem de Dados semi-estruturados Introdução

Origem Trabalho cooperativo de um grande

número de empresas e de pesquisadores reunidos no World Wide Web Consortium (W3C) 400 colaboradores da indústria, entre os quais

Oracle, IBM, Compaq, Xerox, Microsoft, etc.. Laboratórios de pesquisa: MIT - USA, INRIA -

França, universidade de Keio - Japão Objetivo: definição de um formalismo para

facilitar a troca de dados na Web

Origem da linguagem XML

Page 37: 2. Modelagem de Dados semi-estruturados Introdução

Mandamentos iniciais: XML deverá ser diretamente utilizável

na Internet XML deverá suportar uma larga

variedade de aplicações XML deverá ser compatível com SGML A criação de páginas XML deverá ser

também o mais simples possível

Origem da linguagem

Page 38: 2. Modelagem de Dados semi-estruturados Introdução

Mandamentos iniciais(2) Os documentos XML deverão ser de

grande legibilidade A criação de documentos deverá ser

rápida A sintaxe deverá ser formal e

concisa A concisão do código tem mínima

importância

Origem da Linguagem

Page 39: 2. Modelagem de Dados semi-estruturados Introdução

Histórico 1993: primeiros trabalhos sobre adaptação

das técnicas SGML à Web (Sperberg)."HTML to the Max: A Manifesto for Adding

SGML Intelligence to the World Wide Web" Junho 1996: criação de um grupo de

trabalho no W3C 10 fev. 1998: publicação da recomendação

para versão 1.0 da linguagem.

Origem da lingagem

Page 40: 2. Modelagem de Dados semi-estruturados Introdução

Razões da W3C para usar XML

Permite a publicação eletrônica internacional independente de mídia

Permite que as empresas definam protocolos de transferências de dados

Facilita o desenvolvimento de SW para Web Disseminação dos dados sem uso formatos

proprietários (caros!) Exibição de informação customizada Gestão de metadados facilitada

Page 41: 2. Modelagem de Dados semi-estruturados Introdução

XML XML significa eXtensible Markup

Language sucessor de HTML herdeiro de SGML

XML é um linguagem de descrição e de troca de

documentos estruturados

Princípios fundamentais

Page 42: 2. Modelagem de Dados semi-estruturados Introdução

XML: herdeiro de SGML SGML Standard Generalized Markup

Language, norma ISO 8879:1986 Muito utilizada na indústria para as grandes

técnicas de documentação. Muito complexa para utilização de «público

em geral» SGML tem demonstrado as vantagens do

formato estrutural para a Gestão Eletrônica de Documentos (GED)

XML usa 10% de SGML para representar de forma eficaz 90% dos documentos

Princípios Fundamentais

Page 43: 2. Modelagem de Dados semi-estruturados Introdução

Noção estrutural Princípio chave de SGML Idéia fundamental:

Considere um documento, é desejável separar completamente

as informações de estrutura das informações de apresentação.

Princípios fundamentais

Page 44: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo de um documento

Campina GRande,20 de maio de 2001

Sr. Edilson Silva,Rua das Flores, 12581293 Caruaru

Bar do CarregoRua das Bodegas, s/n58106-920 C. Grande

Tel: 012133564Fax: 879765426

Objet: Dívida?

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

Aproveito do ensejo para renovar meus protestos de elevada estima e consideração.

assinatura

Rodapé

Logotipo

Data

Destinatário

Corpo

Rodapé

Cabeçalho

Objeto

Saudação

Forma Polida

Assinatura

Page 45: 2. Modelagem de Dados semi-estruturados Introdução

Representação XML

<carta> . . .</carta>

<cabeca> . . .</cabeca><destinatario> <nome> Sr Edilson Silva </nome> <endereco> <rua> rua das Flores </rua> <cidade> Caruaru </cidade> </endereco></destinatario><objeto> bla bla </objeto><data> 20 Maio 2001 </data><saudacao> Prezado Senhor, </saudacao><corpo> . . .</corpo>

<para> Aqui é o primeiro parágrafo</para><para> aqui é o segundo ...</para>

<logotipo loc="logo-graph"/><endereco> &abrev-endereco; </endereco>

Page 46: 2. Modelagem de Dados semi-estruturados Introdução

Pontos importantes A representação desta carta em XML não

tem nenhuma indicação sobre a apresentação.

As numerosas propriedades gráficas ou tipográficas estão ausentes da fonte XML.

Estas propriedades serão definidas por intermédio de uma folha de estilo.

Uma folha de estilo é um conjunto de regras para especificar a realização concreta de um documento sobre uma mídia particular.

Princípios fundamentais

Page 47: 2. Modelagem de Dados semi-estruturados Introdução

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

Objeto: DívidaPrezado Senhot,

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

.

sssinatura

Rodapé

<carta> <cabeca> . . . </cabeca>

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

If carta then ...If cabeca then …If corps then

...If para then

Police new roman,size 12, skip first line

If … then …

Princípio de funcionamento das folhas de estilos

Page 48: 2. Modelagem de Dados semi-estruturados Introdução

Descoberta de XML

Vantagens de XML

Page 49: 2. Modelagem de Dados semi-estruturados Introdução

Extensibilidade e estrutura Em XML, um autor ou uma comunidade de autores inventam livremente

as tags que lhes pareçam úteis para marcar os componentes de um documento.

Exemplo: diversas formas de representar uma data <date> 5 janeiro 2000 </date> <date> <ano> 2000 </ano> <mes> 01 </mes> <dia> 05 </dia> </date> <date format='ISO-8601'> 2000-01-05 </date>

Grande liberdade de escolha das estruturas de dados facilita a troca de dados

comércio eletrônico transações financeiras e comerciais pesquisa e indústria de biotecnologias multimídia

Vantagens de XML

Page 50: 2. Modelagem de Dados semi-estruturados Introdução

Interoperabilidade Todos os dados podem ser vistos como

documentos XML e não mais como arquivos no formato X ou Y.

Consequências: Um servidor de documentos XML é suscetível de

responder a um conjunto de necessidades de uma organização.

Um simples editor de textos pode tratar o conjunto de dados de uma organização.

A interoperabilidade dos utilitários está assegurada.

Vantagens de XML

Page 51: 2. Modelagem de Dados semi-estruturados Introdução

Modularidade e reutilização Cada usuário é livre para definir suas

próprias estruturas de documento O documento pode também estar conforme

as estruturas tipadas, chamadas DTD Cada comunidade pode propor as estruturas

normalizadas A validação a um DTD permite a

automatização no tratamento dos dados e assegura uma possibilidade de controle de integridade

Vantagens de XML

Page 52: 2. Modelagem de Dados semi-estruturados Introdução

Accesso às fontes de informaçãoheterogêneas

A consulta e troca de dados entre as base de dados heterogêneas é complexaXML contribui pare minimizar este problema: formato

de troca normalizado, genérico, independente de plataforma

A indexação e consulta de bases de documentos pode se beneficiar de informações estruturais e textuais.

pesquisa por palavras-chaves: Jorge+Amado retorna todos os documentos contendo as palavras Jorge e Amado, então as páginas pessoais de Pedro Amado cujo filho se chama Jorge.

pesquisa estrutural: pesquisa os documentos cujo autor é Jorge Amado (ie os documentos contendo um elemento autor, ou escrito-por contendo Jorge e Amado)

Vantagens de XML

Page 53: 2. Modelagem de Dados semi-estruturados Introdução

XML na prática Comércio eletrônico: CXML, EBXML Química, Matemática, Geografia: CML, MathML Multimídia: SMIL, MPEG-7, MusicML Desenhos gráficos: SVG Protocolos de comunicação: SOAP, UDDI,

WSDL Transferência de dados: XMI, GML Configuração de software E muito mais!!!!

Page 54: 2. Modelagem de Dados semi-estruturados Introdução

Descoberta de XML

Definição da linguagem XML 1.0

Page 55: 2. Modelagem de Dados semi-estruturados Introdução

Exemplos de documentos XML

<?xml version="1.0" ?> <document> <saudacao> Bom dia! </saudacao> </document>

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

<document> </document> <document/>

<document> Bom dia! </document>

XML 1.0

Page 56: 2. Modelagem de Dados semi-estruturados Introdução

Estrutura de um documento Um documento XML se compõe

de um prólogo cuja presença é facultativa, mas fortemente aconselhada

de uma árvore de elementos, obrigatória

de comentários e de instruções de tratamento, facultativos

<?xml version="1.0" ?>

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

XML 1.0

Page 57: 2. Modelagem de Dados semi-estruturados Introdução

O prólogoContém: Uma declaração XML, facultativa

da forma:<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"> indica ao processador que vai tratar o documento:

a versão da linguagem XML utilizada o código de caracteres utilizado a existência de declarações exteriores ao documento

Uma declaração de tipo de documento, facultativa da forma

<!DOCTYPE exemplo SYSTEM "exemplo.dtd" [ declarações ]> indica a estrutura particular a qual deve estar de acordo um

documento

XML 1.0

Page 58: 2. Modelagem de Dados semi-estruturados Introdução

Estrutura de um DTD Um DTD pode compreender duas

partes uma parte externa

a parte externa é definida fora do documento. É referenciada por uma referência DTD, frequentemente uma URL. Este mecanismo permite assegurar uma reutilização de DTDs frequentemente utilizados.

uma parte interna utilizada para especializar um DTD externo

genérico ou redefinir certos tipos de elementos

XML 1.0

Page 59: 2. Modelagem de Dados semi-estruturados Introdução

Estrutura de um elemento (1) Um elemento é da forma:

<nome attr='valor'> conteúdo </nome> <nome> é a tag de abertura </nome> é a tag de fechamento. A presença é obrigatória, a exceção

particular dos elementos nulos, denotado por <nom> </nom> ou <nom/> conteúdo é o conteúdo de um elemento . Pode ser:

attr='valor' representa um conjunto eventualmente vazio de atributos, ou seja de pares (nome,valor). Os nomes dos atributos são únicos num elemento.

XML 1.0

uma mistura de texto e elementos instruções de tratamento comentários

vazio texto outros elementos

Page 60: 2. Modelagem de Dados semi-estruturados Introdução

Estrutura de um elemento (2) Um nome de elemento é uma sequência não nula de caracteres que pode

conter caracteres alphanuméricos undescore sinal de menos ponto caracter dois-pontos (:) é utilizado, mas com um sentido particular

deve satisfazer as seguintes restrições o primeiro caracter deve ser alfabético ou um undescore os três primeiros caracteres não devem formar uma cadeia cuja

representação em letras minúsculas seja "xml".

XML 1.0

Page 61: 2. Modelagem de Dados semi-estruturados Introdução

Estrutura de um elemento (2)

Exemplos de nomes de elementos

1998-catalogoxmlSpecificationnom sociedade

_totoNome_sociedadexsl:ruleX.11

incorretoscorretos

XML 1.0

Page 62: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo: Banco FirstBank<?xml version="1.0" > <banco> <cliente>

<nomeCliente> Helio </nomeCliente> <ruaCliente> Principal </ruaCliente> <cidadeCliente> Recife </cidadeCliente> <conta>

<numero> A-102 </numero> <agencia> Central </agencia> <saldo> 400 </saldo>

</conta> <conta> … </conta>

</cliente> . . </banco>

Page 63: 2. Modelagem de Dados semi-estruturados Introdução

Sintaxe dos atributos Um atributo é um par nome='valor' que permite

de caracterizar um elemento. Um elemento pode ter vários atributos. Neste caso, os pares nome='valor' serão separados por um espaço.

Exemplos <relatorio lingua= ’pt' ult-modif='08/07/99'> <anuario generator='SQL2XML V2.0'

update='07.08.99'> O nome de um atributo obedece as mesmas

regras que o nome de um elemento O valor de um atributo é uma string entre

aspas(") ou apóstrofos simples ('). Um valor de atributo não deve conter os caracteres ^, % e &.

XML 1.0

Page 64: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo Atributos Banco

<conta tipo=“poupanca” taxa-mensal=“5”> <numero> A-102 </numero> <agencia> Central </agencia> <saldo> 400 </saldo>

</conta>

Page 65: 2. Modelagem de Dados semi-estruturados Introdução

Elementos X Atributos? No contexto de documentos, atributos são parte da

marcação (markup), enquanto conteúdos dos subelementos são parte do conteúdo básico do documento.

No contexto de representação de dados, a diferença não é clara e pode ser confusa:

A mesma informação pode ser representada de duas formas: <conta numero = “A-101”> …. </conta> <conta>

<numero>A-101</numero> … </conta>

Sugestão: use attibutos para identificadores de elementos, e use subelementos para conteúdo

Page 66: 2. Modelagem de Dados semi-estruturados Introdução

Seção CDATAUma seção CDATA instrui o parser a ignorar os caracteres de markup

Exemplo:<![CDATA[ *p = &q; b = (i <= 3); ]]>

Entre o início da seção, <![CDATA[ e o fim da seção, ]]>, todos os caracteres são passados diretamente para a aplicação, sem interpretação.A única string que não pode ocorrer numa seção CDATA é ]]>.

Page 67: 2. Modelagem de Dados semi-estruturados Introdução

Comentários

Comentários iniciam com ”<!--” e terminam com ”-->”. (só não podem conter o string ”--”).

Ex.: <!-- Isto é um comentário -->

Comentários podem ser colocados em qualquer linha do documento.

Page 68: 2. Modelagem de Dados semi-estruturados Introdução

Árvore de elementosUm documento XML contém uma árvore de

elementos, com as seguintes restrições:

Existe num documento um único elemento pai que contém todos os outros. É a raiz do documento.

Todo elemento distinto da raiz é totalmente incluído dentro de seu pai. Assim:

<p> <b> bla bla </p> bla </b> não é uma estrutura XML.

XML 1.0

Page 69: 2. Modelagem de Dados semi-estruturados Introdução

Documentos bem formados

Um documento é dito bem formado se: está de acordo com as regras sintáticas de XML

(tags são aninhadas propriamente e atributos são únicos)

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

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

Ex. de uma documento não bem formado:<document> <saudacao> Bom dia!</document></saudacao>

XML 1.0

Page 70: 2. Modelagem de Dados semi-estruturados Introdução

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

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

sua árvore de elementos respeita a estrutura definida pelo DTD

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

<!DOCTYPE document [ <!ELEMENT document (saudacao)> <!ELEMENT saudacao (#PCDATA)>]><document> <saudacao> Bom dia! </saudacao> </document>

XML 1.0

Page 71: 2. Modelagem de Dados semi-estruturados Introdução

Noção de DTD Um documento válido deve conter uma declaração de tipo de

documento. Esta declaração pode fazer referência, por intermédio de uma URL a um arquivo externo. Este arquivo é chamado de DTD (Definição de Tipo de Documento).

Exemplo

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <!DOCTYPE document SYSTEM "acolhida.dtd"><document> <saudacao> Bom dia! </saudacao> </document>

XML 1.0

Page 72: 2. Modelagem de Dados semi-estruturados Introdução

Noção de DTDXML 1.0

<!–- Arquivo acolhida.dtd. Exemplo de DTD simples --><!–- Autor: --><!–- Data: -->

<!–- a declaração XML não é obrigatória dentro de um DTD --><!–- permite assegurar que os documentos que a referenciam --> <!–- utilizam a mesma versão de XML --> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>

<!–- Definição do elemento raiz --><!ELEMENT document (saudacao)>

<!–- Um elemento saudacao contém texto --><!ELEMENT saudacao (#PCDATA)>

Page 73: 2. Modelagem de Dados semi-estruturados Introdução

Conteúdo de um DTD Um DTD pode conter as declarações

de elementos de listas de atributos de entidades gerais de entidades parametrizadas de notações

como também comentários

XML 1.0

Page 74: 2. Modelagem de Dados semi-estruturados Introdução

Declaração de elemento Uma declaração de elemento é da forma

<!ELEMENT nome modelo> ELEMENT é uma palavra-chave e se escreve

imperativamente em maiúsculas nome é um nome válido de um elemento modelo é o modelo de conteúdo deste elemento.

Distinguimos cinco modelos de conteúdo elementos dados misto livre vazio

XML 1.0: elementos

Page 75: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo de elementos (1)

Sequência de elementos filhos ( .., .., ..) Exemplo

<!ELEMENT capitulo (titulo,intro,secao)> Um elemento capitulo cujo conteúdo, imperativamente e

nesta ordem, contém sub-elementos titulo, intro e secao. Alternativa ( ..| ..| ..)

Exemplo<!ELEMENT capitulo (titulo,intro,(secao|secoes))>

Indicadores de ocorrência *,+,?Um nome de elemento pode ter um indicador de orrorrência:

p* : p pode ocorrer zero, uma ou várias vezes dentro do conteúdo de um instância

p+ : p pode ocorrer uma ou várias vezesp? : p pode ocorrer zero ou uma vez

Page 76: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo de elementos (2) Exemplos

<!ELEMENT capitulo ( titulo, intro?, secao+ ) ><!ELEMENT secao ( titulo-secao, texto-secao ) ><!ELEMENT texto-secao (p|a)* >

Page 77: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo de dados A presença de dados no conteúdo

de um elemento é especifidada pela palavra-chave #PCDATA

Exemplo<!ELEMENT p (#PCDATA) >

Page 78: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo misto Este modelo permite definir os modelos de

conteúdo podendo misturar dados e elementos Forma do modelo

(#PCDATA | nome1 | …|nomen)* Exemplos de declarações

<!ELEMENT p (#PCDATA | negrito | italico | sublinhado)* ><!ELEMENT negrito (#PCDATA|italico|sublinhado)* ><!ELEMENT italico (#PCDATA) ><!ELEMENT sublinhado (#PCDATA) >

Exemplo de uso <p> um parágrafo pode conter texto <negrito> em evidência

</negrito> ou em <italico> itálico </italico></p>

Page 79: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo livre (1) Um elemento pode ser definido como sendo um

conteúdo qualquer, desde que este conteúdo respeite as regras gerais da linguagem XML.

Exemplo<!ELEMENT qualquer ANY>

Para que o conteúdo de um elemento de modelo de conteúdo livre seja válido, é necessário que, se ele contiver elementos, estes sejam declarados num DTD

Page 80: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo livre (2)

Utilidade: este modelo de conteúdo é particularmente útil quando da criação de um DTD complexo

Exemplo<!ELEMENT relatorio ANY><!ELEMENT capitulo ANY><!ELEMENT secao ANY><!ELEMENT titulo-secao ANY><!ELEMENT ilustracao ANY><!ELEMENT bibliografia ANY><!ELEMENT indice ANY><!ELEMENT p ANY><!ELEMENT negrito (#PCDATA)><!ELEMENT titulo (#PCDATA)><!ELEMENT autor (prenome+,nome)><!ELEMENT nome (#PCDATA)><!ELEMENT prenome (#PCDATA)>

Page 81: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo vazio

Um elemento pode ser declarado como obrigatoriamente vazio, usando a palavra-chave EMPTY.

Exemplo de declarações<!ELEMENT p (#PCDATA|bibref)* ><!ELEMENT bibref EMPTY><!ATTLIST bibref ref IDREF #REQUIRED>

Exemplo de utilização<p> para uma definição precisa, veja <bibref ref='REC-xml-19980210'/> </p>

XML 1.0: elements

Page 82: 2. Modelagem de Dados semi-estruturados Introdução

Modelo de conteúdo vazio

Observações: quando o modelo de conteúdo de um

elemento é o modelo vazio, deve obrigatoriamente obedecer a sintaxe <nome/>

não é possível misturar EMPTY a uma outra construção de modelo de conteúdo

Page 83: 2. Modelagem de Dados semi-estruturados Introdução

<?xml version="1.0"?><!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)><!ATTLIST EMAIL LANGUAGE (Western|Greek|Latin|Universal) "Western" ENCRYPTED CDATA #IMPLIED PRIORITY (NORMAL|LOW|HIGH) "NORMAL">

<!ELEMENT TO (#PCDATA)><!ELEMENT FROM (#PCDATA)><!ELEMENT CC (#PCDATA)>

<!ELEMENT BCC (#PCDATA)><!ATTLIST BCC HIDDEN CDATA #FIXED "TRUE">

<!ELEMENT SUBJECT (#PCDATA)><!ELEMENT BODY (#PCDATA)>

<!ENTITY SIGNATURE "José Silva">

XML 1.0

Exemplo de DTD

Page 84: 2. Modelagem de Dados semi-estruturados Introdução

Exercício 1 Com o DTD anterior gere um

documento XML válido

Page 85: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo de um DTD de Banco

<!DOCTYPE banco [<!ELEMENT banco ( ( conta | cliente | deposito)+)><!ELEMENT conta (numero agencia saldo)><! ELEMENT cliente(nomeCliente rua cidade)><! ELEMENT deposito (nomeCliente conta)><! ELEMENT conta (#PCDATA)><! ELEMENT agencia (#PCDATA)><! ELEMENT saldo(#PCDATA)><! ELEMENT nomeCliente (#PCDATA)><! ELEMENT rua(#PCDATA)><! ELEMENT cidade(#PCDATA)>

]>

Page 86: 2. Modelagem de Dados semi-estruturados Introdução

Declaração de atributos Um atributo é um par nome-valor

associado a um elemento uma declaração de atributos num DTD

permite especificar os atributos que poderão ou deverão estar associados às instâncias dos elementos.

Forma da declaração<!ATTLIST nome-elemento nome-atributo tipo-atributo declaração-default>

XML 1.0: atributos

Page 87: 2. Modelagem de Dados semi-estruturados Introdução

Declaração de atributos Exemplos

<!ELEMENT ex1 (#PCDATA)><!ATTLIST ex1 xml:lang NMTOKEN #IMPLIED ><!ATTLIST ex1 target ID #implied ><!ATTLIST ex1 nb (1 | 2 | 3) '1'>

equivalente a<!ATTLIST ex1 xml:lang NMTOKEN #IMPLIED > target ID #implied > nb (1 | 2 | 3) '1'>

XML 1.0: atributos

Page 88: 2. Modelagem de Dados semi-estruturados Introdução

Tipo de atributo

O tipo de atributo pode ser: CDATA: o valor do atributo é uma cadeia de

caracteres ID ou IDREF: permite definir um identificador para um

documento Uma lista de escolhas num conjunto de tokens, ou

identificadores lógicos NMTOKEN ou NMTOKENS: abreviação de Name

Token. Permite ao atributo de ter seu valor de um conjunto de nomes simbólicos.

ENTITY ou ENTITIES: permite que um atributo tome como valor o nome de uma entidade externa não XML

NOTATION: define um atributo de notação

XML 1.0: atributos

Page 89: 2. Modelagem de Dados semi-estruturados Introdução

Declaração default Possui quatro formas

valor por default do atributo #REQUIRED: cada instância deverá ter um

atributo deste nome. Não aceita valor default.

#IMPLIED: presença facultativa. Não aceita valor default.

#FIXED: fixa o valor deste atributo para toda instância.

XML 1.0: atributos

Page 90: 2. Modelagem de Dados semi-estruturados Introdução

Exemplos (1) Atributo CDATA

<!ATTLIST f att1 CDATA #FIXED '<toto>' >O atributo att1 dos elementos de tipo f tem um valorr constante: o string <toto>.

Atributo enumerado Exemplo 1

<!ELEMENT data (#PCDATA) ><!ATTLIST data formato (ANSI | ISO | BR) #REQUIRED><data formato= ’BR'> 24 Maio 1998 </data><data formato='ISO'> 1998-05-24 </data>O atributo formato é obrigatório e deve ter valores do tipo ANSI, ISO ou BR

Exemplo 2<!ELEMENT list (item,item+)><!ELEMENT item (list|#PCDATA)><!ATTLIST list type (ord | num | alpha) 'ord'><list type='alpha'> <item> Maria </item> <item> Pedro </item> <item> José </item></list>

XML 1.0: atributos

Page 91: 2. Modelagem de Dados semi-estruturados Introdução

Exemplos (2) Atributos ID e IDREF

Estes tipos de atributos permitem de criar uma referência a um documento<!–- declaração do element secao --><!–- o atributo de identificação de secao --><!–- target é optional --><!ELEMENT secao (#PCDATA|xref)* ><!ATTLIST secao target ID #IMPLIED >

<!–- declaracao do elemento xref --><!ELEMENT xref EMPTY ><!ATTLIST xref ref IDREF #REQUIRED>

<secao target='X321'> conteúdo de uma seção </secao><secao> outra seção. Faz referência à seção X321 <xref ref='X321'/>

</secao>Obs.: nós não referenciamos de fato uma seção, mas um elemento do

documento que possui um atributo do tipo ID e cujo valor é X321.

XML 1.0: atributos

Page 92: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo DTD Banco com atributos

Trecho de um DTD de Banco com ID e IDREF<!DOCTYPE banco-2[ … ...

<!ELEMENT conta (agencia, saldo)><!ATTLIST conta numero ID # REQUIRED proprietarios IDREFS # REQUIRED><!ELEMENT cliente(nomeCliente, rua, cidade)>

<!ATTLIST cliente clienteID ID # REQUIRED contas IDREFS # REQUIRED>

… ]>

Page 93: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo de XML para DTD Banco com ID e IDREF

<banco-2><conta numero=“A-401” proprietarios=“C100 C102”>

<agencia> Centro </agencia> <saldo> 500 </saldo>

</conta><cliente clienteID=“C100” contas=“A-401”>

<nomeCliente>José Silva </nomeCliente> <rua> Juçaras </rua> <cidade> Maceió</cidade>

</cliente><cliente clienteID=“C102” contas=“A-401 A-402”>

<nomeCliente> Maria Lima </nomeCliente> <rua> Flores </rua> <cidade> Salvador </cidade>

</cliente></banco-2>

Page 94: 2. Modelagem de Dados semi-estruturados Introdução

Entidades internas Entidades pré-definidas

certos caracteres, como < > & ' " não podem ser utilizados dentro do texto de um documento

estes caracteres devem ser representados por seus códigos pré-definidos, chamadas entidades pré-definidas<: &lt; >: &gt; &: &amp;

XML 1.0: entidades

Page 95: 2. Modelagem de Dados semi-estruturados Introdução

Entidades internas Entidades definidas pelo usuário

é possível declarar as entidades dentro do DTD esta declaração tem a forma

<!ENTITY nome-entidade "valor-entidade"> Exemplo

a declaração seguinte<!DOCTYPE toto [ <!ENTITY copyright "&#x00A9; Editions titi">]><toto> &copyright; </toto>

produzirá© Editions titi

observação: 00A9 é o código Unicode do caracter ©

XML 1.0: entidades

Page 96: 2. Modelagem de Dados semi-estruturados Introdução

Entidades externas endereçadas por URL

Exemplo<?xml version='1.0' ?><!DOCTYPE livro [ <!ENTITY capitulo1 SYSTEM "chap1.xml"> <!ENTITY capitulo2 SYSTEM "chap2.xml"> <!ENTITY autor "toto">]><livro> <titulo> XML para idiotas </titulo> <autor> &autor; </autor> <intro> Era uma vez uma Web… </intro> &capitulo1; &capitulo2;</livro>

Restrição: as entidades externas devem ser documentos bem formados

Page 97: 2. Modelagem de Dados semi-estruturados Introdução

Notações e entidades não XML

Exemplo<!DOCTYPE exemplo [ <!NOTATION jpeg SYSTEM "/usr/local/bin/xview"> <!ENTITY foto-ferias SYSTEM "./fotos/foto1.jpg" NDATA jpeg><!ELEMENT exemplo (foto)><!ELEMENT foto EMPTY><!ATTLIST foto img ENTITY #REQUIRED>

<exemplo> <foto img='foto-ferias'/></exemplo>]> A declaração de notação associa ao formato jpeg a aplicação xview

que poderá ser utilizada em extensão da aplicação XML. A declaração da entidade foto-ferias indica que o conteúdo dos

dados está situado no arquivo foto1.jpg A palavra-chave NDATA indica que este arquivo é de um formato não

XML

Page 98: 2. Modelagem de Dados semi-estruturados Introdução

Exemplo<?xml version='1.0' ?><!DOCTYPE db [ <!ELEMENT db (pessoa*)> <!ELEMENT pessoa (nome, idade, email)> <!ELEMENT nome (#PCDATA)><!ELEMENT idade (#PCDATA)><!ELEMENT email (#PCDATA)>

]><db> <pessoa> <nome> Pedro Maia </nome><idade> 33 </idade><email> [email protected] </email>

</pessoa> <pessoa> <nome> Ana Maria </nome><idade> 24 </idade><email> [email protected] </email>

</pessoa> <pessoa> . . . </pessoa></db>

XML 1.0: Exemplos

Page 99: 2. Modelagem de Dados semi-estruturados Introdução

DTDs como esquemas ExemploSeja o esquema r1(a, b, c) e r2 (c, e)<db> <r1> <a> a1 </a> <b> b1 </b> <c> c1 </c> </r1> <r1> <a> a2 </a> <b> b2 </b> <c> c2 </c> </r1> <r2> <c> c1 </c> <d> d1 </d> </r2> <r2> <c> c2 </c> <d> d3 </d> </r2>

</db><!DOCTYPE db[<!ELEMENT (r1*|r2*)><!ELEMENT r1(a,b,c)><!ELEMENT r2(c,d)><!ELEMENT a (#PCDATA)><!ELEMENT b (#PCDATA)><!ELEMENT c (#PCDATA)><!ELEMENT d (#PCDATA)>]>

XML 1.0: Exemplos

Page 100: 2. Modelagem de Dados semi-estruturados Introdução

Exercício 2: Dado o documento XML crie um DTD para o mesmo<?xml version='1.0' ?><!DOCTYPE livro SYSTEM "livro.dtd"><livro> <titulo> XML e Java </titulo><autor> João Silva </autor>

<conteudo><capitulo focus="XML"> Introdução </capitulo> <capitulo focus="XML"> DTD </capitulo><capitulo focus="XML"> Elementos </capitulo><capitulo focus="Java"> SAX </capitulo><capitulo focus="Java"> DOM </capitulo><conteudo><bibliografia> bla bla bla </bibliografia>

<copyright> &ufcgCopyright; </copyright></livro>

XML 1.0: Exemplos

Page 101: 2. Modelagem de Dados semi-estruturados Introdução

Limitações de DTDs como esquemas

DTD impõe ordem Não existe a noção de tipos de dados atômicos (int,

float, etc) Não podemos especificar uma faixa de valores de

domínio IDREF não é relacionado a um tipo. Tipos são associados com tags => elementos com

mesmo nome porém pertencendo a diferentes tipos (nome de pessoa e nome de um curso) não podem usar o mesmo elemento nome. Nesta caso ou redefinimos nomePessoa e nomeCurso ou usamo namespaces com os qualificadores, pessoa:nome e curso:nome