Um comparativo entre SQL e linguagens de consulta a dados XML



Documentos relacionados
Comandos de Manipulação

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Tarefa Orientada 16 Vistas

NOME SEXO CPF NASCIMENTO SALARIO

Banco de Dados. Prof. Antonio

Tarefa Orientada 13 Agrupamento e sumário de dados

Banco de Dados I 2007 Módulo III: Linguagens de Consulta. (Aula 9) Clodis Boscarioli

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

LINGUAGEM DE BANCO DE DADOS

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Noções de. Microsoft SQL Server. Microsoft SQL Server

Plano de Trabalho Docente Ensino Técnico

Banco de Dados I. Introdução. Fabricio Breve

Projeto e Implementação

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Structured Query Language (SQL)

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tarefa Orientada 14 Subconsultas

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Oficina. Praça das Três Caixas d Água Porto Velho - RO

Persistência e Banco de Dados em Jogos Digitais

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Orientação a Objetos

Prof.: Clayton Maciel Costa

Microsoft Access XP Módulo Um

Treinamento sobre SQL

Prof. Marcelo Machado Cunha

Disciplina: Unidade III: Prof.: Período:

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

Upload e Download de Arquivos. Ao programador Morfik, cabe implementar em sua aplicação os mecanismos gerenciem todo o processo acima.

O que são Bancos de Dados?

Faculdade Lourenço Filho - ENADE

Banco de dados 1. Linguagem DML SQL Select Avançado. Professor: Victor Hugo L. Lopes

Pag: 1/20. SGI Manual. Controle de Padrões

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Junções e Índices em Tabelas

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Definida pelo American National Standard Institute (ANSI) em 1986

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Banco de Dados. Maurício Edgar Stivanello

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

BANCO DE DADOS 1 AULA 1. estrutura do curso e conceitos fundamentais. Professor Luciano Roberto Rocha. contato@lrocha.

15 Conceitos de Bancos de Dados com o LibreOffice Base

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Roteiro 2 Conceitos Gerais

Criação de Consultas e Relatórios no Access CRIAÇÃO DE CONSULTAS E RELATÓRIOS NO ACCESS

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

DML - SELECT Agrupando Dados

Engenharia de Requisitos Estudo de Caso

Arquiteturas RISC. (Reduced Instructions Set Computers)

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Lição 1 - Criação de campos calculados em consultas

Módulo 4. Construindo uma solução OLAP

Dadas a base e a altura de um triangulo, determinar sua área.

4.6. SQL - Structured Query Language

Disciplina: Tecnologias de Banco de Dados para SI s

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

Estatística Básica via MySQL para Pesquisas On-Line

Exercícios de Lógica Exercícios de Fixação 08

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

UFG - Instituto de Informática

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Conceitos de Banco de Dados

Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML

Manual do Visualizador NF e KEY BEST

Localização dos inquéritos de rua para Arroios e Gulbenkian

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

PHP INTEGRAÇÃO COM MYSQL PARTE 1

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

WXDC: Uma Ferramenta para Imposição e Validação de Restrições de Integridade baseadas na Linguagem XDCL

Aula 02 Excel Operações Básicas

Programação SQL. Introdução

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

Transcrição:

Um comparativo entre SQL e linguagens de consulta a dados XML Michael Schuenck dos Santos 1, Deise de Brum Saccol 2 1, 2 Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Caixa Postal 15.064 91.501-970 Palmas TO Brasil {michael, deise}@ulbra-to.br Abstract. Several XML query languages have been proposed in the last years. It is useful to compare these languages with a well known language (SQL) to point out their potentialities. This work compares five query languages: SQL, XML-QL, Lorel, XQL and X-Query. The comparisons are based on the verification of existing functionalities and their sintaxes. Resumo. Várias linguagens de consulta a XML foram propostas nos últimos anos. Assim, uma comparação com uma linguagem bem conhecida (SQL) é útil para apontar as potencialidades destas linguagens. Este trabalho compara cinco linguagens de consulta: SQL, XML-QL, Lorel, XQL e X-Query. Estas comparações baseiam-se na verificação das funcionalidades existentes e das suas sintaxes. 1. Introdução Em termos computacionais, os dados podem ser divididos em estruturados e semiestruturados. O primeiro tipo refere-se aos dados caracterizados por possuírem estrutura estática, definida a priori (geralmente por uma pessoa ou grupo de pessoas). Este tipo de dados é muito comum nas aplicações comerciais tradicionais. Os dados semi-estruturados vieram à tona com o advento da Internet. Neste ambiente, é comum a existência de dados disponibilizados por milhares de pessoas, que seguem estruturações diversificadas e que mudam constantemente. Neste contexto, surgiu a XML, com a finalidade de controlar melhor estes dados, e tornar possível seu processamento de forma a permitir a sua compreensão pelos humanos. A representação dos dados no formato XML abriu uma infinidade de possibilidades para sua manipulação. Dentre estas, também a necessidade de recuperação dos dados XML; afinal, se os dados não precisassem ser recuperados, não precisariam ser armazenados. Para este fim, diversas abordagens foram propostas por vários grupos de pesquisas nos últimos anos. Dentre estas, algumas das principais estarão sendo apresentadas neste artigo. Assim, estas abordagens, denominadas por linguagens de consultas a dados XML, encontram-se em um estágio inicial de desenvolvimento, se comparadas às linguagens de consulta a dados estruturados, que são desenvolvidas e utilizadas desde os primórdios de bancos de dados.

