Buscar

02 Representacao de Dados e XML

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

0010010110101111001111110101010101000
1010100010101110111000111010110011011
10010110101111001111110101010101000
10100010101110111000111010110011011
10010010110101111001111110101010101
010100010101110111000111010110011
110111100111111010101010100010111
10101110111000111010110011011111 
1011101001010101110000101010111
0110101111001111110101010101000
010101110111000111010110011011
010110101111001111110101010101
100010101110111000111010110011
11100111111010101010100010111
10110101111001111110101010101
Representação de 
Dados e XML
Bancos de Dados
Luiz Celso Gomes-Jr
gomesjr@dainf.ct.utfpr.edu.br
 
Representando Dados
● Antes da invenção do computador, a grande 
maioria dos dados eram representados em 
papel
● No papel, texto, fguras, tabelas, etc. são 
representados com tinta e cabe ao leitor 
identifcar os diferentes elementos e 
entender o conteúdo
● No computador, precisamos saber de 
antemão com que tipo de dados estamos 
lidando para representá-los adequadamente
 
Processando Dados
● Quanto mais “organizados” (estruturados) os 
dados, mas simples é o processamento
● Exemplo de dados estruturados: listas, 
tabelas, matrizes
● Exemplo de dados não-estruturados: 
texto, imagens, sons
● Exemplo de dados semiestruturados: 
árvores, grafos
 
Processando Dados
 
Processando Dados
Information
Retrieval, NLP
Databases
 
Principais modelos de 
dados
● Modelo Relacional (tabelas - foco do 
curso)
● Modelo hierárquico (árvores - foco desta 
aula)
● Modelo de grafos (veremos no fm do 
curso)
 
Importância dos 
modelos
● Permitem a separação entre 
representação dos dados e a 
implementação física das estruturas
● Exemplo de ED1: um programador pode 
implementar um programa que usa uma 
lista encadeada e no futuro mudar a 
implementação das bibliotecas para uma 
lista duplamente encadeada sem precisar 
alterar o programa principal
 
Importância dos 
modelos
item = “chocolate”;
adicionaItem(item);
...
item = “chocolate”;
adicionaItem(item);
...
Modelo: Lista (biblioteca ou API)
Ap
lic
aç
ão
Im
pl
em
en
ta
çã
o 
da
s E
st
ru
tu
ra
s
bala cuca pudim
início
bala cuca pudim
início
Lista Encadeada Lista duplamente Encadeada
 
Importância dos 
modelos
● Em grandes empresas, os mecanismos de 
armazenamento mudam frequentemente 
para atender às demandas e isto não 
pode afetar as aplicações
● Exemplos: atualização de versão do 
SGBD, mudança de fornecedor de SGBD, 
upgrade de SGBD centralizado para SGBD 
distribuído
 
Modelo Hierárquico
● Usado para representar diversos tipos de 
dados
● Exemplos: Documentos, Categorias de 
Produtos, Modelos Orientados a Objeto, 
Disciplinas (tópicos, conteúdo, tarefas)
● Relativamente flexíveel e processamento 
relativamente efciente (no meio do 
caminho entre tabelas e grafos)
● XML é o principal padrão para 
representação e compartilhamento de dados
XML – eXtensible Markup 
Language
XML
▪Lançada em 1996 como uma versão 
simplifcada da SGML (Standard 
Generalized Markup Language), para ser 
utilizada na Web.
Metalinguagem
▪Tal como SGML, XML é uma 
metalinguagem (linguagem para criar 
linguagens).
▪O HTML original foi escrito em SGML. 
HTML5 é baseado em XML.
S G M L
H T M L M a t h M L …S V G
X M L
M e t a l i n g u a g e m
L i n g u a g e m
Linguagem de Marcação
▪Utiliza marcadores para agregar 
informações adicionais a documentos.
▪Tomemos como exemplo a seguinte 
frase:
Horácio escreveu o livro Vida dos Dinossauros.
▪Desejamos agregar informações que 
identifquem quem é o autor e qual a 
ação realizada.
Linguagem de Marcação
▪Os marcadores se diferenciam do 
conteúdo pelos símbolos “<” e “>” 
(seguem o mesmo princípio de HTML):
<autor>Horácio</autor> <ação>escreveu o livro Vida dos Dinossauros</ação>
• Os marcadores delimitam unidades estruturais 
denominadas elementos.
Estrutura Hierárquica
▪Marcações podem ser agrupadas 
hierarquicamente.
▪A interpretação de cada marcador está 
subordinada a seu contexto.
<sentença>
 <autor>Horácio</autor>
 <ação>escreveu o
 <publicação>
 <tipo>livro</tipo>
 <título>Vida dos Dinossauros</título>
 </publicação>
 </ação>
