Você está na página 1de 6

IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO.

4, JUNE 2006 279

Uma Ferramenta para a Definio de Consultas


Baseada em Entidades e Papis
S. N. Alves de Souza; E. G. Lino de Campos; A. R. D. Dos Santos
Universidade de So Paulo USP, Escola Politcnica - Departamento de Engenharia de Computao e
Sistemas Digitais, So Paulo-SP-Brasil.

 abrangente do banco de dados por parte de leigos, que sentem


Resumo-- Para acessar aos dados armazenados num banco de dificuldades ou no tm interesse nem necessidade de
dados relacional usurios precisam conhecer linguagens de conhecer detalhes especficos de um modelo de dados ou de
consulta como a SQL e os conceitos envolvidos (entidades, uma linguagem em particular.
relacionamentos, atributos), alm do esquema de dados que
A necessidade de criar uma linguagem de consulta para tal
descreve os elementos do domnio. Todavia, usurios leigos, no
familiarizados com linguagens de consulta e estruturas de banco finalidade originou pesquisas e propostas de novas linguagens
de dados, deveriam poder acessar os dados de uma forma mais para acesso a banco de dados, tais como QMF [1]. Observa-se
amigvel. O objetivo deste artigo apresentar uma ferramenta porm, que estas linguagens do nfase a capacidade
que permita que usurios leigos construam suas consultas, funcional, assemelhando-se SQL, ou so restritivas quanto
utilizando uma linguagem prxima linguagem natural. ao nmero de funes, pois do nfase a facilidade de uso, o
que limita as consultas possveis [2]. No caso de linguagens
Palavras chave - bancos de dados, linguagens de consulta,
interface amigvel, formulao de consultas.
similares a SQL, necessrio estar familiarizado com
conceitos como entidades, relacionamentos, atributos, dentre
I. INTRODUO outros [3,4,5,6,7,8]. No outro caso, (QBE - Query-By-
Example [8]), apesar de ser relativamente fcil de ser
Quando se aborda a questo de linguagens de consulta para
utilizado, pode trazer alguma dificuldade para usurios leigos,
bancos de dados importante ter em mente as diferentes
pois esses precisam alm de conhecer o esquema de banco de
categorias de usurios que precisariam utiliz-la para acessar a
dados existente, ter de manipular caracteres especiais no
informao armazenada. Neste contexto, possvel dividir os
bvios como _x ou . O emprego desses caracteres
usurios em: (1) usurios especialistas (administradores de
dificulta a compreenso e formulao da consulta,
banco de dados), (2) usurios experientes (profissionais de
principalmente quando a consulta envolve mais de uma tabela.
computao que desenvolvem produtos de software ou
Seria interessante, tendo em vista usurios leigos, que fosse
acessam diretamente o banco via linguagem de consulta), (3)
possvel o acesso s informaes sem a necessidade do
desenvolvedores de aplicativos (que acessam o banco de
conhecimento prvio do esquema existente e, principalmente,
dados via interfaces de programas previamente definidas), e
que fosse possvel exprimir as consultas usando uma
(4) usurios leigos (profissionais que precisam acessar
linguagem prxima natural, sem a necessidade de uso de
informaes armazenadas, porm no tm conhecimento sobre
caracteres especiais.
linguagens de acesso e modelos ou esquemas dos dados).
Tendo em vista os problemas acima, neste artigo apresenta-
Todas as categorias apresentadas so importantes e devem ser
se uma linguagem de consulta, prxima linguagem natural,
consideradas, porm, quando o objetivo a definio de uma
com a qual usurios leigos podem extrair informaes de
linguagem de acesso para leigos, a facilidade de uso um
interesse; apresentada, tambm, a ferramenta que a
fator de destaque. Tais usurios deveriam poder extrair
implementa e permite a formulao de consultas e a produo
informaes sem a necessidade de conhecer particularidades
de resultados de forma interativa. Na concepo dessa
de um modelo de dados ou de estruturas de armazenamento.
ferramenta deu-se prioridade usabilidade. Assim, diversas
Uma linguagem de consulta como a SQL (Structured
funcionalidades no foram implementadas, mas possvel
Query Language), apesar de amigvel, no atende aos
uma variedade de tipos de consultas, sendo sua formulao
requisitos para usurios leigos. Para que possa ser utilizada, a
mais natural ao usurio.
SQL exige de seus usurios conhecimento no s das
A organizao deste artigo tem o seguinte formato: o item
informaes armazenadas no banco, mas tambm de detalhes
II mostra a proposta geral da ferramenta e a forma de
mais especficos associados estrutura de armazenamento e
interao sob a perspectiva do usurio; o item III apresenta a
de conceitos de modelos de dados. Este conhecimento impede,
arquitetura da ferramenta e aspectos de sua implementao;
ou pelo menos dificulta muito uma utilizao direta mais
finalmente, o item IV apresenta a concluso do trabalho e
comentrios sobre a utilizao da ferramenta.
280 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