1 Neste sentido, nada mais natural que comparar as funcionalidades de uma linguagem de consulta já consagrada (neste caso a SQL) com linguagens "novas", a fim de que se possa levantar e aproveitar os exemplos bons e aplicáveis nas linguagens nascentes. 2. Dados semi-estruturados Normalmente, dados semi-estruturados não têm sua estrutura previamente definida por uma única pessoa (ou grupo de pessoas associadas). Eles são criados por várias pessoas, o que resulta em documentos com estruturas diferentes. Isto se deve ao fato de normalmente não existir uma única estrutura prescritiva para representação de dados referentes a um mesmo domínio, já que cada pessoa pode escolher a forma de organização dos dados que desejar. Atualmente, a World Wide Web é o ambiente natural para a existência de dados semi-estruturados. Por isto, além da alta heterogeneidade, um outro fator que contribui para a peculiaridade destes dados é sua expressiva quantidade. Este tipo de dados representa um novo paradigma de representação de dados, porém não pode ser considerado como uma forma alternativa a dados relacionais, já que seus respectivos propósitos são diferentes. Por isto, suas diferenças são latentes. A tabela 1 apresenta um breve comparativo entre os dados estruturados (relacionais) e os dados semiestruturados [MELO 2000]: Tabela 1: Tabela comparativa entre dados estruturados e semi-estruturados Dados estruturados Dados semi-estruturados Esquema predefinido Inexistência de esquema pré-definido Estrutura homogênea Estrutura heterogênea Estrutura independente dos dados Estrutura embutida no dado Estrutura reduzida Estrutura extensa Estrutura fracamente evolutiva Estrutura fortemente evolutiva Estrutura prescritiva Estrutura descritiva Distinção entre estrutura e dado é clara Distinção entre estrutura e dado não é clara A seguir será apresentada a XML (extensible Markup Language), linguagem mais bem adaptada à representação de dados semi-estruturados. 3. XML A XML [XML 2003] é um padrão da W3C para representação de dados. Possui um formato simples e muito útil para o intercâmbio de dados, o que é conseguido através da característica de marcação da linguagem. Uma característica marcante na XML é a possibilidade de definição de novas linguagens de marcação. Isto é possível pelo fato de as tags de marcação poderem ser definidas pelo usuário. Por isto, pode-se dizer que dados semi-estruturados são bem representados pela XML. A XML tem duas formas primárias de composição de informações [ANDERSON 2001]: os elementos e os atributos. Os elementos são estruturas que permitem a atribuição de dados simples, tais como seqüências de números e letras (elementos simples) e de outros elementos (elementos complexos). Os atributos são ainda mais simples: constituemse de estruturas para atribuição de valores alfanuméricos e são colocados junto às tags de abertura dos elementos. Para um conjunto de dados ser considerado um documento XML,

