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

Slides:



Advertisements
Apresentações semelhantes
Object Query Language - OQL
Advertisements

Introdução Marcus Vinícius Carneiro Teixeira.
Equipe: Gilmar Ferreira Marcos Costa Ricardo Araújo
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
Standard para representar e trocar informação estruturada
SQL Structured Query Language (continuação)
Profa. Rudson apostilas.wikidot.com/hipermidia
Resumo 1.1) Introdução 1.2) Abordagem Convencional de Arquivos
Engenharia de Software
XQuery (1ª parte) Helena Galhardas DEI IST
XSLT e recursividade estrutural
XML (eXtensible Markup Language) W3C - World Wide Web Consortium Documentos TXT estruturados? Por que XML? XML, ou eXtensible Markup Language, é uma linguagem.
XML - Extensible Markup Language
Sistema Gerenciador de Banco de Dados SGBD
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
Vânia Maria Ponte Vidal
Gerenciamento de Dados XML
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Operadores Especiais da SQL
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
SCC Bancos de Dados e Suas Aplicações
Construção de Compiladores
Grafos Universidade Federal de Pernambuco Anjolina Grisi de Oliveira
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
HTML Básico João Araujo.
XML Extended Markup Language
Extensible Stylesheet Language (XSL) Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003.
XML Schema Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa Fumagalli.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando.
Tópicos avançados em internet A
XQuery (2ª parte) Helena Galhardas DEI IST (baseado nos slides de Ioana Manolescu, acessíveis em:
Linguagens de interrogação de dados XML XPath
Design Patterns / Acesso ao banco de dados (java.sql)
Grafos Anjolina Grisi de Oliveira 2007
DI-UFPE1 Sistemas CASE Seleção, Avaliação e Adoção de Ferramentas CASE.
Grafos Universidade Federal de Pernambuco Anjolina Grisi de Oliveira
Grafos Anjolina Grisi de Oliveira 2005
Grafos Universidade Federal de Pernambuco Anjolina Grisi de Oliveira
Desenvolvendo um script SQL
Analise sintática aula-07-analise-sintática.pdf.
Baseado no material do Professor Raul Paradeda
Banco de Dados Aplicado ao Desenvolvimento de Software
Tradução Dirigida por Sintaxe
Introdução a Banco de Dados Aula 04
Universidade do Estado do Rio de Janeiro Instituto de Matemática e Estatística XML: Extensible Markup Language EquipeEquipe: Adriana Cristina de Oliveira.
XML – Extensible Markup Language [Introdução] Renata Pontin de Mattos Fortes SCE-225 Hipermídia 2°Semestre 2003 Material elaborado por Lisandra Cazassa.
©Silberschatz, Korth and Sudarshan (modificado)10.1.1Database System Concepts Capítulo 10: XML XML para transferência de dados Estrutura hierárquica do.
Faculdade Pernambucana - FAPE Setembro/2007
Produção de Sites Unidade 9 – XML Prof.: Henrique Santos.
The Petri Net Markup Language (PNML) Wellington João da Silva Mestrado Ciência da Computação.
©Silberschatz, Korth and Sudarshan (modificado)10.2.1Database System Concepts Capítulo 10: XML XML para transferência de dados Estrutura hierárquica do.
Sumário 1 SQL Embutida 2 Processamento de Consultas
XML Prof. Dr. Fernando Gauthier INE/UFSC. XML XML (Extensible Markup Language) é uma linguagem para marcar documentos que contêm informações estruturadas.
XML: Conceitos, Tecnologias e Aplicações Vânia Maria Ponte Vidal
Unidade 3- Consulta a dados semi-estruturados. Requisitos desejáveis (Maier ’98) Expressividade – linguagem de consulta ao estilo SQL – possibilitar a.
1 Baseado em whitepapers/eclipse-overview.pdf Nelson Lago IME/USP 04/2003 A Plataforma Eclipse.
Consultando Documentos XML com XQUERY Vânia Maria Ponte Vidal
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
SQL SERVER XML Guia Essencial para Programação com XML no SQL Server.
Profº Cláudio Barbosa HTML - Introdução  HTML – Hypertext Markup Language – Linguagem de Marcação de Hipertexto;  Linguagem.
Módulo II Capítulo 1: Orientação a Objetos
UCSal – Bacharelado em Informática
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Prof. João Ricardo Andrêo Programação p/ INTERNET - HTML 31/5/ :34 1 Introdução e Conceitos CSS CSS significa Cascade Style Sheetes (Folha de Estilo.
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Rhizome. Roteiro Definição Metas Características Arquitetura Tecnologias envolvidas Referências.
Transcrição da apresentação:

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

© 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

© 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

© 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

© 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

© 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

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

© 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

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

© 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

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

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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© CIn, UFPE25 XQuery - Estrutura # Parte 1: Namespace e Declarações de Schema namespace xsd = “ # 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

© 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

© 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

© 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

© 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)

© 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

© 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)

© 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()

© 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

© 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

© 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

© 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

© 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:

© 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]}

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

© 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

© 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

© 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

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

© 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

© 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

© 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

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

© CIn, UFPE48 XQuery