Conforme já descrito no Capítulo 1, o objetivo principal da proposta desenvolvida neste estudo é
permitir a execução de consultas, especificadas através de palavras-chave em bancos de dados
classificados como NoSQL. No que diz respeito a estruturas de armazenamento, bancos de dados NoSQL caracterizam-se por apresentar uma estrutura mínima pré-definida ou não ter nenhuma estrutura fixa definida a priori. Para atingir o objetivo aqui proposto, o método adotado é fazer uso da solução desenvolvida em SQUIRREL [46], que realiza consultas com palavras-chave em bancos de dados relacionais, acrescentado-se as funcionalidades necessárias para mapear consultas com palavras-chave em consultas na linguagem particular do banco de dados NoSQL a ser consultado. A Figura 4.1 ilustra as funcionalidades desenvolvidas na presente proposta, a saber: o Coletor de Esquema Relacional e o Executor de Comandos em bancos de dados NoSQL. O Coletor de Esquema Relacional obtém os metadados de um banco de dados NoSQL, apresentando-os em formato relacional para a etapa de Mapeamento de Consultas. Isso é feito com apoio de um processo externo chamado Extrator de Metadados de Esquema. O Executor de Comandos recebe, da etapa de Mapeamento de Consultas, um ou mais comandos no formato SQL, que serão convertidos em operações na linguagem particular do banco de dados NoSQL a ser consultado, as quais, por sua vez, serão executadas por um processo externo chamado Extrator de Dados. Algumas informações iniciais são necessárias, que são: Palavras-chave relevantes, Sinônimos e Lista de BDs relevantes. Palavras-chave relevantes e Sinônimos são informações geradas pela etapa Pré-processamento de Consulta de SQUIRREL[46] (Figura 3.2). Esta etapa recebe a consulta do usuário e aplica uma série de processamentos com objetivo de detectar agregações ou ordenações, interdependência entre palavras para identificar conjunto de palavras que devem ser consideradas em conjunto e a utilização de sinônimos para expandir a compreensão da consulta [46]. Lista de BDs relevantes é gerada pela etapa Seleção de banco de dados também de SQUIRREL[46] (Figura 3.2). Nesta etapa é utilizada a TME [2.2]. E através da TME que os bancos de dados são expostos na Web pelos seus administradores de banco de dados. Nela contém entre outras informações, a Identificação dos BDs e Categoria a qual o banco de dados NoSQL pertence. Também é fornecida uma breve descrição do banco de dados e o esquema que contém as informações disponibilizadas. Essas informações comparadas as Palavras-chave relevantes determinarão se o banco de dados NoSQL é relevante ou não para a consulta. Dentre os bancos de dados NoSQL selecionados é gerado um ranking informando quais bancos de dados NoSQL possui uma relevância maior. Assuma que um banco de dados relevante é NoSQL, obtém a Identificação dos BDs que se refere a localização do banco de dados e sua Categoria, que informa qual categoria do paradigma NoSQL o banco de dados pertence: Chave-Valor, Documentos, Grafos, Colunas. Dentro da descrição dos campos que devem ser preenchidos na TME a informação Identificação dos BDs é representada pelo campo dc_identifier. Categoria será representado pelo campo dc_format. A Figura 4.2 mostra um exemplo de TME de um banco de dados NoSQL.