2 é obrigatória a existência de pelo menos um elemento. A seguir é exibido um documento XML simples. 1 <empresas> 2 <empresa idempresa="e1" atividade1="hotel"> 3 <nome>hotel Clepsidra</nome> 4 <endereco>604 Sul, Av. NS-2, Lote 2</endereco> 5 <cidade>palmas</cidade> 6 <uf>to</uf> 7 </empresa> 8 <empresa idempresa="e2" atividade="restaurante"> 9 <nome>restaurante Samambaia</nome> 10 <endereco>rua Tenente José Dias, nº 622</endereco> 11 <cidade>goiânia</cidade> 12 <uf>go</uf> 13 </empresa> 14 </empresas> Figura 1. Documento XML O documento apresentado é formado pelos elementos compostos empresas e empresa. Ele também possui elementos simples, como nome e endereco, e atributos, como idempresa e atividade. Este documento pode ser mapeado para a seguinte tabela relacional: Tabela 2: Tabela empresa IdEmpresa atividade nome Endereco cidade uf E1 Hotel Hotel Clepsidra 604 Sul, Av. NS-2, Lote 2 Palmas TO E2 restaurante Restaurante Samambaia Rua Tenente Jose Dias, nº 622 Goiânia GO A estrutura de documentos XML pode ser representada por uma DTD (Document Type Definition) [ANDERSON 2001] que os validem. Ela consiste de uma definição genérica dos elementos e atributos que podem ser suportados por vários documentos XML. Todos os exemplos de consultas que serão apresentados adiante tomarão como base os exemplos apresentados nesta seção. O documento XML apresentado na figura 2 será utilizado na exemplificação de consultas de linguagens para dados XML e o esquema relacional apresentado na tabela 2 será utilizado na exemplificação das consultas escritas em SQL a linguagem de consulta a dados relacionais mais utilizada atualmente, que será tratada a seguir. 4. SQL Apesar de ser uma linguagem de consulta a dados estruturados, a popularidade de SQL sugere que outras linguagens de consulta sigam seu exemplo, principalmente em termos de sintaxe e capacidade de expressão. A SQL foi originalmente desenvolvida pela IBM, quando ainda era chamada Sequel 2 [SILBERSCHATZ 1999]. Existem várias versões dela, de fontes diversas. A SQL-92, publicada pelo ANSI (American National Standards Institute) é uma das versões de maior destaque, apesar de já terem sido publicadas novas versões. Normalmente, os diversos SGBD s relacionais implementam versões da SQL que possuem algumas pequenas diferenças entre si.

3 De acordo com a tabela relacional apresentada na tabela 2, para se recuperar os nomes e endereços das empresas situadas no estado do Tocantins, em SQL basta se escrever o seguinte: 1 SELECT nome, endereço 2 FROM empresa 3 WHERE uf= TO Figura 2. Exemplo de consulta em SQL Dentre os mecanismos para consulta aos dados, as principais funcionalidades oferecidas pela SQL são (SILBERCHATZ, 1999): Ordenação dos resultados por um determinado campo da tabela. Junções entre tabelas, ou seja, permite consultas a fontes diferentes. Funções de agregação, que permitem que sobre os valores de uma determinada coluna da tabela, sejam realizadas operações. As principais funções oferecidas são: soma, média, máximo valor, mínimo valor e contagem. Consultas aninhadas, um mecanismo para especificação de condições que representem a existência de valores de campos em outros campos de outras tabelas. É semelhante às junções. Operações de conjuntos, que vêem os resultados de consultas como conjuntos, realizando operações de união, interseção e subtração. SQL oferece também, recursos para a inserção de dados, exclusão, junção, criação de tabelas, restrições de segurança, definição de visões [SILBERSCHATZ 1999]. Ela é utilizada basicamente para consultas a dados organizados segundo um esquema relacional, o que requer uma estrutura definida previamente. As linguagens de consulta a documentos XML serão apresentadas nas seções a seguir. 5. XML-QL A XML-QL (XML Query Language) [DEUTSCH 1999] é fruto de um trabalho conjunto entre os laboratórios AT&T (EUA) e a universidade da Pensilvânia (EUA). Suas principais características são [DEUTSCH 1999]: É basicamente uma linguagem de consulta, pois realiza operações típicas de bancos de dados relacionais relacionadas com alteração do banco de dados, tais como inserção, atualização e exclusão de dados. A sintaxe de suas consultas combina elementos da sintaxe de SQL e de XML, consistindo basicamente das cláusulas WHERE, IN e CONSTRUCT, em que a primeira seleciona as fontes e os parâmetros da consulta; a segunda, a localização da fonte a ser consultada; e a terceira, as opções de formação do documento resultante.

