A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© CIn, UFPE1 Linguagens de consulta em XML – Enfoque XQuery Thiago Alves Costa CIn – UFPE Recife-PE, 3 de julho de 2003.

Apresentações semelhantes


Apresentação em tema: "© CIn, UFPE1 Linguagens de consulta em XML – Enfoque XQuery Thiago Alves Costa CIn – UFPE Recife-PE, 3 de julho de 2003."— Transcrição da apresentação:

1 © CIn, UFPE1 Linguagens de consulta em XML – Enfoque XQuery Thiago Alves Costa CIn – UFPE Recife-PE, 3 de julho de 2003

2 © CIn, UFPE2 Conteúdo XML Visão Geral Vantagens Linguagens de Consulta para XML Requisitos Desejáveis Facilidades Esperadas XQuery Requisitos Funcionais Fundamentos Estrutura Considerações finais

3 © CIn, UFPE3 XML – Visão Geral eXtensible Markup Language Formato padrão para descrever e armazenar dados semi-estruturados Desenvolvido por W3C (WWW Consortium) Linguagem de marcação extensível por permitir definição de novas tags

4 © CIn, UFPE4 XML – Visão Geral HTMLSGML Standard Generalized Markup Language Complexa HyperText Markup Language Não extensível Não descreve dados XML eXtensible Markup Language (W3C ) Extensível Descreve dados Simples Voltada para Web Motivação

5 © CIn, UFPE5 XML – Visão Geral Documentos são separados em 3 partes: Estrutura (XML) Estilo (XSL – eXtensible Style Language) Conteúdo Um documento XML pode ser visto como uma árvore, onde os nós correspondem a elementos e a atributos

6 © CIn, UFPE6 XML – Visão Geral Pessoa NomeIdadeEndereço RuaCEPCidade (Física | Jurídica) Elemento (nó) Atributo Valor Representação em árvore Nó de texto

7 © CIn, UFPE7 XML – Visão Geral Exemplo de conteúdo Thiago Costa 22 Cel. Anízio Rodrigues Coelho Recife Atributo Elemento Nó texto

8 © CIn, UFPE8 XML - Vantagens Extensível Flexível Os documentos XML são auto- descritivos Simples, mas permite estruturas complexas Permite validação (DTD, XML Schema) Padrão aberto

9 © CIn, UFPE9 XML - Vantagens Conteúdo separado da apresentação Documento XML Folha de Estilo XSL + Documento HTML Novo Documento XML Qualquer outro formato

10 © CIn, UFPE10 Linguagens de consulta para XML Expansão do XML além das origens de linguagem de marcação para linguagem base de troca de informações da Web Futuro esperado: fontes de informações diversas utilizem interfaces XML independentes da forma de armazenamento

11 © CIn, UFPE11 Linguagens de consulta para XML Faz-se necessário um conjunto de linguagens de consulta Diversas linguagens foram propostas com diferentes abordagens

12 © CIn, UFPE12 Linguagens de consulta para XML - Abordagens Orientadas para Banco de Dados XML-QL Lorel Yetl Orientadas para documentos XQL Mistas QUILT XQuery

13 © CIn, UFPE13 Linguagens de consulta para XML – Requisitos desejáveis Expressividade Linguagem de consulta ao estilo SQL Uma linguagem não procedural Semântica precisa Muito importante para XML Composição O resultado de uma consulta deve poder ser utilizado dentro de uma outra consulta Consulta ao esquema Visando otimização e a validação Deve usar a sintaxe XML

14 © CIn, UFPE14 Linguagens de consulta para XML – Requisitos desejáveis Suporte a busca por dados como também busca por metadados Necessidade de uma GUI para as buscas Capacidade de criar expressões que permitam navegar no grafo de dados

15 © CIn, UFPE15 Linguagens de consulta para XML – Requisitos desejáveis Expressões de caminho simples sequências de rótulos exemplos root.pessoas root.pessoas.filhos Expressões de caminho generalizadas Permitir exprimir restrições sobre o caminho Utilização de expressões regulares Ex:(pessoa|estudante)._.idade

16 © CIn, UFPE16 Linguagens de consulta para XML – Facilidades esperadas Suporte para operações padrões de consulta. Alguns papéis vistos da perspectiva de banco de dados. Seleção: escolhe-se um documento, um elemento do documento, uma estrutura ou atributos Extração: extrai-se elementos particulares do documento Redução: abstrai-se sub-elementos selecionados de um elemento Reestruturação: constrói-se um novo conjunto de elementos para alimentar dados de um consulta Combinação: combina-se mais de um elemento em um documento

