Daniel Mota - Banco de dados web e XML

Preview:

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

XML vs. HTML:XML vs. HTML:

www.danielmota.com.br

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Recommended