4 Suporta a criação de funções com o objetivo de reuso. Suas consultas permitem a construção de novos documentos XML, sendo possível a alteração de sua respectiva estrutura, através da reestruturação e criação de novos elementos e atributos. Um exemplo de consulta em XML-QL é o seguinte: 1 WHERE <empresa> 2 <nome> $n </> 3 <endereco> $e </> 4 <uf> TO </> 5 </> IN www.ulbra-to.br\empresas.xml 6 CONSTRUCT <resultado> 7 <empresa> $n </> 8 <endereco> $e </> 9 </> Figura 3. Exemplo de consulta em XML-QL A consulta apresentada tem a mesma função da consulta SQL apresentada na figura 2. $n e $e são variáveis, que armazenam o resultado obtido na cláusula WHERE e os exibem no local indicado na cláusula CONSTRUCT. As funcionalidades oferecidas pela SQL que não foram encontradas em XML-QL são funções de agregação, e as operações de inserção, atualização, exclusão, criação de esquemas e criação de visões. Por outro lado, as características da XML-QL que não possuem paralelo em SQL são [DEUTSCH 1999]: transformação da estrutura na saída das consultas; especificação parcial de caminho, que se refere à não necessidade de se especificar todo o caminho para determinado elemento; tags variáveis, recurso referente à possibilidade do conteúdo de um elemento se tornar o nome do elemento no resultado da consulta; e funções skolem, que permitem a geração de valores para atributos do tipo ID, tal como os campos do tipo auto-numeração, em bancos de dados relacionais. 6. Lorel Um dos primeiros SGBD s criados para armazenar e gerenciar dados XML e outros tipos de dados semi-estruturados foi o Lore (Lightweight Object Repository) [McHUGH 1997], desenvolvido no Departamento de Ciência da Computação da Universidade de Stanford. Sua linguagem de consulta nativa é a Lorel (Lore Language), cujas principais características são [ABITEBOUL 1997]: Por ser projetada para ser utilizada sob um contexto de um sistema gerenciador de bancos de dados, a Lorel suporta, além de consultas, operações de atualização e exclusão. É possível ser utilizada a cláusula WITH para reestruturar os dados resultantes da consulta [GOLDMAN 1999], ou seja, criar um novo documento XML, com estrutura diferente, assim como a XML-QL. Permite o uso de variáveis.

5 A sintaxe das consultas é do tipo SELECT-FROM-WHERE, sendo bastante semelhante à da SQL: 1 SELECT e.nome, e.endereço 2 FROM empresas.empresa e 3 WHERE e.uf = TO Figura 4. Exemplo de consulta em Lorel O exemplo acima tem, também, a mesma função da consulta apresentada na figura 2, alterando-se apenas a forma de endereçamento dos dados, que em Lorel, é baseada em expressões de caminho. As operações suportadas pela Lorel são: ordenação, junção, funções de agregação, operações de conjuntos, atualização e exclusão. Em Lorel, não são implementadas consultas aninhadas nem criação de visões. As operações de inserção e criação de esquemas são realizadas pelo próprio SGBD Lore, e não pela sua linguagem de consulta. Em Lorel existe ainda, os denominados Range Qualifiers, que permitem que sejam selecionados somente os elementos que se encontram nas posições desejadas [GOLDMAN 1999]. Segundo [BARU 1998], atualmente as linguagens de consulta a dados XML se dividem em dois paradigmas: de banco de dados, em que a sintaxe das consultas é semelhante à sintaxe das consultas a bancos de dados relacionais; e funcional, cujas linguagens se baseiam em expressões de caminho, e são eficientes na realização de consultas em profundidade. Assim sendo, foram tratadas até agora, duas linguagens pertencentes ao paradigma de banco de dados. Nas próximas seções serão apresentadas duas linguagens pertencentes ao paradigma funcional: XQL e X-Query. 7. XQL A XQL [ROBIE 1998], por coincidência, tem o mesmo significado da XML-QL: XML Query Language, e segundo os criadores da linguagem, o nome da linguagem não está definido permanentemente. Esta linguagem foi projetada por J. Robie, da Texcel, Inc., J. Lapp, da webmethods, Inc. e D. Schach, da Microsoft e tem como principais características, as seguintes [ROBIE 1998]: É uma extensão de XSL, muito utilizada para apresentação de documentos XML. Os resultados das consultas não retornam documentos com estrutura diferente do documento original. Não permite a consulta de várias fontes. As consultas formuladas em XQL são baseadas em contextos [ROBIE 1998], que nada mais são que uma expressões de caminho com recursos adicionais. Elas aceitam comparações entre elementos e atributos, e o uso de funções nativas do XQL. A consulta apresentada na figura 2 é escrita em XQL da seguinte forma: 1 empresas/empresa[uf = TO ]/(nome $union$ endereco) Figura 5. Exemplo de consulta em XQL A XQL suporta apenas funções de agregação e operações de conjuntos, como funções auxiliares às consultas. Além disso, ela não suporta operações de inserção,

