36
Banco de Dados Web & XML Banco de Dados Web & XML Trabalho solicitado pelo Professor Eduardo Teles docente na disciplina Tópicos Avançados em Bancos de Dados. Daniel Mota Catu-BA, Junho/2011 www.danielmota.com.br

Daniel Mota - Banco de dados web e XML

Embed Size (px)

Citation preview

Page 1: Daniel Mota - Banco de dados web e XML

Banco de Dados Web & XMLBanco de Dados Web & XML

Trabalho solicitado pelo Professor Eduardo Teles docente na disciplina

Tópicos Avançados em Bancos de Dados.

Daniel MotaCatu-BA, Junho/2011 www.danielmota.com.br

Page 2: Daniel Mota - Banco de dados web e XML

O que será abordado:O que será abordado:

● Web & Internet● Tipos de Estruturas dos Dados● Banco de Dados & Web● O que é XML?

● Algumas regras do XML● Estrutura de um XML● XML versus HTML

● XML Namespace● Principais tipos da XML● Formas de processamento da XML

● Xpath● Xlink e Xpointer● XQuery

● Porque usar XML?● SGBDs nativos em XML

www.danielmota.com.br

Page 3: Daniel Mota - Banco de dados web e XML

Web & Internet:Web & Internet:

“A web é um banco de dados gigantesco, não desenvolvido seguindo os princípios convencionais de banco de dados ; a Internet é igualmente uma rede gigantesca sobre a qual esse banco de dados é distribuido.“ [Nick Tindall]

www.danielmota.com.br

Page 4: Daniel Mota - Banco de dados web e XML

Tipos de estruturas de dados:Tipos de estruturas de dados:

Dados Estruturados : São dados de um arquivo ou de um banco de dados relacional, em que sua estrutura é conhecida a priori.

Create table empregado(matricula int,nome varchar(30),salario float,depto int

);

www.danielmota.com.br

Page 5: Daniel Mota - Banco de dados web e XML

Tipos de estruturas de dados:Tipos de estruturas de dados:

Dados semi-estruturados: são dados heterogêneos e irregulares, auto-descritivos. Em Banco de dados, originalmente são sistemas fechados, dedicados a gestão de dados regulares, cuja estrutura pouco evolui no tempo. Por exemplo, documentos que possuem valores para alguns atributos : autor, titulo, assunto e palavras-chave.

www.danielmota.com.br

Page 6: Daniel Mota - Banco de dados web e XML

Tipos de estruturas de dados:Tipos de estruturas de dados:

Dados Não-Estruturados: São dados em que não há nenhuma estrutura de dados defininda. São normalmente armazenados em arquivos ou em colunas do tipo BLOB em SGBDs. Exemplos : um texto em PDF, uma imagem em JPG ou um arquivo de Video/Audio.

Um BLOB é um objeto binário grande que pode guardar um montante variado de dados. Há quatro tipos BLOB que diferem apenas no tamanho máximo de valores que eles podem guardar.

www.danielmota.com.br

Page 7: Daniel Mota - Banco de dados web e XML

Bancos de dados & Web:Bancos de dados & Web:

Muitas aplicações de Internet fornecem interfaces Web para acesso a informações armazenadas em um ou mais bancos de dados. Para esse tipo de interação é comum utilizar arquiteturas cliente-servidor two-tier (duas camadas) e three-tier (três camadas).

www.danielmota.com.br

Page 8: Daniel Mota - Banco de dados web e XML

Bancos de dados & Web:Bancos de dados & Web:

O método comum de especificar o conteúdo e de formatar as páginas Web é pelo uso de documentos de hyperlink. Existem várias linguagens para escrever esses documentos, a mais comum é o HTML. Porém, ele não é adequado para especificar dados estruturados que são extraídos de bancos de dados.

www.danielmota.com.br

Page 9: Daniel Mota - Banco de dados web e XML

Bancos de dados & Web:Bancos de dados & Web:

O código fonte de documentos HTML é muito difícil de ser interpretado automaticamente por programas de computador, pois eles não incluem informação de esquema sobre o tipo de dados nos documentos.

A medida que as aplicações de Internet têm se tornado automatizadas, torna-se crucial ser capaz de trocar documentos Web entre vários sites e de interpretar seus conteúdos automaticamente.

www.danielmota.com.br

