• Nenhum resultado encontrado

Etapas para Elaboração de Consultas

Projeto e Implementação do Sistema BDR

5.4 Interface de Definição de Consultas

5.4.1 Etapas para Elaboração de Consultas

Para elaboração de uma consulta o UDC deve, necessariamente, seguir uma seqüência de etapas. São elas:

Seleção de Esquema Global

São mostrados todos os esquemas globais para que o UDC possa selecionar um deles e elaborar uma consulta baseada nas tabelas e atributos virtuais pertencentes ao esquema global selecionado.

O nome de cada BDV cadastrado encontra-se armazenado no Metabanco de Dados, mais precisamente na tabela Esquema_Global (Tabela 5.9). Para obtê-los, a IDC remete a seguinte consulta ao Gerente de Metadados para posterior envio ao Metabanco de Dados:

SELECT Esquema_Global.Nm_Esquema_Global

FROM Esquema_Global

Tabela 5.18 - Obtendo Esquemas Globais

O resultado é então retornado pelo Metabanco de Dados ao Gerente de Metadados que, por sua vez, o repassa para a IDC que o apresenta ao UDC.

Considerando de agora em diante o terceiro exemplo do Capítulo 4, o resultado retornado é o mesmo apresentado na Figura 4.3. O UDC seleciona então o esquema global Organização.

Nm_Esquema_Global Copin

Organização

Tabela 5.19 - Esquemas Globais Cadastrados no Metabanco de Dados

Seleção de Tabelas Virtuais

São listadas todas as tabelas virtuais pertencentes ao esquema global selecionado anteriormente, para que o UDC possa selecionar a(s) que pretende incluir em uma consulta. Só é possível passar para a etapa seguinte caso tenha sido selecionada pelo menos uma tabela virtual.

A descrição de cada tabela virtual, independente do BDV a qual pertence, está armazenada na tabela Tabela_Virtual do Metabanco de Dados (ver Tabela 5.14). Na tabela Esq_Glob_Possui_Tab_Virt do Metabanco de Dados (ver Tabela 5.10) é possível obtermos as tabelas virtuais referentes a cada esquema global.

Para obter o nome das tabelas virtuais pertencentes ao esquema global

Organização, a IDC envia a seguinte consulta ao Gerente de Metadados: SELECT DISTINCT Tabela_Virtual.Nm_Tabela_Virtual

FROM Tabela_Virtual, Esquema_Global, Esq_Glob_Possui_Tab_Virt

WHERE Tabela_Virtual.Cd_Tabela_Virtual = Esq_Glob_Possui_Tab_Virt.Cd_Tabela_Virtual

AND Esquema_Global.Nm_Esquema_Global = 'Organização' AND

Esquema_Global.Cd_Esquema_Global = Esq_Glob_Possui_Tab_Virt.Cd_Esquema_Global

ORDER BY Nm_Tabela_Virtual

Tabela 5.20 - Obtendo as Tabelas Virtuais do Esquema Global Organização

Nm_Tabela_Global Departamento DepartamentoControlaProjeto Empregado EmpregadoTrabalhaProjeto EnderecoDoDepartamento EnderecoDoEmpregado Projeto

Tabela 5.21 - Esquemas Globais Cadastrados

De acordo com o exemplo, o UDC seleciona as tabelas virtuais: Empregado,

Departamento, DepartamentoControlaProjeto, EmpregadoTrabalhaProjeto e Projeto.

Seleção de Atributos Virtuais

São mostrados apenas os atributos virtuais pertencentes às tabelas virtuais selecionadas no passo anterior, para que o UDC possa selecionar os que pretende incluir em uma consulta, ou seja, os atributos que deseja que sejam apresentados no resultado final. Só é possível passar para a etapa seguinte caso tenha sido selecionado pelo menos um atributo virtual.

Neste passo, o UDC pode aplicar as seguintes funções de agregação aos atributos virtuais selecionados:

Soma: realiza a adição de valores contidos no conjunto-resposta referente ao atributo virtual;

Média: retorna a média dos valores contidos no conjunto resposta, referente ao atributo virtual;

Quantidade: retorna o número total de registros contidos no conjunto-resposta;

Máximo: retorna o maior valor contido no conjunto-resposta, referente ao atributo virtual;

Mínimo: retorna o menor valor contido no conjunto-resposta, referente ao atributo virtual.

Os atributos virtuais de um BDV estão armazenados na tabela Atributo_Virtual do Metabanco de Dados (ver Tabela 5.3). Para cada tabela virtual selecionada no passo anterior, uma consulta é enviada ao Gerente de Metadados, pela IDC. Por exemplo, para obter os atributos virtuais da tabela Empregado, a seguinte consulta é executada: SELECT DISTINCT Tabela_Virtual.Nm_Tabela_Virtual,