6 exclusão, atualização, criação de esquemas e visões. Isto se deve ao fato da linguagem não trabalhar sob o contexto de um banco de dados. No entanto, a XQL oferece funcionalidade para a mesma finalidade dos Range Qualifiers de Lorel, além de várias funções auxiliares, tais como: ancestor() e node() [ROBIE 1998]. 8. X-Query A X-Query [X-Query 2001] é a linguagem padrão de consulta utilizada no Tamino (um banco de dados comercial para XML). Suas principais características são [X-Query 2001]: É uma adaptação de XPath, da W3C, para trabalhar com o SGBD Tamino, que em versões anteriores, utilizava a XQL. É baseado em expressões, que englobam expressões de consulta baseadas em XPath e aquelas incorporadas pela X-Query. As expressões contém o caminho para nós específicos, além de chamadas a funções. Suas consultas são bastante semelhantes à XPath e à XQL. A X-Query pode ser estendida, utilizando-se a ferramenta X-Tension, provida pelo Tamino. Não permite consultas a mais de uma fonte simultaneamente. A X-Query não possui a capacidade de retornar mais de um elemento em cada consulta. Sendo assim, a consulta representada na figura 2 pode ser expressa em X-Query da seguinte forma, recuperando apenas o conteúdo do elemento nome, filho de empresa: 1 empresas/empresa[uf = TO ]/nome Figura 6. Consulta em X-Query As consultas em X-Query, têm como adicional, a possibilidade de apresentarem suas saídas ordenadas, e de usarem funções de agregação. X-Query não suporta as operações relacionadas com alteração do banco de dados. Ou seja, apesar de X-Query ser uma linguagem que trabalha em conjunto com um banco de dados (Tamino), é encarregada apenas de recuperar os dados. Assim como a XQL, a X-Query permite o acesso aos elementos de acordo com suas posições relativas ao elemento pai, além de suportar funções auxiliares [X-Query 2001]. Tendo sido apresentada a X-Query, todas as linguagens a serem vistas neste trabalho já foram apresentadas. No próximo capítulo será apresentado um resumo do todo exposto. 9. Resumo comparativo entre as linguagens Após ter sido feita uma apresentação detalhada de cada linguagem de modo particular, esta seção tem a função e exibir de forma concisa, as principais características suportadas e não suportadas por cada linguagem. Através da tabela abaixo é possível se perceber nitidamente, as diferenças entre as linguagens. Tabela 3: Resumo das funcionalidades oferecidas pelas linguagens apresentadas Funcionalidades SQL XML-QL Lorel XQL X-Query

7 Seleção de múltiplos campos, Sim Sim Sim Sim Não elementos ou atributos Definição de múltiplas Sim Sim Sim Não Não condições Consultas a várias fontes Sim Sim Sim Não Não Ordenação Sim Sim Sim Não Sim Junções Sim Sim Sim Não Não Consultas aninhadas Sim Sim Não Não Não Operações de conjuntos união interseção subtração união união união interseção Não Funções de agregação min max sum avg count - min max sum avg count count min max sum avg count Inserção Sim Não Não Não Não Atualização Sim Não Sim Não Não Exclusão Sim Não Sim Não Não Criação de esquemas Sim Não Não Não Não Criação de visões Sim Não Não Não Não Transformação da estrutura na - Sim Não Não Não saída Especificação parcial das - Sim Sim Sim Sim expressões de caminho Tags variáveis - Sim Não Não Não Funções Skolem - Sim Não Não Não Retorno de elementos - Não Sim Não Não relacionados via ID/IDREF Acesso a elementos por índices (range qualifiers) Não Não Sim Sim Sim Nota-se, com a análise desta tabela, que existem muitas funcionalidades possíveis de serem implementadas pelas linguagens, porém, dentre estas funcionalidades, apenas algumas são implementadas por todas. Um ponto a se destacar é o impacto que o paradigma de dados e da linguagem provoca nas possibilidades de implementação de uma ou de outra funcionalidade. Por exemplo, existem cinco funcionalidades (identificadas por - ) que não são possíveis de serem implementadas pela SQL. Da mesma maneira, nota-se a dificuldade por parte das linguagens de consulta a XML pertencentes ao paradigma funcional em implementar boa parte das funcionalidades apresentadas na tabela. Outro fator a se ponderar é a inserção ou não da linguagem de consulta em um ambiente gerenciador de banco de dados. Isto permite (mas não obriga, de acordo com os exemplos apresentados) que a linguagem implemente funções de inserção, atualização e exclusão de dados, criação de esquemas e visões. Como visto no caso do Lore/Lorel, para que os dados sejam inseridos ou seja feita a criação de esquemas, não é utilizada a Lorel. Estas funções, neste caso, são de responsabilidade do SGBD.

