• Nenhum resultado encontrado

Instituto de Ciências Matemáticas

N/A
N/A
Protected

Academic year: 2023

Share "Instituto de Ciências Matemáticas"

Copied!
32
0
0

Texto

(1)

UNIVERSIDADE DE SÃO PAULO

Instituto de Ciências Matemáticas

e

de Computação

ISSN 0103—2569

Manualda FerramentaiDFQL Interactive DataFlow Query Language

AnªPaula Appel Caetano Traina Júnior

214

RELATÓRIOS TÉCNICOS

&

São Carlos

SP Set./2003

SYSNOÉÉLíôª—

DATA.—[___L—

ICMC - SBAB

(2)

Universidade do Estado de

São

Paulo

-

USP

Instituto de Ciências Matemáticas

e

de Computação

ICMC Departamento de Ciências

da.

Computação

e

Estatí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

(3)

Sumário

Lista de Figuras i

Lista de Tabelas ii

Resumo iii

1

Introdução

1

2 Expressando Consultas

através

de Fluxo de Dados 3

3

Construindo uma Consulta

com a

Ferramenta Interactive Data

Flow

Query Language - iDFQL 7

3.1 Modo de3.1.1

312

3.1.3 ConexãoEdiçãoParametrizaçãoEdiçãode&

...

umuma basefluxo dedos processosdedadosdados

... ... ...

1011158

3.2 Modo Execução da Consulta

...

18

4 Conclusão 23

Referências Bibliográflcas 25

(4)

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

...

8

Operadores disponíveis na ferramenta iDFQBorland Database EngineEscolha daOpen DatabaseBase deConnectivityDados BDE

...

- ODBC

... ... ...

1111129

SeleçãoOperadores carimbadosMenuPassosDoisParametrizaçãoParametrizaçãoParametrizaçãoParametrizaçãoOperador TabelaDiagrama completo da consultaPedidooperadores conectadospap-upparade execuçãoe Conexãoa criaçãocom as operações disponíveis sobre osdodododocom 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

...

. . . . 121313141516171817171819

Pedidode execução daconsulta completa

...

19

O resultado da consulta parcial a partir do processo de leitura da tabela

Aluno

...

20

Visualização parcial dos resultadosa partir do processo de junção

...

21

O resultado da consulta completa

...

22

(5)

2.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.

...

5

Menu File

...

10

Menu Edit

...

10

Menu Connect

...

10

Menu Help

...

11

Ícones

...

1 1 Operaçõesdo menupopvup

...

14

ii

(6)

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

(7)

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

(8)

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.

(9)

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

(10)

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 de

Atributos

(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çõesde

agre

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

(11)

[ 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 ED

Tabela2.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

(12)

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,

(13)

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.

(14)

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

de

tipos

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íconepara

esse 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

(15)

TabelaEste 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

(16)

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

(17)

| 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 '

_ uma

Mªgª:-WordAIW'WMM-wwmediblázMFqu

“5

DMMMnma—nmruupwgzwbàvllnmrmuvrpumHMV-DIFDPMDW-BMFmBru-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

(18)

ª»

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

(19)

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

(20)

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”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

(21)

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

(22)

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

(23)

|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

(24)

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»

[: , , zi

Figura 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

(25)

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ída

dos 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

Referências

Documentos relacionados

- Declaração amigável - Declaração de amor - Declaração de frequência - Declaração de guerra - Declaração de presença - Declaração de rendimentos - Declaração de

Figura A53 - Produção e consumo de resinas termoplásticas 2000 - 2009 Fonte: Perfil da Indústria de Transformação de Material Plástico - Edição de 2009.. A Figura A54 exibe

a) velocidade da chuva em relação ao solo; b) velocidade da chuva em relação ao carro. A haste encontra-se ini- cialmente em repouso, com o seu comprimento ao longo da

Para isso em quatro experimentos foram avaliadas: as características fisiológicas de cultivares de mandioca após a aplicação do mesotrione; a interferência do

Diversidade sexual na escola: currículo e prática pedagógica / Alexandre Bortolini ; orientadora: Vera Maria Candau.. Candau,

debêntures realizadas no período, bem como aquisições e vendas de debêntures efetuadas pela Emissora: (Artigo 12, alínea e, inciso XVII da Instrução CVM 28/83). •

Atente-se aos exercícios explicativos de cada conteúdo desenvolvido nas aulas on-line, bem como as atividades semanais e/ou quinzenais do caderno!!..

Os valores de energia de ativação se apresentaram superiores para as amostras com incorporação da fibra de sisal, enquanto que a incorporação da fibra de vidro demonstrou