Consulta por atributos
O módulo
de consulta por atributos, mostrado na Figura 1, possibilita a seleção de objetos.
O resultado de uma consulta é mostrado através de realces no grid e no mapa
exibido no display do TerraView. A cor do realce pode ser configurada através
do TerraView mudando-se o visual de consulta.
O módulo possui, na parte inferior, uma área de edição
onde o usuário pode digitar a consulta diretamente através do teclado ou utilizar
as ferramentas aqui fornecidas.

Fig. 1 - interface de Consulta por
Atributos.
A interface é projetada para facilitar a formulação
de consultas por atributos. Na parte superior, ele possui um combo chamado "Atributo"
que contém os nomes dos atributos do tema. Este combo possibilita a digitação
correta do nome do atributo. Consultas com erros de nome de atributos causam
erros na execução.
Ter a noção do range de valores
de um atributo ajuda na formulação de consultas. O módulo
permite listar esses valores através de um check box. Quando este é
ativado, carrega-se o combo com os valores ordenado de forma crescente.
Área de edição
A área de edição funciona da seguinte forma:
- Toda vez que um combo ou um botão da caixa "Operadores"
é acionado, faz se uma cópia para a área de edição. Essa cópia é colada
sobre o cursor da área de texto ou colada sobre uma seleção previamente
existente.
- Os botões "Undo" e 'Redo" recuperam
até as últimas 100 edições.
- Operações de copiar e colar podem ser feitas com
o botão direito do mouse.
- O botão "Del" remove uma seleção ou remove
um caractere à direita do cursor.
Execução
de uma consulta:
- O botão "Nova Consulta" executa a consulta
formulada.
- O botão "Adicionar" adiciona o resultado
da consulta formulada ao resultado já existente.
- O botão "Filtrar" executa a consulta
formulada sobre o resultado já existente.
Outros botões:
- O botão "Ajuda" mostra esta tela de ajuda.
- O botão "Cancelar" desativa o módulo
de consulta.
Algumas considerações:
Letras Maiúsculas
e Minúsculas
Dependendo do gerenciador de banco de dados pode ou
não fazer a distinção entre letras maiúsculas e minúsculas.
O operador
LIKE
Este operador utiliza o caractere % para indicar um
string qualquer de valores. Pode ser aplicado
em qualquer tipo de campo e deve ser sempre colocado entre plicas. Alguns exemplos
são mostrados a seguir:
- Para selecionar objetos, cujos nomes, começam com
a letra A:
Nome LIKE 'A%'
- Para selecionar objetos, cujos nomes, começam com
a letra A e terminam com a letra S:
Nome LIKE 'A%S'
- Para selecionar objetos, cujos nomes, começam com
a letra A e terminam com a letra S e tenha o string NH entre eles.
Nome LIKE 'A%NH%S'
- Para selecionar objetos, cujos nomes, começam com
o string RUA.
Nome LIKE 'RUA%'
- Para selecionar objetos, cujos nomes, começam com
o string 487.
Nome LIKE '487%'
Tema com
ligação 1 para n
Nesse caso pode-se ou não utilizar as funções
de agregação. As funções podem ser:
Essas funções possibilitam que vários
valores sejam associados a um objeto. Alguns exemplos são mostrados a
seguir:
Selecionar municípios que tem, em média,
em suas escolas mais de 50 professores.
AVG(num_professores) > 50
Nesse exemplo é suposto que exista um tema de
municípios ligado à tabela externa "escolas" e num_professores
é um atributo da tabela "escolas". Essa consulta seleciona
todos os municípios que tem, na média, mais que 50 professores
em suas escolas.
Retirando-se a função de agregação
obtem-se outro resultado. Nesse caso a consulta seleciona todas as escolas que
possuem mais de 50 professores.
num_professores > 50
Nesse caso o resultado é exibido da seguinte
forma:
- são realçados no grid todas as escolas que tem mais
de 50 professores
- são realçados no display (mapa) todos os municípios
que tenha pelo menos uma escola que satisfaça a consulta, ou seja, apenas
os municípios que não possuem nenhuma escola com mais de 50 professores são
deixados sem realce.
Funções de agregação devem
ser aplicadas a todos os atributos existentes na consulta formulada. Dessa forma
a consulta seguinte não é válida.
SUM(num_professores) > 350 AND num_salas > 30
......ERRO
uma mensagem de erro é envida ao executar
essa consulta.