Page 10: Daniel Mota - Banco de dados web e XML

Definição de XML:Definição de XML:

“A XML é um conjunto de regras para definir tags semânticas que quebrem um documento em partes e identifiquem estas diferentes partes do documento. É uma meta-linguagem de marcação que define as sintaxes pelas quais outras linguagens de marcação específicas a um domínio podem ser escritas” [HAROLD, 2004, p. 3].

www.danielmota.com.br

Page 11: Daniel Mota - Banco de dados web e XML

O que é XML?O que é XML?

eXtensible Markup Language: É um padrão criado pela W3C.

É uma maneira de representar informação, onde: ● A linguagem não é específica● Não define vocabulário de comando● Não define gramática● Apenas regras mínimas de estrutura

www.danielmota.com.br

Page 12: Daniel Mota - Banco de dados web e XML

XML bem formados:XML bem formados:

Para que um documento XML seja bem formado e possa ser manipulado como uma árvore faz-se necessário que os documentos obedeçam algumas regras de construção:

● Ter um, e apenas um, elemento raiz● Valores dos atributos estarem entre aspas ou apóstrofes● Atributos não se repetirem● Todos os elementos terem etiqueta de fechamento● Elementos estarem corretamente aninhados

www.danielmota.com.br

Page 13: Daniel Mota - Banco de dados web e XML

Estrutura do XML:Estrutura do XML:

Dois conceitos principais de estruturação são usados para construir um documento XML: elementos e atributos.

www.danielmota.com.br

Page 14: Daniel Mota - Banco de dados web e XML

Exemplos de regras:Exemplos de regras:

Todos os elementos têm marcadores de abertura e de fechamento:

Não pode: <nome>Severino<nome> Deve ser: <nome>Severino</nome>

Elementos não devem se sobrepor:Não pode: <area>11<numero>9999 4321</area></numero>Dever ser: <area>11</area><numero>9999 4321</numero>

Atributos têm que ter valores entre aspas:Não pode: <codigo=33>Deve ser: <codigo=”33”>

Nomes de elementos são case-sensitive:Não pode: <area>11</AREA>Deve ser: <area>11</area>

ou <AREA>11</AREA>

www.danielmota.com.br

Page 15: Daniel Mota - Banco de dados web e XML

XML vs. HTML:XML vs. HTML:

www.danielmota.com.br

Page 16: Daniel Mota - Banco de dados web e XML

XML Namespaces:XML Namespaces:

Estabelecem um contexto para elementos e atributos:

É formalmente declarado através de um identificador (um string, geralmente uma URI) através de atributo reservado do XML: o xmlns

Podem ser associados a um prefixo para qualificar elementos e atributos

Quando o prefixo não é usado, estabelece um namespace default adotado pelo elemento onde é declarado e seus elementos filho

www.danielmota.com.br

Page 17: Daniel Mota - Banco de dados web e XML

Exemplo de Namespaces:Exemplo de Namespaces:

Nos dois casos abaixo, os elementos <tempo> significam coisas diferentes, mas não há conflito porque pertencem a namespaces diferentes (um deles não tem namespace).

www.danielmota.com.br

Page 18: Daniel Mota - Banco de dados web e XML

Tipos principais da XML:Tipos principais da XML:

Existem 3 tipos principais de XML:

● Data-Centric: XML centrado em dados ● Document-Centric: XML centrado em documentos ● Hibrid: XML que mescla dados e documentos

www.danielmota.com.br

Page 19: Daniel Mota - Banco de dados web e XML

Tipos principais de XML:Tipos principais de XML:

Documentos XML centrados em dados: Esses documentos possuem muitos itens de dados pequenos que seguem uma estrutura específica e podendo ser extraídos a partir de um banco de dados estruturado. Eles são formatados como documentos XML com o propósito de trocá-los ou exibi-los pela Web.

www.danielmota.com.br

Page 20: Daniel Mota - Banco de dados web e XML

Tipos principais da XML:Tipos principais da XML:

Documentos XML centrados em documentos: Estes são documentos com grandes quantidades de texto, como artigos de jornais ou livros. Existem poucos, ou nenhum, elementos de dados estruturados nesses documentos.

www.danielmota.com.br

Page 21: Daniel Mota - Banco de dados web e XML