II. PONTO DE VISTA DO USURIO


Neste item, a palavra usurio ser empregada no lugar de
usurio leigo.
A linguagem proposta baseada na lngua portuguesa, mas
pode ser facilmente traduzida para outros idiomas como o
ingls por exemplo. A idia que o usurio utilize a
ferramenta da forma mais natural possvel, sendo conduzido,
passo a passo, na formulao da consulta at que defina a
consulta completa. A cada passo, a ferramenta apresenta um
conjunto de palavras ou frases, uma das quais o usurio
escolhe como parte da consulta. O processo interativo e
prossegue at a consulta estar completa e submetida para
execuo.
A. Utilizao da Ferramenta
O esquema Entidade-Relacionamento (E-R) da Figura 1,
referente ao contexto de uma aplicao exemplo, registra
informaes sobre empresas e seus empregados, clientes,
fornecedores e seus respectivos fornecimentos. Nesse Fig. 2. Janela inicial
esquema, para no poluir o desenho, mostra-se o nome de
alguns dos papis que entidades assumem no relacionamento
com outras entidades. A definio de papis til para
melhor compreenso da ferramenta proposta.

fo rn e c e
F o rn e c e d o r F o rn e c im e n to E m p re s a
n n
c o n tra ta d a
por 1
n n
C lie n te C o n tra ta T ra b a lh a
a te n d id o
n
n
1 ch efe
A te n d e
F u n c io n rio 1
n C h e fia
n 1
D e p e n d e n te Tem
s u b o rd in a d o
d e p e n d e n te

Fig. 1. Esquema ER do exemplo

A Figura 2 mostra a janela inicial usada pelo usurio para a Fig. 3. Segunda janela
formulao de consultas ao banco de dados. No lado direito e
inferior da janela, um conjunto de palavras, relativas ao Na Figura 3, na parte inferior (prximas opes para a
esquema do banco de dados, apresentada ao usurio. pergunta), um novo conjunto de palavras listado para
Ainda em relao Figura 2, no lado esquerdo inferior da escolha pelo usurio. Tais palavras so usadas para a
janela, aparecem duas palavras-chaves: Qual(is) e Quanto(s), especificao do predicado que exprime uma condio.
que do ao usurio informao sobre quais categorias de Novamente, a presso sobre o boto avanar d
consulta podero ser definidas. Na parte superior da janela prosseguimento definio da consulta, apresentando novas
(pergunta escolhida), a consulta que est sendo formulada palavras, neste caso, operadores de comparao, uma das
apresentada, como uma forma de feedback ao usurio. Para quais deve ser escolhida. E assim, passo a passo, o usurio
prosseguir, os botes voltar, avanar e executar (parte prossegue at que considere que a formulao da consulta
superior da janela) devem ser utilizados. O boto avanar esteja finalizada. Neste ponto ele poder pedir a execuo da
conduz a uma nova janela (Figura 3). consulta (boto executar), sendo que o resultado ser
apresentado numa nova janela. Para melhor compreenso,
tendo em vista o esquema da figura 1, suponha-se a seguinte
consulta:
Quais empregados ganham salrio acima de 2000 e
DE SOUZA et al.: A TOOL FOR QUERY FORMULATION 281