8 10. Considerações Finais A escolha de duas linguagens de cada paradigma (de banco de dados e funcional) foi útil para mostrar suas utilidades. Ficou claro que as linguagens do paradigma de banco de dados oferecem recursos (mesmo que ainda não sejam todos os que a SQL provê) para tratamento dos dados sob um banco de dados. Por outro lado, pode-se considerar que as linguagens do paradigma funcional referem-se a notações para endereçamento de documentos XML com alguns recursos adicionais. Muitas vezes, o desenvolvimento de algo é realizado de forma contínua e intuitiva, sem serem analisadas uma série de fatores que podem contribuir para a melhoria da qualidade do que se está desenvolvendo. Assim, um trabalho cujo objetivo é fazer uma comparação pode ser visto como uma forma de fazer uma crítica construtiva àqueles(as) que possuem desvantagens em relação aos demais. Portanto, uma das principais finalidades deste trabalho é auxiliar o desenvolvimento das linguagens de consulta a dados XML através do confronto com uma linguagem de consulta já consagrada e muitas vezes adotada como padrão. Sendo XML uma forma relativamente nova para representação de dados e ao mesmo tempo com popularidade crescente, ainda não houve tempo para que uma ou outra linguagem de consulta se despontasse como a mais usual e mais utilizada (embora já se possa notar algumas tendências), tal como acontece no caso da SQL. Por isto, os grupos de pesquisa que trabalham no desenvolvimento das linguagens de consulta a XML podem ainda aprimorarem suas propostas com o objetivo de se chegar a um produto utilizável comercialmente. Uma possível utilização deste trabalho pode ser também como material didático básico sobre todas as linguagens aqui vistas. Isto é possível graças à apresentação das principais características das linguagens, já que este procedimento é necessário para que se possa fazer uma comparação entre as mesmas. O presente artigo apresentou as principais características sintáticas das linguagens, apontando quais funcionalidades foram implementadas em uma linguagem e que não as foram em outra. Portanto, uma possibilidade de trabalho futuro é investigar sobre a viabilidade ou a falta dela em se implementar funcionalidades ainda não existentes em uma determinada linguagem de consulta a XML. Referências Abiteboul, Serge; Quass, Dallan; McHugh, Jason; Widom, Jennifer; Wiener, Janet L.. The Lorel Query Language for Semistructured Data. International Journal on Digital Libraries, 1997. Anderson, R. et al. Professional XML. Rio de Janeiro: Ciência Moderna LTDA., 2001. Baru, C.; Ludäscher, B.; Papakonstantinou, Y.; Velikhov, P. Vianu, V. Features and requirements for na XML view definition language: lessons from XML information mediation. W3C Workshop on Query Languages (QL 98), 1998, Boston. Disponível na Web em http://www.w3.org/tands/ql/ql98/pp/xmas.html. Deutsch, A. et al. A query language for XML. Computer Networks, Amsterdam, Netherlands, 1999. Goldman, R.; McHugh, J.; Widom J. From Semistructured Data to XML: Migrating the Lore Data Model and Query Language. Proceedings of the 2nd International

9 Workshop on the Web and Databases (WebDB '99), Philadelphia, Pennsylvania, June 1999. McHugh, J.; Abiteboul S.; Goldman, R.; Quass, D.; Widom, J.. Lore: A Database Management System for Semistructured Data. SIGMOD Record, 26(3): 54-66 (1997). Melo, Ronaldo dos Santos. Aplicação de Ontologias a Bancos de Dados Semi- Estruturados. Exame de Qualificação (Pós-Graduação em Computação) 2000. Instituto de Informática da Universidade Federal do Rio Grande do Sul. Universidade Federal do Rio Grande do Sul, Porto Alegre.150 p. Robie, Jonathan et al. XML Query Language (XQL). Disponível em <http://www.w3.org/tands/ql/ql98/pp/xql.html>. Acesso em: 05/05/2003. Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. Sistema de Banco de Dados. São Paulo: Makron Books, 1999. World Wide Web Consortium. Extensible Markup Language (XML). Disponível em <http://www.w3.org/xml/>. Acesso em 10/04/2003. Software AG. Tamino X-Query. 2001. 80p.