• Nenhum resultado encontrado

Linguagem Visual de Definição de Consultas

Projeto e Implementação do Sistema BDR

B. Nm_Atributo_Virtual = 'Nm_Departamento' AND

5.4.2 Linguagem Visual de Definição de Consultas

A IDC é, na verdade, um gerador de código-fonte SQL. Com a IDC é possível produzir consultas SQL a esquemas globais, através de uma Linguagem Visual de Definição de Consultas (LVDC), cuja função é descrever um conjunto de regras e opções que podem ser aplicadas na formulação de consultas.

A LVDC possibilita a geração de consultas obedecendo a seguinte sintaxe: SELECT lista_select

FROM tabela_virtual1 [[, tabela_virtual2] […, tabela_virtual16]] [WHERE cláusula]

[GROUP BY cláusula] [ORDER BY cláusula]

lista_select

Especifica um ou mais atributos virtuais a serem selecionados. A ordem dos atributos contidos na lista significa a ordem com que o conjunto-resposta será apresentado. Se a lista contém mais de um atributo, os mesmos devem ser separados por vírgulas (,). O nome do atributo virtual é ser precedido pelo nome da tabela virtual mais o caractere ponto (.). É possível associar no máximo uma função de agregação a cada atributo virtual. São elas: SUM, MAX, MIN, COUNT e AVG.

FROM

Indica as tabelas virtuais que podem ser utilizadas nas sentenças SELECT, WHERE, GROUP BY e ORDER BY. A cláusula FROM permite um máximo de 16 tabelas virtuais. Se a lista contém mais de uma tabela virtual, os mesmos devem ser separados por vírgulas (,).

WHERE cláusula =

WHERE condições_de_pesquisa

Especifica as condições de restrição a serem utilizadas para a obtenção do conjunto-resposta. Não há limite no número de condições de pesquisa.

condições_de_pesquisa

Define as condições para recuperação de dados. Condições de pesquisa seguem imediatamente a palavra-chave WHERE. Se mais de uma condição de pesquisa for utilizada em uma mesma sentença WHERE, as mesmas devem ser conectadas com o operador lógico AND. Junções são especificadas nas condições de pesquisa. Só são permitidas eqüijunções entre atributos virtuais.

Sintaxe:

WHERE nome_da_tabela_virtual.nome_do_atributo_virtual operador_de_comparação

constante [AND]

WHERE nome_da_tabela_virtual.nome_do_atributo_virtual =

nome_da_tabela_virtual.nome_do_atributo_virtual [AND]

WHERE nome_da_tabela_virtual.nome_do_atributo_virtual LIKE constante [AND] onde,

nome_da_tabela_virtual

nome_do_atributo_virtual

É o nome de um atributo virtual utilizado como comparação. Como forma de evitar alguma ambigüidade, o nome do atributo deve ser precedido pelo nome da tabela virtual mais o caractere ponto (.).

AND

Operador lógico cuja função é fazer a junção entre duas condições e retornar resultado quando ambas são verdade.

operador_de_comparação

É um símbolo utilizado entre duas expressões. A lista completa dos tipos de operadores de comparação pode ser vista na Tabela 5.33.

Símbolo Semântica = Igual a > Maior que < Menor que >= Maior ou Igual a <= Menor ou Igual a <> Diferente de

Tabela 5.33 - Operadores de Comparação

constante