trabalham para a companhia Corporation S.A.?


Para formular tal consulta, o usurio iniciaria escolhendo a
opo Qual(is) e a seguir funcionrio (figura 2). Aps a
presso do boto avanar, uma nova janela (figura 3), com
novas opes, apresentada. Na parte superior desta (figura 3)
aparece consulta que est sendo definida. O usurio ento,
para o nosso exemplo, escolheria tem salrio na parte inferior
da janela.
A figura 4 (a) e (b) mostra a continuidade da consulta, onde
o usurio escolheria o operador de comparao (maior que), e
na seqncia, forneceria o valor requerido para comparao
(no exemplo, 2000). O usurio continuaria fazendo, a cada
passo, a escolha apropriada sua consulta e ao consider-la
Fig. 5. Resultado da consulta exemplo
finalizada, pressionaria o boto executar, quando uma nova
janela, com o resultado, seria apresentada (figura 5).
Ainda em relao figura 5, pode-se observar, na parte
superior da janela, um conjunto de botes correspondentes a
outras funcionalidades. Tais botes permitem ao usurio ir de
um registro a o outro (primeiro, anterior, prximo, ltimo),
localizar um dado especfico (localiza), usar um filtro
especfico (filtra), ordenar o resultado por determinadas
colunas (ordena), definir quais colunas devem ser vistas ou
no no resultado (viso), ou ainda, exportar e imprimir dados
(exporta, imprime).
(a)
III. ARQUITETURA DA FERRAMENTA
A ferramenta baseia-se no conceito de que os papis
exercidos pelas entidades nos relacionamentos so cidados
de primeira classe, e criam os caminhos de navegao entre
as entidades, viabilizando a realizao da inferncia.
Assim sendo, idealizou-se a ferramenta com base em trs
mdulos (figura 6): interface para criao de consultas
(definio da consulta de forma interativa); conversor de
consultas para SQL (mapeamento da consulta de portugus
estruturado para uma sentena SQL vlida); e apresentador
de resultados, que mostra o resultado da consulta e permite
sua manipulao atravs de vrias funcionalidades que so
disponibilizadas neste mdulo.
O mdulo interface para criao de consulta detalhado
a seguir. Apresenta-se tambm alguns detalhes do mdulo
conversor de consultas para SQL.
(b)

Fig. 6. Mdulos da ferramenta

importante destacar que a ferramenta no um


Fig. 4. Terceira Janela interpretador da linguagem natural. Na interface para
criao de consulta, o usurio levado a criar uma questo
Para o exemplo dado, como apenas dois empregados que em portugus estruturado. Assim, o conversor de consultas
trabalham para a companhia Corporation S.A. ganham para SQL consiste em um tradutor (parser), que converte a
acima de 2000, somente dois registros apareceriam como sentena de portugus estruturado para a linguagem SQL.
resultado (figura 5).
282 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

A. Interface para Criao de Consulta


Para a criao da consulta estruturada, duas questes
precisaram ser solucionadas:
perda de informao semntica e
utilizao de papis para a descrio de relacionamentos.

1) Perda de informao semntica