17 © CIn, UFPE17 Linguagens de consulta para XML – Facilidades esperadas Suporte a operadores de inserção, remoção e atualização Suporte a consultas aninhadas Suporte a consulta total no texto (parte da palavra, palavra próxima ou palavras exata) Habilidade de consultar diversos documentos Suporte a visualização de mudanças nos dados em tempo real Direitos de acesso a inserções, remoções e atualizações

18 © CIn, UFPE18 XQuery W3C XML Query Language Objetivo: linguagem de consulta aplicável a qualquer representação de dados em XML (documentos ou banco de dados) Derivada diretamente do Quilt e do XPath

19 © CIn, UFPE19 XQuery Influenciada por outros grupos de pesquisa e linguagens de consulta XQL: Sintaxe baseada em expressões de caminho, adequadas para hierarquias SQL: Cláusulas baseadas em palavras reservadas do tipo SELECT-FROM-WHERE OQL: Noção de uma linguagem funcional, composta de expressões que podem ser encadeadas XML-QL

20 © CIn, UFPE20 XQuery – Requisitos funcionais Suporte a operações de seleção, projeção, agregação e ordenação Preservação e transformação estrutural Preserva a hierarquia relativa e a seqüência de documentos consultados nos resultados da busca Transforma estruturas XML em novas estruturas Combinações e junções De diferentes partes de um documento ou de vários documentos

21 © CIn, UFPE21 XQuery – Requisitos funcionais Resultados de uma consulta XML é também XML e podem ser usados como entrada para uma nova consulta Permite definição de novas funções Expressão em linguagem funcional Extremamente tipado Inclui o XPath 2.0 XQuery  XPath + XSLT + SQL

22 © CIn, UFPE22 XQuery - Fundamentos Tipos aceitos são os mesmo de XML- Schema Uma consulta é representada como uma expressão Expressões operam e resultam seqüências de zero ou mais itens. Itens podem ser: Valores atômicos Nodos

23 © CIn, UFPE23 XQuery - Fundamentos Uma seqüência contendo apenas um item chama-se singleton sequence Permite ilimitadas combinações de expressões com conversões de tipos Não permite atualizações, remoções e inserções É case-sensitive. Palavras-chave são escritas em minúsculo

24 © CIn, UFPE24 XQuery - Estrutura Uma consulta XQuery pode ser dividida em três partes: Namespace e Declarações de Schema * Definição de funções * Expressões de consulta * Opcional

25 © CIn, UFPE25 XQuery - Estrutura # Parte 1: Namespace e Declarações de Schema namespace xsd = “http://www.w3.org/2000/10/XMLSchema” # Parte 2: Definição de funções define function factorial (xsd:integer $n) returns xsd:integer { if ($n eq 0) then 1 else $n * factorial($n - 1) } # Parte 3: Expressões de consulta Factorial of 10 {factorial(10)} Exemplo Query Prolog

26 © CIn, UFPE26 XQuery - Fundamentos Toda a consulta XQuery contém uma ou mais expressões de consulta As expressões de consulta mais comuns são: Expressões FLWR (“flower” : for-let-where-order by-return) Expressões de caminho Construtores de elementos Expressões condicionais Chamadas de funções

27 © CIn, UFPE27 XQuery - Fundamentos TCP/IP Illustrated Addison-Wesley Advanced Programming in the Unix environment Addison-Wesley Data on the Web Morgan Kaufmann Publishers arquivo bib.xml

28 © CIn, UFPE28 XQuery - Expressões FLWR Pronunciado “flower” FLWR significa For-Let-Where-Return, que são as quatro cláusulas que compõe uma expressão deste tipo (Cláusula for | Cláusula let) + Cláusula where? + Cláusula order by? + Cláusula return Expr

29 © CIn, UFPE29 XQuery - Expressões FLWR For  SQL from A cláusula for tem expressões XPath e variáveis que recebem os vários valores retornados pela expressão de caminho Liga variáveis nós - interação for $V1 Exp1 [, $V2 in Exp2 [,... ] ] Obs: associa-se à variável $V1 os valores retornados pela expressão Exp1 (ex: uma expressão de caminho)

30 © CIn, UFPE30 XQuery - Expressões FLWR Let não tem equivalente em SQL Usado para sub-expressões comuns e para agregações Liga variáveis de coleção for $x in Exp : liga $x a cada valor na lista Exp let $x = Exp : liga $x à lista inteira Exp