</sentença> 
Modelo de Dados XML
s e n t e n ç a
H o r á c i o
l i v r o
E s c r e v e u o
V i d a d o s D i n o s s a u r o s
t í t u l ot i p o
p u b l i c a ç ã o
a ç ã oa u t o r
Elementos e Atributos
▪Atributos:
<autor cpf=”487.526.548-74” nascimento=”12/5/1960”> 
 Horácio 
</autor>
• Elementos vazios:
<esgotado/>
Validação de Documentos
▪Documento bem formado:
▫atende às regras de construção XML
▪Documento válido:
▫bem formado
▫atende a um esquema
Esquema de dados
▪Defne as regras que os dados devem 
seguir para serem considerados válidos
▪Exemplo: Esquema “Livro” demanda que 
todas as instâncias tenham um título, 
uma editora, e pelo menos um autor
▪Existem vários padrões baseados em 
esquemas XML, como HTML5, Open 
Document (usado pelo Open Ofce), SVG 
(gráfcos vetoriais), GML (dados 
geográfcos), MathML (fórmulas 
matemáticas)...
Esquema de dados
▪Em XML existem duas formas de se 
especifcar esquemas para os 
documentos:
▫DTD (mais antigo)
▫XML Schema (mais moderno)
DTD
▪O documento XML pode se basear em 
uma gramática defnida através de uma 
DTD (Document Type Defnition)
▪DTDs são mais simples de defnir, mas 
têm gramática própria e não conseguem 
representar restrições entre elementos
<!ELEMENT documento (topico+)> 
<!ELEMENT topico (titulo, subtopico*)> 
<!ELEMENT titulo (#PCDATA)> 
<!ELEMENT subtopico (titulo, #PCDATA)>
XML Schema
▪Padrão para defnição de esquemas XML 
escritos em XML
▪Mais poderoso
▪Padrão moderno
Tipos Simples
<xs:element name="business">
 <xs:simpleType>
 <xs:restriction base="xs:string">
 <xs:maxLength value="30"/>
 </xs:restriction>
 </xs:simpleType>
</xs:element>
(Wilde, 2006)
(Wilde, 2006)
Tipo Composto
<xs:schema>
 <xs:element name="billingAddress" type="addressType"/>
 <xs:element name="shippingAddress" type="addressType"/>
 <xs:complexType name="addressType">
 <xs:sequence>
 <xs:element name="name" type="xs:string"/>
 <xs:element name="street" type="xs:string"/>
 <xs:element name="city" type="xs:string"/>
 <xs:element name="state" type="xs:string" minOccurs="0"/>
 <xs:element name="zip" type="xs:decimal"/>
 </xs:sequence>
 <xs:attribute name="country" type="xs:NMTOKEN"/>
 </xs:complexType>
</xs:schema>
(Wilde, 2006)
Identifcando recursos - URI
▪XML foi desenvolvido para representar 
dados na Internet, logo, é preciso 
garantir que um identifcador usado não 
entre em confito com outros defnidos 
por outras pessoas
▪A identifcação de um recurso é feita 
através de um URI – Uniform Resource 
Identifer.
▪URI = URL ou URN
URI
▪URL (Uniform Resource Locator): identifca 
recursos por meio de sua localização física na 
Internet.
Ex.: http://www.paleo.org
ftp://ftp.unicamp.br
mailto:horacio@paleo.org
▪URN (Uniform Resource Names): identifcador 
é relacionado indiretamente com sua 
localização física na rede (exige um resolver).
Ex.: urn:ogc:def:uom:celsius
urn:mpegra:mpeg21:dii:iswc:T-041.220.506-1
Consultando dados em XML
▪As duas principais linguagens de consulta 
a dados XML são XPath e XQuery
▪XPath
▫Especifca expressões na forma de caminhos 
que atendem padrões para alcançar nós 
específcos (elementos ou atributos)
▪XQuery
▫Queries para XML (usam XPath). Permite a 
especifcação de critérios elaborados para 
obtenção de dados.
Processando dados em XML
▪Paratarefas mais simples, onde uma 
linguagem de consulta não é necessária, 
usamos Parsers para manipular XML
▪Um parser XML lê um documento XML e 
disponibiliza seu conteúdo de forma 
conveniente para o programador
▪Em XML existem duas estratégias para 
parsing: SAX e DOM
XML Parsing
Diversas tecnologias têm sido criadas 
para o processamento de documentos 
XML.
Dentre estas tecnologias duas se 
destacaram e se tornaram referência:
– SAX – Simple API for XML
– DOM – Document Object Model
SAX
▪API baseada em eventos.
▪Útil quando se precisa processar 
documentos muito grandes 
(especialmente os que não cabem na 
memória)
Eventos de conteúdo
public class SAXBasico extends
 org.xml.sax.helpers.DefaultHandler
{
 public void startDocument() ...
 public void startElement(...) ...
 public void characters (...) ...
 public void endElement(...) ...
 public void endDocument() ...
}
Eventos de conteúdo
Método Acionado quando o parser encontra
startDocument início do documento
startElement início de um elemento
characters conteúdo texto
endElement final de um elemento
endDocument final do documento
DOM
▪DOM defne uma API para documentos 
XML e HTML.
▪Ele acrescenta ao padrão destas 
linguagens toda a funcionalidade e 
fexibilidade que um programa precisa 
para acessar e manipular documentos.
▪Representa o conteúdo do documento 
em uma árvore na memória e oferece 
ao programados métodos para navegar 
e obter dados
Processo
Documento XML
<aulaml>
 ...
 ...
</aulaml>
Parser
DOM Aplicação
DOM - Estudo de Caso
<FICHARIO>
 <individuo nome="Asdrubal da Silva">
 <idade>15</idade> 
 <genero>masculino</genero> 
 </individuo>
 <individuo nome="Quincas Borba">
 <idade>33</idade> 
 <genero>masculino</genero> 
 </individuo>
 <individuo nome="Doriana Margarina">
 <idade>42</idade> 
 <genero>feminino</genero> 
 </individuo>
</FICHARIO> 
Document Object Model
fichario
individuo
idade
15
GENERO
masculino
Asdrubal... individuo
idade
33
GENERO
masculino
Quincas... individuo
idade
42
GENERO
feminino
Doriana...
Interfaces
▪Node – esta interface representa 
genericamente qualquer nó da 
árvore.
▪Element – acrescenta propriedades 
e métodos específcos de um nó do 
tipo elemento.
▪Document – interface do nó raiz da 
árvore que representa o documento 
completo.
▪NodeList – representa uma lista de 
nós. Pode representar, por exemplo, a 
lista de flhos de um nó.
Navegar pelo Documento
getFirstChild()
getNextSibling()
getFirstChild() getFirstChild()
individuo
idade
15
GENERO
masculino
individuo
getNextSibling()
 
JSON
● Modelo de representação de dados 
semiestruturados 
● Baseado em JavaScript com foco em 
aplicações Web
● Mais simples e mais leve que XML (mas 
também mais limitado)
● Não defne linguagens (em construção)
● XML Nutella :) 
 
JSON x XML
{"employees":[
 { "firstName":"John", "lastName":"Doe" },
 { "firstName":"Anna", "lastName":"Smith" },
 { "firstName":"Peter", "lastName":"Jones" }
]}
<employees>
 <employee>
 <firstName>John</firstName> 
<lastName>Doe</lastName>
 </employee>
 <employee>
 <firstName>Anna</firstName> 
<lastName>Smith</lastName>
 </employee>
 <employee>
 <firstName>Peter</firstName> 
<lastName>Jones</lastName>
 </employee>
</employees>
 
Exercícios
● Dê exemplos de dados para cada tipo de 
modelo (relacional, hierárquico, grafos)
● Quais as vantagens de se usar um modelo 
padronizado como o XML?
 
Referências e Agradecimentos
● Diversos slides baseados no curso de BD do Prof. 
André Santanchè (UNICAMP)
– Site: http://www.ic.unicamp.br/~santanche
– Canal Youtube: 
https://www.youtube.com/santanche
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47

Continue navegando