O esquema conceitual contm certas informaes que no
aparecem na implementao fsica. Observa-se a perda de
informao semntica na comparao das informaes
contidas no esquema conceitual com as do esquema fsico. Por
exemplo,
a tabela fsica raramente tem o mesmo nome da entidade
ou do relacionamento que a originou;
em geral, em relacionamentos de cardinalidade 1:N, o
Fig. 7. Diagrama de estados
nome do relacionamento perdido quando passamos do
modelo conceitual para o modelo fsico, ou seja, os trs Contudo, a consulta deve, ao mesmo tempo, ser
objetos (duas entidades e um relacionamento) compreensvel em portugus, ou seja, ser inteligvel pelo
transformam-se em apenas dois (duas tabelas); usurio, e ter uma estrutura que possa ser convertida para a
tambm, normalmente, relacionamentos de cardinalidade SQL, ou seja, a linguagem precisa ter uma estrutura conhecida
1:1 no modelo conceitual so implementados como uma e definida. A figura 8 mostra a estrutura da consulta. Os
nica tabela no modelo fsico. elementos da estrutura so definidos a seguir.
Q {Qual(is), Quanto(s)}
2) Utilizao de papis para a descrio de
E H; onde H o conjunto de todas as entidades de um
relacionamentos
esquema.
No esquema E-R, relacionamentos so descritos por um
nico nome. Por outro lado, a utilizao de papis para a A D; onde D o conjunto de todos os atributos de um
descrio de relacionamentos tem sido a abordagem de determinado E.
ferramentas de modelagem mais recentemente divulgadas O {igual a, diferente de, menor que, menor ou
como a ORM (Object Role Modeling [9]-[10]) e a UML igual a, maior que, maior ou igual a}.
(Unified Modeling Language [11]). Nestas, os V {R S D}; onde R o conjunto dos nmeros
relacionamentos so descritos pelos papis que cada entidade Reais; S o conjunto de cadeia de caracteres possveis de
apresenta, por exemplo, o relacionamento trabalha (figura serem geradas com o alfabeto; D o conjunto de datas
1) entre as entidades Companhia e Empregados pode ser vlidas.
descrito como: Companhia o empregador do Empregado e P U; onde U o conjunto de papis que um determinado
Empregado trabalha para a Companhia. E desempenha.
Tendo em vista que o objetivo foi o de encontrar um C o conjunto das conjunes lgicas possveis: {e, ou}
mecanismo que permitisse, sempre que necessrio, recuperar a que tem, que, tem e existe(m) so conectores para dar
informao semntica e/ou os papis contidos no esquema sentido na lngua portuguesa.
conceitual, foram utilizadas tabelas auxiliares para o registro
de tais informaes.
O processo completo de criao de uma consulta pode ser
descrito como uma mquina de estado. Passo a passo, o P E
sistema fornece ao usurio um novo conjunto de palavras e
opes. Isso significa passar de um estado a outro como Q E
mostrado na figura 7. No estado 1, o usurio seleciona a opo
Qual(is) ou Quanto(s). No estado 2, ele seleciona uma
A O V C
das entidades do esquema. O usurio pode passar para o
estado 3, no qual ele escolhe um atributo de uma entidade
previamente selecionada, ou pode passar para o estado 4.
Neste estado, o usurio pode escolher outra entidade ou
retornar ao estado 3. A partir do estado 2 ou 3 o processo Fig. 8. Estrutura de uma consulta
poder ser finalizado e a consulta executada.
A Figura 9 mostra uma consulta que exemplifica o uso da
estrutura da Figura 8, tendo como base esta estrutura pode-se
definir uma gramtica formal para a ferramenta de criao de
DE SOUZA et al.: A TOOL FOR QUERY FORMULATION 283

