UNIVERSIDADE DE SÃO PAULO
Instituto de Ciências Matemáticas
ede Computação
ISSN 0103—2569
Manualda FerramentaiDFQL Interactive DataFlow Query Language
AnªPaula Appel Caetano Traina Júnior
Nº214
RELATÓRIOS TÉCNICOS
&
São Carlos
—SP Set./2003
SYSNOÉÉLíôª—
DATA.—[___L—
ICMC - SBAB
Universidade do Estado de
SãoPaulo
-USP
Instituto de Ciências Matemáticas
ede Computação
—ICMC Departamento de Ciências
da.Computação
eEstatística
Manual da Ferramenta iDFQL
Interactive Data Flow Query Language1
Ana Paula Appel Caetano Traína Júnior
Avenida Trabalhador Sãocarlense, 400
,
13566590 São Carlos - SP[anaappeL caetano]©icmc.usp.br
ICMC—USP7 São Carlos
18 de Setembro de 2003 1Este trabalho foisuportado pelo CNPq
Sumário
Lista de Figuras i
Lista de Tabelas ii
Resumo iii
1
Introdução
12 Expressando Consultas
através
de Fluxo de Dados 33
Construindo uma Consulta
com aFerramenta Interactive Data
FlowQuery Language - iDFQL 7
3.1 Modo de3.1.1
312
3.1.3 ConexãoEdiçãoParametrizaçãoEdiçãode&...
umuma basefluxo dedos processosdedadosdados... ... ...
10111583.2 Modo Execução da Consulta
...
184 Conclusão 23
Referências Bibliográflcas 25
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21
Lista de Figuras
Tela principal da ferramenta iDFQL
...
8Operadores disponíveis na ferramenta iDFQBorland Database EngineEscolha daOpen DatabaseBase deConnectivityDados— BDE
...
- ODBC... ... ...
1111129SeleçãoOperadores carimbadosMenuPassosDoisParametrizaçãoParametrizaçãoParametrizaçãoParametrizaçãoOperador TabelaDiagrama completo da consultaPedidooperadores conectadospap-upparade execuçãoe Conexãoa criaçãocom as operações disponíveis sobre osdodododojácom a Base de dadosoperador Tabelaoperadoroperadoroperador Listaparametrizadoda consulta intermediária sobreda.no painelconexãoporde condição de seleçãode condição deum Fluxo
...
entrede... ... ...
Atributos Manuaisdois...
deoperadoresjunçãoDadosoperadoresa... ... ...
Tabela... ...
Aluno...
. . . . 121313141516171817171819Pedidode execução daconsulta completa
...
19O resultado da consulta parcial a partir do processo de leitura da tabela
Aluno
...
20Visualização parcial dos resultadosa partir do processo de junção
...
21O resultado da consulta completa
...
222.1
3.1 3.2 3.3 3.4 3.5 3.6
Lista de Tabelas
Significados e tipos de conexões dos operadores tradicionais da álgebra
relacional.
...
5Menu File
...
10Menu Edit
...
10Menu Connect
...
10Menu Help
...
11Ícones
...
1 1 Operaçõesdo menupopvup...
14ii
RESUMO
Apesarde muito trabalho já haversido efetuado na área de linguagens de consulta para Sistemasde Gerenciamento de Bancos de Dados Relacionais — SGBDR, existem apenas dois paradigmas básicos paraessas linguagens, que são a linguagem de comando e a de preenchimentodeformulários, representados respectivamente por SQL (Structured Query Language) e por QBE (Query by Example).
Este Trabalho apresenta um terceiro paradigma para representar consultasem bancos de dados relacionais, baseado em Diagramasde Fluxo de Dados. Ele permite a criação de uma linguagem gráfica para representação da consulta usandoesse paradigma (a Data Flow Query Language — DFQL), permitindo que a correspondente interfacede consulta a um SistemadeGerenciamentode Bancos de Dados Relacional tambémtenhauma maneira gráfica de interação com o usuário. A interface é suportada por uma ferramenta que permite a edição de diagramas de fluxo de dados, através de um conjunto de operadores representados graâcarnente. A execução das consultas representadasnos diagramase'feita analisandcrose gerando comandos equivalentesem SQL, os quais são submetidos a um Sistemade Gerenciamentode Banco de DadosRelacional, sendo os resultados gravados ou mostradosao usuário.
iii
Capítulo
1 Introdução
Embora bastante esforçotenha sido dispendidono desenvolvimento de linguagensdecon—
sulta a Sistemas deGercnciamendode Bancos de Dados — SGBD, excluindo linguagensde propósitosespecíficos,todas as linguagens existentessão extensões diretas de apenas duas linguagens básicas: a Structured Query Language — SQL [Chamberlin and Boyce, 1974]
e a Query by Example - QBE [Zloof, 1975]. Ambas as linguagens foram desenvolvidas quase ao mesmo tempo, nos primórdios do desenvolvimento do modelo e dos sistemas relacionais. A linguagem SQL é o padrão de fato para o acesso aos SGBDs Relacionais (SGBDRs) a partir deaplicativos,ea própria QBE esta presente na maioriados produtos dos fabricantesde SGBDRS, em geral em ferramentasauxiliares para acesso esporádica à base. Apesardas diferenças nos diversos SGBDs quantoà interfaceque as ferramentas em QBE apresentam para o usuário, elas seguem basicamenteo mesmo estilo tabular.
Umaspectoque em determinadas aplicações pode ser negativo, éque alinguagemSQL
é puramente textual, e não existe uma maneira natural de estende-la para permitir con- sultas envolvendo dados que não tenham uma descrição textual adequada. Por exemplo, consultasque envolvem referênciasa imagenssomente podemser escritas representando- seumaimagem atravésdeum texto que as identifique — comoporexemplo, o nome de um arquivo do sistema operacional que as armazena. Emboraisso seja adequado para uma linguagem de comando embutida entre um aplicativo e o SGBD, a quebra do paradigma da linguagem para uso como linguagemde consultacasual envolvendo usuarios humanos
éno mínimo desconfortável. A integraçãode umalinguagem que represente graficamente
os comandos de consulta com as imagens faz com que a representação das imagens seja mais natural. Por outro lado diagramas de fluxo de dadossão bastanteutilizados para a representaçãode processos em geral em vários camposde conhecimento.
Utilizando—se disto foi desenvolvida, uma nova forma de representação de consultas a SGBDRs, através de um terceiro paradigma para representar consultas em bancosde dados relacionais, baseado em Diagramas de Fluxo de Dados. Sobre esse paradigma, define-se também uma interface interativa que permite representar graficamente os co- mandos de consulta. Essa representação mantém o mesmo poder de representação das duas anteriores, uma vez que pode também ser convertidopara a mesma representação algébrica.
Assim esse relatório técnico tem por objetivo apresentar a definição de uma nova linguagem de consulta a bancosde dadosrelacionais que utiliza o paradigma de Huxo de dados, emostrar a ferramenta implementada para comprovaçãodalinguagem,que utiliza diagramas de Huxo de dados para a criação de diagramas de consulta e a execução das mesmas.
O restante dorelatório está organizado da seguinte maneira: o capítulo2 versasobre a representaçãodecomandos atravésdediagramasde fluxo de dados. Ocapítulo 3apresenta uma ferramentaque permite validara representação proposta e explorar a representação de consultas através do paradigma de fluxo de dados mostrando a construção de uma consulta na ferramenta iDFQL. Porfimocapítulo 4resumeas conclusões deste trabalho.
Capítulo
2
Expressando Consultas através de Fluxo de Dados
Diagramasde fluxo de dados são representações espaciais de processos interconectados por ligações denominadas fluxos, os quais indicam a passagemdos dados que chegam e saem de cada processo. Cada processo pode receber um conjunto de fluxos de dados
e pode gerar outros fluxos de dados. Todos os fluxos de dados têm um tipo de dado associado, e diz-se que o fluxo de dados é do mesmo tipo que o tipo de dados associado a ele. Existem diagramas em que todos os fluxos são do mesmo tipo, e outros diagramas em que uma coleção de tipos de fluxos, usualmente pequena, pode estar envolvida. Um diagrama de fluxo de dados em geral envolve processos de vários tipos, sendo que cada tipo de processo tem uma definição precisa de quais tipos de fluxo, e em que quantidade, podem sertanto recebidoscomo entrada paraserem processados, quanto produzidoscomo resultadodesse processamento. Dessa maneira,pode—se representar graficamentecomo os processos componentes estão interconectados para produzir um processo complexo.
As diversas operações de recuperaçãode dados em SGBDRs podemser consideradas como processos componentes,eas consultas podemserconsideradasprocessos complexos.
Assim, consultas podemser expressas atravésdediagramasde fluxo de dados. Essa forma de representação carrega consigo as vantagens típicas desses diagramas, principalmentea representaçãovisual e intuitiva das atividades (no caso, das consultas) e a interatividade na elaboraçãoeexecução das mesmas.
A linguagem definida permite a representaçãode consultas através de diagramas de
Huxos de dados, fazendo uso de uma linguagem grafica composta por: uma coleção de tipos de processos que realizam operaçõesdemanipulaçãode dados, de condições, preparo de conjuntos de atributos, etc.; uma coleção de tipos de fluxos de dados que permitem interconectar os processos; uma coleção de requisições de operações, que permitem exe- cutar todo ou parte do diagrama disponível, conectarcom uma base de dados, etc. Essa linguagem é chamada DFQL (“DataFlow Query Language").
Em DFQL,os operadores da álgebrarelacional são representadoscomo processos que podem ser conectadosem um diagrama. Corno operadoresde uma álgebra, todos os ope—
radores relacionais devem operar sobre elementos de um mesmo domínio — as relações- bem como gerar como resultado um elemento desse mesmo domínio. Em um diagrama de Huxo de dados, essa situação correspondea que todos os Huxos de dados sejam do mesmo tipo. Embora seja possível criar uma representação através de fluxos de dados que utilize todos os fluxos de dados como associados ao tipo de dados “relação“, a pro- posta apresentada aqui procurou flexibilizar essa restrição, para ampliar seu poder de representação.
Assim, osoperadores tradicionais da álgebrarelacional sofreram algumasmodificações conceituais em DFQL, permitindo que os processos equivalentes possam receber e gerar mais de um tipo de fluxo de dados. Os operadoresdejunção e o operador de seleção da
álgebra relacional incorporama especincação desuas respectivascondições de junção e de seleção como parte do operador. Em suaversão como processos, esses operadores foram alterados para que o tratamento das respectivas condições seja feita por um processo específico, gerando um duto de dados específico para o tipo de dado“condição",
DFQL define quatro tipos de dutos (ligações entre operadores no diagrama) para
expressar uma consulta em um diagramade fluxo de dados, que são:
.
Fluxo de Tuplas (ou de Dados) (D) - Esses dutos correspondem aos dados propriamente ditos, que são processados desde as tabelas armazenadas na base até que se obtenham as respostas à consulta;.
Fluxo de Condições (C) - Esses dutoslevam as condições que são utilizadaspelos operadoresde seleção e pelos vários operadoresde junção;.
Fluxo deAtributos
(A) —Esses dutosespecificam conjuntosde atributos que são utilizados, por exemplo, pelos operadoresde projeção;.
Fluxo de Funções (F) - Tais dutos especificam funções que são utilizadas, por exemplo, em operadores de cálculo de atributos resultantes de operaçõesdeagre
gados e estatísticas(embora ainda não tenham sido implementados operadores de agrupamento e cálculo de agregados, os dutos necessarios já estão operacionais).
4
[ Operador | Significado [ Conexão |
Tr Projeção ED, SD, EA
cr Seleção ED, SD, EC
>< Produto Cartesiano ZED, SD
& Junção ZED, SD, EC
Xl Junção Externa ã Esquerda 2ED, SD, EC
K Junção Externa a Direita ZED, SD, EC
[><] Junção Externa. Completa ZED, SD, EC
U União ZED, SD
D
Leitura de tabela armazenada na base de dados SD? Condição Manual SC
[)
Lista de Atributos Manual SA%
Saida de Resultados EDTabela2.1: Significados e tipos de conexões dos operadores tradicionais da álgebra rela—
cional.
DFQL define doze tipos de processos, os quais correspondema operadores da álgebra relacional, ou aelementos usados para comporesses operadores, Além disso, existem um operador usadopara efetuar as operaçõesde leitura de tabelas na base de dados, e um operadorparaproduziro resultado final da consulta. A Tabela 2.1 apresenta os tipos de processo definidos, a descriçãodecada um, e a indicação dostiposdedutos que podemser associados a cada tipo deprocesso atravésde conexões. Assim, indica—se otipo de conexão (D, C, A ou F), e se ela é de Entrada(E) ou Saida(S). Como exemplo, a junção natural recebe como Entradadois dutos (conexões) de tuplas (2ED) eum duto de condição (EC),
e gera como Saída um duto de tuplas (SD).
Ostiposde processo “Condição Manual"e“ListadeAtributosManual” foramdefinidos para produzir respectivamente dutos de condições e dutos de atributos. A indicação das condições e atributos é feita diretamente pelo usuário nas janelas de parametrização específicas, acessíveis por um toque duplo sobre seu ícone no painel. A combinação de um processo de seleção e um processode “condição manual” é equivalentea definição do operadorde seleção na álgebra relacional; a combinaçãode umprocesso de junção e um processo de “condição manual"éequivalentea definição dooperadordejunção na álgebra relacional; e a combinaçãode um processo “listade atributos manual” e um processode projeção éequivalente à definição dooperador de projeção na álgebra relacional. Note—se que um processo de junção requer adefinição do fluxo de condições associado. Portanto, em DFQL um processo de junção não é equivalentea um processo “produto cartesiano"
sem condições, como é assumido pela sintaxe de SQL. Um processo do tipo “saída de resultados" recebe 0 resultado da consulta. Em cada diagrama de fiuxo de dados em
DFQL deve existir exatamenteum processo do tipo “saídade resultados“.
A definição dosmúltiplos tipos de [luxo de dados permite aumentar opoder represen—
tativo danova linguagem para suportar novos tipos de processos, não previstos na álgebra relacional. Dentreessestipossurgem como aplicações imediatasos processos de mineração de dados e operações de suporte para armazenagem e recuperaçãode dados complexos, como por exemplo imagens, sequências de DNA, impressões digitais, entre outros. Por exemplo, um processo de descoberta de agrupamentos em mineração de dados gera uma coleção de condições para definir cada classe, condições essas quepodem ser entrada para
processos de qualquer tipo que recebamfluxos de tipo condição. Da mesma maneira, um processo de redução de dimensionalidade [Trainset al., 2000] gera uma lista de atribu—
tos, que correspondemàs dimensões escolhidas no processo e que pode ser entrada para
processos que recebem Huxo de tipo “lista de atributos“. Em aplicação que requerem a armazenageme representação de imagens, tanto processos que geramcondições quanto os que geram listas de atributos e de funções podem ser parametrizados através de prt»
cessos especíâcosque ofereçam suporte a imagens. A versão de DFQL apresentada neste trabalho incorpora apenas os recursos básicos, que a tornam equivalente em poder de ex—
pressãode consultasa linguagem SQL. No entanto, a extensão para suportar novos tipos de processos específicos para atividades de mineraçãode dados e para suporte a tipos de dadoscomplexos podeser feitacom facilidade, umavez que o desmembramentodos tipos de fluxo nos quatro tipos definidos foi feita levando em conta as necessidades para essas extensões,
Capítulo
3
Construindo uma Consulta com a Ferramenta Interactive Data Flow Query Language - iDFQL
Para mostrar a aplicabilidadedo paradigma de fluxo de dados paraa expressãode con—
sultas, foi desenvolvida uma ferramenta que implementa uma interface de consulta a um SGBD Relacional utilizando a linguagemDFQL. Essa interfaceé composta por um edi—
tor de consultas, que é formado basicamente por uma coleção de tipos de processos e por um painel onde o usuário pode montar o diagrama de fluxo de dados que representa uma consulta, instanciando, parametrizando e interconectando os tipos de processos. A ferramenta que incorpora o editor , e o modo de execução que permite executar cada consulta preparada como um diagrama de fluxo de dadosé chamada de Editor Interativo de Consultaspor Diagramas de Fluxo de Dados (iDFQL - Interactive Data-Flow Query Language). Embora o projeto dessa ferramenta inclua a extensão para suportarproces—
sos específicos para determinadas aplicações (comopor exemplo: processosde mineração de dados e operadoresde processamento de imagens, e mesmo os operadores de agre- gados e estatísticos), os tipos de processos descritose implementados estão restritos aos operadoresusuais da álgebra relacional até o presente momento,
Ainterfacecomousuário éfeita por uma ferramentaque permitea edição dediagramas de Huxo de dados e a execução desses diagramas, realizando as operaçõesdeconsulta na base de dados.
3.1 Modo de Edição
Durante afase de edição, o usuário pode escolher os processos que irão compor sua con—
sulte, escolhendoos respectivos tipos de processo, e “carimbá—los” no painel. Ao mesmo tempo o usuáriovai deânindo as conexões entreos processos instanciados e seus parâme—
tros. A ferramenta iDFQLUntemctive Data Flow Query Language), tem sua tela principal inicial mostrada na Figura 3.1, onde estão indicadasas áreas principais de interação com o usuário.
Figura 3.1: Tela principal da ferramenta iDFQL
A área.InaFigura 3.1correspondeaopainel onde aconsultaé construída., “carimbando-
se” os operadores que o compõem. A Figura 3.16, mostra. uma consultajá construída. O que éfeito sobre a área I datela da.Figura 3.1. Cada processo da consulta érepresentado por umícone, que indica a operaçãoque ele realiza..
A área II da Figura. 3.1 contém o
conjunto
detipos
de processos disponíveis, istoé os operadores disponíveis, ondeo usuárioescolhe os tipos de processos paraserem instanciadosecarimbados no painel. Note-se que como deveexistir sempre exatamente um processo do tipo “saídaderesultados”,aferramentaiDFQL mantém sempre umíconeparaesse processo,que não pode sernem instanciado (poisnão existe umícone correspondente no conjunto de tipos de processos na área II), nem removido do painel. Esse operadores estão detalhados na ligura 3.2.
A área III na. Figura 3.1 é usada para as mensagens da ferramenta.. Por exemplo, na área de mensagenssão mostradas as consultas equivalentes emSQL quando se solicita
Tabela—Este operador representa a entrada dos dados, na qual é feita a escolhae leitura databelano diagama,possuium dutoSaída do Fluxo de Tupias.
Condição —Este operador representaaescolha da condiçãodaseleçãoou dajunção, dependendo dooperadorque esteja conectadocom ele. Possui umduto deSaida do Fluxo de Condições.
Listade Atributo: - Este operador representa a escolha dos atributos da projeção.
Possui umdutodeSaída do Fluxo de Atributos. FW H..;
Seleção -Este operador representa aoperação de seleção. Possui três tiposde dutos:
umduto deEntradado Fluxo de Tupias, um deEntradado Fluxo de Condições e outro deSaidadoFluxo de Tupias.
Projeção - Este operador representa a operação de projeção. Possui três tipos de dutos: um duto de Entrada do Fluxo de Tupias, um de Entrada do Fluxo de Atributos e outro deSaída do Fluxo de Tupias.
Produto Canceriano - Este operador representaa operação de produto cartesiano.
Possui dois tipos de dutos: dois dutos deEntradado Fluxo de Tupias e umdutode Saída do Fluxo de Tupias.
Junção Natural- Este operador representaaoperaçãodejunção natural. Possui três tiposde dutos: dois dutosde Entrada do Fluxo de Tupias e um dutode Entrada do Fluxo de Condição e outro de Saída do Fluxo de Tupias.
Junção Externa Total-Este operador representaaoperaçãodejunção externatotal.
Possui três tipos de dutos: dois dutos deEntradado Fluxo de Tupias, um dutode Entrada doFluxo de Condição
:
outro deSaídado Fluxo de Tupias.Junção ExternaàEsquerda - Este operador representaaoperação dejunção extema àesquerda. Possuitrês tiposde dutos: dois dutos deEntradado Fluxo de Tupias, umduto deEntradado Fluxo de Condiçãoe outro deSaída do Fluxo de Tupias.
JunçãoEnemaàDireita -Este operadorrepresenta a operaçãodejunção extema a direita. Possui três tiposde dutos: dois dutosde Entrada doFluxo de Tupias, um duto deEntrada doFluxo de Condiçãoe outro deSaída do Fluxo de Tupias.
Saldo dos Resultados - Este operador representa a tabela resultante da consulta, possuiapenasoduto de Entradado Fluxo de Tupias.
Figura. 3.2: Operadoresdisponíveis na. ferramenta iDFQ
a execução dos diagramas e as consultas são submetidas ao SGBD. A área lV mostra os
menus para controlar a ferramenta e solicitar tarefas específicas, como por exemplo a solicitação de conexão com a base de dados.
Os menus mostrados na área IV da figura3.1 são descritosabaixo.
New Cria uma nova área para a criaçãode um diagrama de Fluxo de Dados Open Abre uma consulta (um diagrama) salvo
Save Salva um diagrama (consulta) criado no painel de edição Sabe as Salva um novo diagrama criadono painelde edição Exit Fecha a ferramenta z'DFQL
Tabela 3.1: Menu File
Select All Seleciona todos os módulos que fazem parte da consulta(diagrama) criada no painel de edição
Tabela 3.2: Menu Edit
WisconnctDatabase | Desconecte da Base de Dados | Tabela 3.3: Menu Connect
Além destes menus, existem alguns ícones na área IV da Figura 3.1 que servem de atalho para alguma dessas operações. Estes ícones são descritosa seguir na tabela 3.5.
3.1.1 Conexão a uma base de dados
Antes de usara ferramenta iDFQL, énecessário armazenar osdados a serem visualizados em uma relação de uma base de dados, a qual deve estar registrada no BDE. Para se conectar pela primeiravez auma basededados na ferramenta,épreciso criar umaconexão BDE (veja “BDE Administrator“ no Painel de Controle do Windows) ou ODBC (veja tambémo “Adminsitradorde fonte dedadosODBC”) como mostrado nas Figuras3.3, 3.4 respectivamente.
O usuário pode escolher entre se conectar com a base logo que entra na ferramenta (Figura3.5), ou se conectar quando for parametrizar os operadores. Para fazer a escolha da base de dados, o usuário deve selecionar um dos itens da caixa de seleção “Select Database"e depois clicar no botão “Connect” como mostrado na Figura 35. Se houver algum controlede acesso na.base selecionada,osistema pede aidentiHcação ea senha do usuário.
10
| About [ Mostra a telacom infomações sobre a ferramenta iDFQL] Tabela 3.4: MenuHelp
New Cria. uma nova áreaparaa criaçãode um diagrama de Fluxo de Dados Save Salva umdiagrama. (consulta.) criado no painel de edição
& ª
"',;Open Abre uma consulta (um diagrama) salvo Tabela 3.5: Ícones
»:Rdllmlylmlurdeum-LA minammc
. ' V '
um
naum
!nm']
] , usua—º'Md-u'u—h[ ma.—m'[ sur-,!i'll
Fu—ájhthm '
_ umaMªgª:-WordAIW'WMM-wwmediblázMFqu“5
DMMMnma—nmruupwgzwbàvllnmrmuvrpumHMV-DIFDPMDW-BM“FmBru-I'll]Dlivurd.
' '—1
——-——ª—-|-.—-.—=—-|W. W..
ª...-» ». ,
ªmº—.ÉWMSAM MMMDMI'.»MMMDMI'I—
'
ªt:
unam:ÍZl
mundana-nh "umª“
hwabnumm-mwm
Figura 3.3: Borland Database Engine - Figura 3.4: Open Database Connectivity -
BDE ODBC
A barra.de status mostrada na.área III daFigura 3.6 indica. com que basede dados o usuário se conectou. Paratrocar de base ou apenas se desconectaro usuário deve clicar no botão “Disconnect” mostrado na Figura 3.6 área I ou na opção “Disconnect” do menu
“Connect” mostrado também na Figura. 3.6 área II,
3.1.2 Edição de um fluxo de dados
Osprocessos são instanciados ecolocados no painel clicandono ícone dotipodesejado no conjunto de tipos de processos disponíveis,e carimbando—os como uma instância de pro- cessono painel. A seguir, carla processo pode ser parametrizado em umajanelaespecífica., acessível através de um toque duplo sobre seuícone nopainel. .
A representação de uma consulta típica em DFQL pode ser planejada e representada da mesma maneira que em álgebra relanional. Por exemplo, considerando-seumabase
de dados de matrículas que possui uma tabelade alunose uma tabela das matrículas em
11
“ ª»
TC
*
ª
U, ';,ª]
O
VÉ?
4
-_1_ , Hª'
Mi
Mªn.-_-
,7
;;Figura3.5: Escolha da Base de Dados
ma.umr “mmm
Figurª3.6: Seleção e Conexãocom a Base de dados
disciplinas feitas pelosalunos, com asrespectivas notas obtidas, a consulta.: “Quais são as notas que cada aluno obteve em cada disciplina em que foi aprovado ?”pode ser expressa em SQL como:
SELECT *
FROM Aluno A, AulaMínistrada H
WHERE A.NumA1uno= M.NumAlu.no AND YLNota >= 6.0;
Uma possível expressão dessa consulta em álgebra relacionalé a seguinte:
ª(M.Num>6.0)(Alunº É<A.NumAtum=M.NumAzum) AulaMinistTada)
12
Utilizando a representação pelo paradigma de fluxo de dados, omesmo exemplo pode ser representado como mostrado no paineldaFigura3.16. Verifica-seportantoque&repre—
sentaçãoem fluxode dados deumaconsulta típica épraticamente a mesma representação gráficada.notação algébricadaconsulta.. A representaçãográfica.preserva também todas
as possibilidades de otimização que a notação algébrica propicia.
Para carimbaros operadores no editor deconsultasénecessario antes o usuário clicar sobreosímbolo do operador desejadonapaleta mostrada na área IIdaFigura 3.1 edepois no painel representado pela área I da,Figura. 3.1.
_«J _
Figura 3.7: Operadores carimbadosno painel
Dessa. formaousuário vai instanciando osoperadoresque farãoparte daconsulta que estásendo construída como mostraa Figura 3.7.
&
u _ _
,,__á ,.,-,,.,£
“,, W“,
__..v _ ÉFigura 3.8: Menupop-up com as operaçõesdisponíveis sobreos operadores
13
Depois de carimbado no painel é possível fazerdiversas operaçõescom este operador.
Essas operações estão disponíveis no menu pop—up que se abre ao clicar sobre o operador
com o botão direito do mouse. Esse menu pode ser visto na figura
38
e tem suas opções explicadas abaixo na tabela3.1.2.Retrieve recuperação de um operadorsalvo Save salvar apenas o operador
Edit modificaro operador Rename renomearo operdor Delete deletar o operador Connect conectar dois operadores
Query executar opedido de consulta sobreo operador Tabela 3.6: Operações do menu pop-up
Depois de ter os operadores escolhidos carimbadosno painel, esses operdores devem ser conectadosdeforma a montar odiagrama que replesentará &consulta. Para criar uma conexâo(íiuxo) entre dois operadores bastaclicarcom obotão direito do mouse sobre um dos operadores a serem ligados e escolher a opção “Conectar” que aparecerá no menu
pop—up como mostra 0 área I da Figura 3.9 e em seguida clicar sobre o outro operador representado pela área II da Figura 3.9. Com isso é abertauma nova janela mostrada Figura 3.9 área III chamada “ConnectFomn” já com o tipo defluxo a ser criado entre os dois operadores.
aa
III
ª olv-rl IV DIY-ivi V
Figura 39: Passos paraacriação da conexão entre dois operadores
Esse nova janela abertacontém a ferramenta para fazer a. criação do fluxo entre os dois operadoresescolhido. Paraefetuar essa criaçãoousuáriodeve conferir se o nome do
14
operador de entrada indicado pelo área V na Figura 3.9 está correto, caso não estejao nome corretodeve ser selecionado na caixade seleção ”INPUTS”. O mesmo procedimento deve ser feito com o nome do operador de saída na caixa deseleção “OUTPUTS”Figura
3.9 áreaIV.
Depois de escolheros operadores que se deseja conectar o usuário deve clicar no bo- tão de criação do fluxo indicado pela Figura 3.9 área VI para fazer a ligação entre os operadores. A criação da conexão entre os operador é confirmada clicando-se no botão
“OK” mostrado na área VII da Figura 3.9 que fecha essa tela de conexãoe retorna para a ferramenta que agora exibe o Huxocriado entre o operador Tabela de Entradae Jun—
ção Natural como mostrado na Figura 3.10. A área VIII da Figura 39 mostra o botão
“Cancel” que cancela a operaçãode criação de um fluxo entre dois operadores.
varie—m
w
.Figura 3.10: Dois operadores conectados por um Fluxo de Dados
Valelembrarque esseprocessodeconexãodos operadoresdeveser executadoem todos os operadores existentes no painel construindo assimo diagrama de fluxo de dados.
3.1.3 Parametrização dos processos
Como parte da “montagem”da consulta, ousuáriodeve também parametrizar osoperado—
resutilizados. Cada tipo de processo demanda um conjunto de parâmetros especíiico. Por exemplo, processos do tipo “leitura de tabela” precisamda definição da tabelaque deve
ser lidaem cada processo ínstanciado; processos do tipo “condição manual” precisam da.
definição das condições a serem submetidas aos processos que recebem o correspondente fluxo de condição gerado;e os processos do tipo “Lista. de atributos manual” precisamda.
definição dos atributos escolhidos.
15
Cada tipodeprocesso tem&especifrcação de seus parâmetros emuma janela específica, ativada através de um toque duplo no ícone do processo em questão. Para ilustrar, a escolha da tabela. a ser lida num operadorde leituraé mostrada na janela ativada Figura
3.11. Para que o usuário possaescolher a tabeladentre as disponíveis na base de dados, como mostrado nessa figura, é necessário queo usuáriojá tenharealizado a conexão com uma basede dados usandoo comandode conexão, disponível na área IV da ferramenta, conforme apresentado na Figura
Bl.
A parametrização dos operadores pode ser feita em qualquer parte do processo de criação do diagrama de Huxo dedados,paraissobastaque aferramentajáesteja conectada com umabase de dados. Não são todos os operadores que podem ser paramentrizados, apenas o operador Tabela de Entrada, de Condição e Lista de Atributos Manuais. Os outros operadores apenas processamas informações vindas desses operadores segundo a operação que representa.
Figura 3.11: Parametrização do operador Tabela
Parao operador Tabela de entrada, ajanela de parametrização exibida contém uma caixa deseleção com todas as tabelas existentesnabase selecionadacomomostra a Figura 3.11.
O operador de “Condição” deve ser paramentrizado parauma condição de seleção ou dejunção escolhendo respectivamente a opção “Value”ou “Atributies”. Paraa condição de seleção o usuário deve selecionaro nome da tabelaeo atributode condição, operador eatribuirum valorparaa condiçãocomomostrado na Figura 3.12. Japaraa condição de junção, o usuário deveráescolher as duastabelase em seguidao atributo decada tabela
que será comparado formando acondição como mostrado naFigura 3.13.
No operador Lista de Atributos Manuais aparametrização é feitaescolhendo os atri-
16
|J: |nmllllun (81)
Figura 3.12: Parametrização do operador de Figura3.13: Parametrização do operador de
condiçãode seleção condição dejunção
m:[ut(uz/')
ªuu-7
asma-aim
Nun:Jabá-inmu- mn.
*—“Whlurllh
'Emhir—lu
Figura 3.14: Parametrização do operador Lista de Atributos Manuais
butos dentre as diversas tabelas contidasnabasede dados. Essa escolhaéfeita escolhendo uma tabela por vez e selecionado o(s) atributo(s) desejado(s)na tabela e direcionando esse atributo paraa listade atributos escolhidos(“Selected Attributes”) através dos botões de “Seleção de Atributos”como mostrado pela Figura3.14.
Depois do operadorser parametrizado é exibida uma legenda como conteúdo doope- rador embaixo doícone que 0 representa. Como porexemplo o nomeda tabelaescolhido no operador Tabela de Entradacomo mostrada na Figura3.15.
O processo de parametrização deve ser feito em todos os operadores de Tabela de Entrada, Condição e Lista. de Atributos Manuais existentes no diagrama de fluxo de dados.
Quando osparâmetros e conexões detodos os processos instanciados no painel tiverem sido definidos,o usuário pode então solicitar a execução daconsulta criada.
17
x_i
Ar?5511 ICMM
,,,,,,»,,>_,,'
, , 1 #Figura 3.15: Operador Tabela jáparametrizado
3.2 Modo Execução da Consulta
Após o diagrama estar construído como mostrado na 316, isto é todos os operadores estarem conectadose parametrizados, a opção de executar a consulta é habilitada.
*
WMM»
[: , , ziFigura 3.16: Diagrama completoda.consulta
Opedidode execuçãodeuma consulta éfeito atravésdeumclique sobre um operador e a escolha.da opção query no menu exibido conforme podemser vistosna Figura 3.17.
Existem duas maneiras de solicitar a execuçãode comandosna ferramenta iDFQL:
execução completa ou execução parcial paravisualizaçãode resultados intermediários.
A visualizaçãode resultados intermediários pode ser solicitada a partir de qualquer processo existente no diagrama de fluxo de dados. Paraisso o usuário deve indicar o
18
Figura3.17: Pedidode execuçãodaconsulta. intermediáriasobre a Tabela Aluno processo que se pretende verificaro resultado. A Figura 3.17 exemplificaesse modo de consulta. Nesse exemplo foi solicitada a visualizaçãodo operador de leitura da tabela Aluno (parametrizada anteriormente como mostrado na. Figura 3.11).
Aexecuçãocompleta ocorre quando a solicitaçãoéfeita apartirdooperador
ª,
“saídados resultados”. Como mostrado nafigura3.18.
;: ,
,,,,AW
., ,,emM.,WW.“,,“, ““É,—
Figura 3.18: Pedido deexecução da.consulta. completa
Nos dois tipos de execução existentes na ferramenta, execução parcial ou total, o re—
sultado podeser vizualizadonuma janela,
e/
ou armazenadoem algum arquivoougravado numa tabela. A figura3.19 mostra.o resultado da consulta parcialsobre a tabelaaluno.19