Um valor literal, como número ou caractere. Caracteres são cercados por apóstrofos simples (').

GROUP BY cláusula

Especifica os grupos nos quais o conjunto-resposta é dividido. O(s) atributo(s) virtual(is) utilizado(s) para agrupamento deve(m) necessariamente se encontrar na cláusula SELECT. Se a lista contém mais de um atributo virtual, os mesmos devem ser separados por vírgulas (,).

Ordena o conjunto-resposta por atributos virtuais. É possível ordenar por no máximo 16 atributos virtuais. A cláusula ORDER BY pode incluir itens que não se encontram na cláusula SELECT. Se a lista contém mais de um atributo virtual, os mesmos devem ser separados por vírgulas (,).

5.5 Integrador

O papel do Integrador é receber consultas formuladas com base em BDVs e transformá-las em um conjunto de subconsultas referentes aos bancos de dados sendo integrados. Posteriormente, no Módulo de Execução de Consultas (MEC), estas subconsultas são submetidas para serem executadas em seus respectivos bancos de dados. O conjunto-resposta de cada banco de dados é agrupado para produzir a resposta à consulta original.

Estruturas de Dados

Durante o processo de transformação de uma consulta em subconsultas, o Integrador utiliza basicamente cinco estruturas de dados. São elas:

• Consulta - armazena informações ao nível de atributo virtual, como: nome do atributo virtual, tabela virtual a que pertence, função de agregação, indicação de filtro associado, existência de junção associada, entre outras;

• Filtros - guarda informações a respeito de possíveis filtros definidos em atributos virtuais;

• Junções - mantém informações sobre possíveis eqüijunções entre atributos virtuais;

• Fontes - guarda informações a respeito de cada fonte de dados que possa atender a um determinado atributo virtual;

A seguir, apresentamos uma descrição mais detalhada dos campos de cada uma das estruturas de dados mencionadas anteriormente.

Consulta

Campo Descrição Tipo

Índice do

Atributo Virtual Identificador utilizado para distinguir unicamente cada atributo virtual Número Nome do

Atributo Virtual Nome do atributo virtual selecionado String Nome da Tabela

Virtual Nome da tabela virtual a qual o atributo pertence String Selecionado Indica se o atributo virtual foi ou não selecionado Lógico Função de

Agregação

Armazena uma possível função de agregação associada ao

atributo virtual String

Filtro Indica se existe alguma restrição associada ao atributo virtual Lógico Junção Indica se existe alguma junção associada ao atributo virtual Lógico OrderBy Indica se foi definida alguma ordenação no atributo virtual Lógico GroupBy Indica se foi definido algum agrupamento no atributo

virtual Lógico

Filtros Restrições impostas ao atributo virtual Filtros Total de Filtros Quantidade de filtros estabelecidos no atributo virtual Número Junções Junções estabelecidas com o atributo virtual Junções Total de Junções Quantidade de junções estabelecidas no atributo virtual Número Fontes Fontes de dados que possuem tabelas e atributos que correspondem à tabela e atributo virtuais em questão,

respectivamente

Fontes

Total de Fontes Quantidade de fontes que podem atender ao atributo

virtual Número

Tabela 5.34 - Estrutura de dados Consulta

Filtros

Campo Descrição Tipo

Operador Indica o operador a ser utilizado no filtro String Constante Indica o valor a ser utilizado como comparação no filtro Varchar

Junções

Campo Descrição Tipo

Operador Indica o operador a ser utilizado na junção. Somente são permitidas eqüijunções. Sendo assim, o operador sempre será o de igualdade (=)

String Tabela Virtual

de Junção

Nome da tabela virtual que deve fazer junção com a tabela

virtual que contém o atributo virtual String Atributo Virtual

de Junção Nome do atributo virtual que faz junção String

Tabela 5.36 - Estrutura de dados Junções

Fontes

Campo Descrição Tipo

Fonte Nome da fonte de dados que pode atender ao atributo virtual em questão String Tabela Nome da tabela correspondente à tabela virtual que contém o

atributo virtual String

Atributo Nome do campo correspondente ao atributo virtual String

Tabela 5.37 - Estrutura de dados Fontes

Estatística

Campo Descrição Tipo

Fonte Nome da fonte de dados Número

Porcentagem Porcentagem de atributos virtuais envolvidos em uma

consulta que pode ser atendida pela fonte em questão Número Subconjunto Indica se o conjunto de atributos virtuais atendidos por uma fonte é subconjunto do de outra fonte boolean Selecionada Indica, de fato, se a fonte deve ser selecionada para responder a uma consulta boolean

Tabela 5.38 - Estrutura de dados Estatística

Os componentes do Integrador, a serem descritos a seguir, são:

• Analisador de Consulta;

• Coletor de Fontes;

• Estimador de Fontes;

• Transformador de Consultas.