consulta apresentada neste artigo. Pode-se usar um autmato correspondentes. Em alguns casos o mesmo elemento aparece
finito regular [12] para representar gramticas. A Figura 10 mais de uma vez na mesma consulta; nestas situaes
mostra a gramtica usada para gerar a estrutura definida na apropriado criar um alias para cada repetio. Para resolver
Figura 9. este problema, a ferramenta cria um nmero seqencial para
cada uma das repeties do mesmo elemento.
Para a clusula WHERE a ferramenta pode tomar duas
aes distintas: uma que consiste na definio de uma juno
natural e outra que utiliza filtros aplicados pelo usurio sobre
atributos especficos. No primeiro caso, a ferramenta
identifica a seqncia de elementos E, P e E. Cada seqncia
desse tipo representa, na representao fsica, uma tabela, uma
Fig. 9. Exemplo de uma consulta e sua estrutura chave-estrangeira e outra tabela, sendo ento possvel
identificar as tabelas e respectivos atributos que devem ser
consistidos para a formulao da juno natural. O segundo
caso requer que a ferramenta identifique a seqncia E, A, O
B. Conversor de Consultas para SQL e V, o que permite a criao de um filtro que tem o atributo A
A funo do mdulo conversor de consultas para SQL da entidade E, o operador de comparao O e o valor V.
converter uma sentena estruturada em portugus para uma Finalmente, neste caso, a ferramenta mapeia os elementos A e
consulta SQL vlida equivalente. Sempre possvel criar um E, respectivamente, aos nomes do atributo e da tabela fsica
parser que mapeie uma frase de estrutura conhecida e sem correspondentes.
ambigidades para outra, tambm conhecida e sem
ambigidades ([13]-[14]-[15]). Assim, pode-se converter a IV. CONCLUSO
consulta com a estrutura definida na figure 8 para uma
Este artigo apresentou uma ferramenta para acesso a banco
consulta SQL padro.
de dados relacionais. Nesta ferramenta, todos os
relacionamentos so descritos atravs dos papis que as
entidades apresentam em ambos os sentidos de cada
relacionamento. Outro aspecto importante, que a informao
semntica do esquema conceitual usada no nvel fsico. Com
isso pde-se criar uma linguagem intermediria entre a SQL e
a linguagem natural que permite que o usurio recupere
informao de banco de dados relacionais, sem que seja
necessrio conhecer SQL nem o esquema de dados.
Dois critrios podem ser usados na avaliao de uma
ferramenta de criao de consultas: a capacidade funcional ou
a usabilidade [2]. O foco da ferramenta aqui apresentada foi
usabilidade. Assim, algumas funcionalidades no foram
implementadas como funes agregadas, clusulas group by
dentre outras, e as operaes que alteram o estado de banco de
dados. Entretanto, as que foram permitem que um grande
nmero de consultas seja criado. Alm disso, os conceitos
apresentados podem ser utilizados para implementaes de
mais funcionalidades.
Fig. 10. Autmato finito regular que representa a gramtica adotada Foram realizados alguns testes de usabilidade da
ferramenta com usurios com pouco ou nenhum conhecimento
A estrutura definida na figura 8 pode ser representada por sobre banco de dados, mas acostumados com o uso de
trs clusulas SQL: SELECT, FROM and WHERE. O mdulo computadores. Esses testes foram feitos com 20 usurios. O
usa as informaes especificadas na sentena e, em alguns objetivo foi avaliar a facilidade de aprendizado e de adaptao
casos, em tabelas auxiliares para construir cada clusula SQL. ou a satisfao do usurio no uso do produto. Todos os
Para a clusula SELECT, basta que a ferramenta identifique usurios conseguiram identificar os botes de comando,
o elemento Q na sentena. Se o elemento corresponder fazendo a associao correta entre a imagem e a
palavra Qual(is), a clusula SELECT ser SELECT *, e se funcionalidade implementada. Na formulao de consultas,
for Quanto(s)s, ser SELECT COUNT(*). testes foram feitos sem que o usurio tivesse conhecimento
Para a clusula FROM, a ferramenta percorre a estrutura da prvio do esquema. Neste caso, trs relataram dificuldade
consulta, identificando todos os elementos E. Na seqncia, quanto compreenso do significado de algumas opes de
mapeia esses elementos aos nomes das tabelas fsicas perguntas feitas pela ferramenta, ex. tem empresa (figura 3),
a qual pode ter diferentes interpretaes dependendo da
284 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

vivncia do usurio. Considerando que todos os nomes de


entidades e atributos foram mapeados diretamente do esquema
original, isso refora um ponto importante, que necessrio
cuidado especial com aspectos ontolgicos e na escolha de
nomes utilizados no esquema original. Esses resultados
preliminares demonstraram que a ferramenta atende aos
objetivos iniciais.