Tipos principais da XML:Tipos principais da XML:

Documentos XML híbridos: Esses documentos podem possuir partes que contêm dados estruturados e outras partes que são predominantemente textuais ou não estruturadas.

www.danielmota.com.br

Page 22: Daniel Mota - Banco de dados web e XML

Formas de processamento XML:Formas de processamento XML:

Via APIs de programação:● SAX – Simple API for XML: leitura seqüencial, ideal

para extração de dados.● DOM – Document Object Model: leitura completa,

ideal para manipulação (inserção, reordenação, alteração, remoção de nós).

www.danielmota.com.br

Page 23: Daniel Mota - Banco de dados web e XML

Formas de processamento XML:Formas de processamento XML:

Via linguagens de processamento:● XSLT, XPath, XLink, XPointer e XQuery: extração,

transformação e localização de dados.● XSL-FO, XHTML, SVG: apresentação de dados.

www.danielmota.com.br

Page 24: Daniel Mota - Banco de dados web e XML

XPath:XPath:

Linguagem usada para navegar e localizar informações numa árvore XML

● Uma expressão XPath é um caminho na árvore que resulta em um valor (número, texto, booleano), objeto (elemento, atributo, nó de texto) ou conjunto de objetos.

Expressões XPath são usadas dentro de atributos XMLUsadas em XSLT, XLink, XQuery e Xpointer

www.danielmota.com.br

Page 25: Daniel Mota - Banco de dados web e XML

XPath – Modelo de Dados:XPath – Modelo de Dados:

XPath trata um documento XML como uma árvore de nós. Os nós usados pelo XPath podem ser de sete tipos:

● Raiz (só há um desses)● Elemento● Atributo● Texto● Namespace● Instrução de processamento● Comentário

Cada nó, ao ser processado, produz um valorque tem um tipo.

www.danielmota.com.br

Page 26: Daniel Mota - Banco de dados web e XML

XPath – Valores e expressões:XPath – Valores e expressões:

O valor do nó pode conter um dos quatro* tipos de conteúdo a seguir: ● uma estrutura de outros nós (node-set)● um escalar numérico (number)● um string (string)● um valor booleano (boolean)

Os tipos de expressão suportadas por XPath são relacionados aos tipos de dados:

● operações sobre nós da árvore-fonte (caminhos)● operações sobre texto● operações booleanas● operações numéricas

* A abordagem de XPath está restrita a XPath 1.0;

www.danielmota.com.br

Page 27: Daniel Mota - Banco de dados web e XML

XPath – Caminhos (XPath – Caminhos (location pathslocation paths):):

Um caminho é uma sequência de passos de navegação na árvore-fonte (documento-fonte)

● Todo caminho resulta em um nó (node) ou conjunto de nós (node-set)

O resultado de um caminho produz um contexto● O nó de contexto: expressões seguintes relativas ao contexto● Se for um node-set, o processamento de cada nó do conjunto

também introduz um contexto: o nó corrente● Todo contexto tem um tamanho e uma posição

Caminhos podem ser absolutos ou relativos● absolutos: começam no nó raiz● relativos: começam no nó do contexto

www.danielmota.com.br

Page 28: Daniel Mota - Banco de dados web e XML

XPath – Caminhos (XPath – Caminhos (location pathslocation paths):):

Exemplos:/raiz/elemento/filho/neto : contexto é node-set 'neto', que tem tamanho 2

../../primo[3]: caminho relativo a 'neto', nó corrente é elemento <primo> na posição 3 (node-set tem tamanho 4)

www.danielmota.com.br

Page 29: Daniel Mota - Banco de dados web e XML

XLink, XPointer:XLink, XPointer:

XLink: especificação W3C que define vínculos (de diversos tipos) entre documentos XML:

● Funcionalidade mínima é igual ao <a href=”arquivo/link”> do HTML● É uma coleção de atributos, com namespace próprio, que podem ser

usados em elementos de qualquer linguagem XML.

XPointer: aponta para partes de documentos XML:● É o identificador no destino, que é acessível pelo Xlink:

xlink:href="#ident"● Caminho resultante de expressão Xpath acima:

xpointer(/contato/codigo)

www.danielmota.com.br

Page 30: Daniel Mota - Banco de dados web e XML

XQuery:XQuery:

XQuery: linguagem para pesquisar documentos XML através de queries com sintaxe inspirada em SQL.

FOR $b IN document ("usuario_33.xml")/contatoWHERE nome="Severino Severovitch"RETURN $b

www.danielmota.com.br

Page 31: Daniel Mota - Banco de dados web e XML

XQuery:XQuery:

<resultado>{ for

$fpx in document (“RelaçãoRemessas.xml”)//TuplaRemessa,

$fx in documento (“RelaçãoFornecedores.xml”)//TuplaFornecedor[FNUM = $fpx/FNUM],

$px in document (“RelaçãoPecas.xml”)//TuplaPeça[PNUM = $fpx/PNUM]

Order by FNOME, PNOMEReturn

<TuplaResultado>{$fx/FNOME, $px/PNOME, $fpx/QDE}

</TuplaResultado> }<resultado>

www.danielmota.com.br

Page 32: Daniel Mota - Banco de dados web e XML

Por que usar XML paraPor que usar XML paracompartilhar dados?compartilhar dados?

● Porque é um padrão aberto:Facilidade para converter para outros formatos.

● Porque é texto:Fácil de ler, fácil de processar, menos incompatibilidades.

● Porque promove a separação entre estrutura, conteúdo e apresentação:

Facilita geração de dados para visualização dinâmica.Evita repetição de informação / simplifica manutenção.

● Porque permite semântica na WebElementos HTML não carregam significado,apenas dicas de formatação.

www.danielmota.com.br

Page 33: Daniel Mota - Banco de dados web e XML

SGBDs nativos em XML:SGBDs nativos em XML:

Tamino XML Server da empresa Software AG, é um banco de dados com suporte nativo a XML. Ele é uma plataforma de armazenamento de informações XML sem a necessidade de conversão para outro formato, como tabelas relacionais. Integra dados relacionais e orientado a objetos em uma estrutura XML, podendo acessar banco de dados existentes remotos que são usados por aplicativos e pode armazenar esses dados como objetos XML. O sistema XML utilizado no Tamino é multitarefa, permitindo um grande volume de dados e requisições de vários usuários simultâneos.

www.danielmota.com.br

Page 34: Daniel Mota - Banco de dados web e XML

SGBDs nativos em XML:SGBDs nativos em XML:

Lore desenvolvido primeiramente na universidade de Stanford é um banco de dados desenvolvido para armazenar dados semi-estruturados, foi modificado recentemente para um banco de dados XML. Inclui uma linguagem para "query" (Lorel), múltiplas técnicas de indexação, otimização "cost-based query", suporta multi-usuário, log e restauração, também pode importar dados externos.

Uma característica interessante do Lore é o "DataGuide" que é um sumario estrutural de todos os caminhos do BD, os dados são adicionados, então essa estrutura é sumarizada, esse tipo de informação é útil em um "query".

www.danielmota.com.br

Page 35: Daniel Mota - Banco de dados web e XML

Banco de Dados Web & XMLBanco de Dados Web & XML

Obrigado pela atenção.Obrigado pela atenção.

Perguntas? Perguntas?

Daniel MotaCatu-BA, Junho/2011 www.danielmota.com.br

Page 36: Daniel Mota - Banco de dados web e XML

Referências Bibliográficas:Referências Bibliográficas:

BAPTISTA, Cláudio. XML – eXtensible Markup Language. Disponível em <www.dsc.ufcg.edu.br/~baptista/cursos/BDInternet/XMLFULL.ppt>. Acesso em 09/06/2011.

ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Bancos de Dados. 4ª Edição. Person Education, 2006.

HAROLD, Elliotte. XML 1.1 - The Bible. Estados Unidos: Wiley Publishing, 2004.

Manual de Referência do MySQL – Versão Traduzida. Disponível em < http://xoops.net.br/docs/mysql/manual/reference.php#blob>. Acesso em 10/06/2011.

ROCHA, Helder da. Introdução ao XML. Disponível em <http://www.argonavis.com.br/cursos/xml/x100/x100_1_Introducao.pdf>. Acesso em 10/05/2011.

___________. XPath. Disponível em <http://www.argonavis.com.br/cursos/xml/x100/x100_8_XPath.pdf>.Acesso em 10/05/2011.

Banco de Dados Web & XMLBanco de Dados Web & XML www.danielmota.com.br