31 © CIn, UFPE31 XQuery - Expressões FLWR for $b in document("bib.xml")/bib/book let $a = avg(document("bib.xml")/bib/book/price) where $b/price > $a return $b Exemplo: Encontre os livros cujos preços são maiores do que a média de preços: Expressão de caminho Função agregada (média)

32 © CIn, UFPE32 XQuery - Expressões FLWR Where  SQL where Return  SQL select A parte do where impõe condições sobre as variáveis do let / for A parte do return especifica o que deve aparecer no retorno, para cada valor da variável Funções agregadas: avg(), sum(), count(), max(), min()

33 © CIn, UFPE33 XQuery - Expressões FLWR Cláusula let | for Cláusula where Cláusula Return Lista ordenada de tuplas Lista de tuplas “podada” Instância do modelo de dados da busca

34 © CIn, UFPE34 XQuery – Expressões de caminho Sintaxe do XPath Expressões arbitrárias como passos Produz uma seqüência ordenada de nós sem duplicações [/]Expr/.../Expr

35 © CIn, UFPE35 XQuery – Expressões de caminho Resultado de uma expressão de caminho: Conjunto de valores, mais sub-elementos e atributos correpondentes, que correspondem ao caminho dado Exemplos: (1): /bib/book/title devolve: TCP/IP Illustrated Advanced Programming in the Unix environment Data on the Web (2): /bib/book/title/text() devolve os mesmos nomes, mas sem as tags

36 © CIn, UFPE36 XQuery – Expressões de caminho O “/” inicial denota a raiz do documento As expressões de caminho são avaliadas da esquerda para a direita Cada passo é aplicado ao conjunto de instâncias produzidas pelo passo anterior Podem usar-se predicados de seleção (entre []) em qualquer dos passos do caminho

37 © CIn, UFPE37 XQuery – Expressões de caminho Exemplo: /bib/book[price > 400] Devolve os elementos de todos os livros com preço superior a 400 /bib/book[price] devolve os elementos de todos os livros contas que contêm um sub- elemento price Pode-se referir aos atributos, usando Exemplo:

38 © CIn, UFPE38 XQuery - Construtores de elementos Pode-se criar novos elementos com uma consulta Novos elementos podem ser arbitrários ou calculados Exemplo: {document( “ bib.xml ” )/bib/book[price > 1000]}

39 © CIn, UFPE39 XQuery - Expressões condicionais if then else

40 © CIn, UFPE40 XQuery - Expressões condicionais let $price := return if ( $price > 100 ) then Livro tem um preço caro else Livro tem um preço barato Exemplo: verificar se o livro nº 1001 tem um preço caro ou barato

41 © CIn, UFPE41 XQuery - Expressões quantificadoras Quantificadores: every e some for $i in document( “ bib.xml")/bib where every $p in $i/book/price satisfies ($p < 100) return $i Retorna bibliotecas que contenham todos seus livros com preços inferiores a R$ 100,00

42 © CIn, UFPE42 XQuery - Expressões quantificadoras for $i in document( “ bib.xml")/bib where some $p in $i/book/price satisfies ($p < 100) return $i Retorna bibliotecas que contenham pelo menos um livro com preço inferior a R$ 100,00

43 © CIn, UFPE43 XQuery - Ordenação for $i in document( “ bib.xml")/bib/book return $i sortby (price DESCENDING)

44 © CIn, UFPE44 Considerações finais XML é uma linguagem de marcação que tem a principal vantagem de ser extensível No XML o conteúdo é separado da apresentação Espera-se que XML torne-se “linguagem franca” na Internet Há a necessidade de linguagens de consultas sobre documentos XML

45 © CIn, UFPE45 Considerações finais Uma liguagem de consulta XML deve prover: expressividade, semântica precisa, composição, consulta ao esquema e sintaxe XML XQuery é uma linguagem proposta pela W3C derivada diretamente do Quilt e do Xpath XQuery suporta operações de seleção, projeção, agregação, ordenação etc

46 © CIn, UFPE46 Considerações finais Outras linguagens de consulta para XML: Lorel (Lightweight Object Repository Language) YATL XTract XMLQuery XML Query Engine XML-GL Quilt

47 © CIn, UFPE47 Bibliografia W3C - s/XQuery.pdf Apresenta%C3%A7%C3%B5es/SCT% pdf nternet/Query.ppt 03/AW/foils/15-xml.pdf

48 © CIn, UFPE48 XQuery


Carregar ppt "© CIn, UFPE1 Linguagens de consulta em XML – Enfoque XQuery Thiago Alves Costa CIn – UFPE Recife-PE, 3 de julho de 2003."

Apresentações semelhantes


Anúncios Google