V. BIBLIOGRAFIA
[1] J. Reinschmidt, C. Comsia and A. R. Santos, A DB2 Enterprise Query
Environment - Build it with QMF for Windows, vol. 1, IBM Corporation,
International Technical Support Organization, 1998, pp. 24.
[2] T. Catarci et al, Visual Query System for Databases: A Survey,
Journal of Visual Languages and Computing, vol.8, pp. 215-260, Jun.
1997.
[3] M. Chavda and Peter T. Wood, A Visual Query Language for ODMG-
Compliant Databases QUIVER, in Proc. 1997 IEEE Symposium on
Visual Languages, pp. 125-126.
[4] Y. Dennebouy, et al, Super: Visual Interface for Object + Relational
Data Models, in Proc. (1995) Visual Database System - DBMS Visual
Interfaces. pp. 365-380.
[5] T. Angelaccio, T. Catarci and G. Santucci, QBD*: A Graphical Query
Language with Recursion, IEEE Trans. on Software Engineering, vol.
16, n. 10, pp. 1150-1163, Out. 1990.
[6] T. Angelaccio, T. Catarci and G. Santucci, QBD*: A Fully Visual
Query System, Journal on Visual Languages and Computing, vol. 1,
pp. 255-273, Out. 1987.
[7] T. Catarci, What Happened When Database Researchers Met
Usability, Information System, vol. 25, n. 3, pp. 177-212, 2000.
[8] M. M. Zloof, Query-By-Example: a Database Language, IBM System
Journal, vol. 16, pp. 324-343, 1977.
[9] T. A. Halpin, Business Rules and Object Role Modeling, Database
Programming & Design, vol. 9, n. 10, pp. 66-72, 1996.
[10] T. A. Halpin, Object-Role Modeling (ORM/NIAM), in Handbook on
Architectures of Information Systems, 1998, cap. 4.
[11] G. Booch, J. Rumbaugh and I. Jacobson, The Unified Modeling
Language User Guide, Addison-Wesley, 1999.
[12] H. R. Lewis and C. H. Papadimitriou, Elements of the Theory of
Computation, Prentice-Hall, 2q ed, 1997.
[13] A. H. M. Ter Hofstede and T. P. Van Der Weide, Exploring Fact
Verbalizations for Query Formulation, Department of Computer
Science, The University of Queensland, Brisbane, Australia. 1997.
[14] A. M. Turing, On Computable Numbers, with an Application to the
Entscheidungs problem, in Proc. London Mathematical Society, vol.
42, pp. 230-265 e vol. 43, pp. 544-546, 1936.
[15] A. M. Turing, On Computable Numbers, with an Application to the
Entscheidungs problem, in Proc. London Mathematical Society, vol.
43, pp. 544-546, 1936.

VI. BIOGRAFIAS
Solange Nice Alves de Souza. Graduao (1986) - Licenciatura em Fsica
pela Universidade Federal Fluminense, RJ ; Mestrado (1991) - Engenharia
Nuclear pela Universidade Federal do Rio de Janeiro, RJ; Ps-graduao
(Latu Sensu) (1991) - Anlise de Sistemas pela Pontifcia Universidade
Catlica do Rio de Janeiro, RJ; Doutorado (1998) - Engenharia Eltrica pela
Escola Politcnica da Universidade de So Paulo (USP). Docente da Escola
Politcnica da USP e do Centro Universitrio Fundao Instituto de Ensino
para Osasco (UNIFIEO) nos cursos de graduao e ps-graduao.

Edit Grassiani Lino de Campos. Graduao (1972), Mestrado (1975) e


Doutorado (1982) Engenharia Eltrica na Escola Politcnica da Universidade
de So Paulo (EPUSP). Orientadora de Ps-Graduao na EPUSP e docente
de Ps-Graduao strictu sensu (Mestrado Profissional) no Instituto de
Pesquisas Tecnolgicas do Estado de So Paulo (IPT).

Andr Roberto Doreto dos Santos. Mestre (2001) em Engenharia Eltrica


pela Escola Politcnica da Universidade de So Paulo.

Você também pode gostar