Atributo_Virtual.Nm_Atributo_Virtual

FROM Tabela_Virtual, Atributo_Virtual, Esquema_Global, Esq_Glob_Possui_Tab_Virt

WHERE Tabela_Virtual.Cd_Tabela_Virtual = Atributo_Virtual.Cd_Tabela_Virtual AND Tabela_Virtual.Nm_Tabela_Virtual = 'Empregado' AND

Tabela_Virtual.Cd_Tabela_Virtual = Esq_Glob_Possui_Tab_Virt.Cd_Tabela_Virtual AND Esquema_Global.Nm_Esquema_Global = 'Organização' AND

Esq_Glob_Possui_Tab_Virt.Cd_Esquema_Global = Esquema_Global.Cd_Esquema_Global

ORDER BY Atributo_Virtual.Nm_Atributo_Virtual

Tabela 5.22 - Obtendo os Atributos Virtuais da Tabela Virtual Empregado

O resultado retornado pelo Metabanco de Dados pode ser visto na Tabela 5.23:

Nm_Tabela_Virtual Nm_Atributo_Virtual Empregado Cargo Empregado Cd_Departamento Empregado Cd_Empregado Empregado Cd_Endereço_Empregado Empregado Dt_Admissao Empregado Nm_Empregado Empregado Nm_Est_Civil Empregado Vl_Salario_Diario Empregado Vl_Salario_Semanal

Tabela 5.23 - Atributos Virtuais da Tabela Virtual Empregado

Este processo se repete para o restante das tabelas virtuais selecionadas (Departamento, DepartamentoControlaProjeto, EmpregadoTrabalhaProjeto e Projeto). Podemos ver o resultado final na Tabela 5.24. Compare estes resultados com o da Figura 4.15 e perceba que são os mesmos. A única diferença é que para identificar a tabela virtual de cada atributo virtual na IDC, cada um deles é precedido pelo nome da tabela virtual a qual pertence seguido do caractere ponto (".").

Nm_Tabela_Virtual Nm_Atributo_Virtual Empregado Cargo Empregado Cd_Departamento Empregado Cd_Empregado Empregado Cd_Endereco_Empregado Empregado Dt_Admissao Empregado Nm_Empregado Empregado Nm_Est_Civil Empregado Vl_Salario_Diario Empregado Vl_Salario_Semanal Departamento Cd_Departamento Departamento Nm_Departamento Departamento Nu_Telefone Departamento Cd_Endereco_Departamento Projeto Cd_Projeto Projeto Nm_Projeto EmpregadoTrabalhaDepartamento Cd_Empregado EmpregadoTrabalhaDepartamento Cd_Departamento DepartamentoControlaProjeto Cd_Departamento DepartamentoControlaProjeto Cd_Projeto

Tabela 5.24 - Atributos Virtuais das Tabelas Virtuais Selecionadas

Definição de Filtros

A definição de filtros tem o objetivo de estabelecer restrições aos atributos virtuais. Nesta etapa, a IDC exibe apenas os atributos virtuais pertencentes às tabelas virtuais selecionadas anteriormente, para que o UDC possa impor filtros. Portanto, as consultas enviadas Metabanco de Dados são as mesmas da etapa anterior. Esta não é uma etapa obrigatória, ou seja, o UDC pode passar para etapa seguinte sem definir nenhum filtro.

Um filtro é composto por um atributo virtual, um operador e uma constante. Os seguintes operadores podem ser utilizados: maior (>), menor (<), maior ou igual (>=), menor ou igual (<=), igual (=) e diferente (<>). A constante é um valor literal, como número ou caractere.

Como o Metabanco de Dados armazena o tipo de dado de cada atributo virtual, no momento em que um UDC seleciona um atributo virtual para definir algum filtro,

apenas os operadores que fazem sentido serem aplicados ao mesmo são disponibilizados.

No exemplo que estamos seguindo, estamos interessados apenas nos empregados do departamento de informática. Como o atributo Nm_Departamento da tabela Departamento é do tipo Varchar, então todos os operadores disponíveis podem ser associados a este tipo.

Por outro lado, se quiséssemos aplicar um filtro a um atributo do tipo lógico (booleano), não faria sentido disponibilizar os operadores: maior (>), menor (<), maior ou igual (>=) e menor ou igual (<=), e sim apenas igual (=) ou diferente (<>).

Para obter o tipo de dados do atributo virtual Nm_Departamento é necessário o envio da seguinte consulta ao Metabanco de Dados:

SELECT DISTINCT C.Nm_Tipo

FROM Tabela_Virtual A, Atributo_Virtual B, Tipo C, Esquema_Global D, Esq_Glob_Possui_Tab_Virt E

WHERE A.Cd_Tabela_Virtual = B.Cd_Tabela_Virtual AND A.Nm_Tabela_Virtual = 'Departamento' AND