Artigo Original / Original Article Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional Pedagogical Instrument to Support the Learning Process of Relational Algebra Renato Vidal Kinaippa*; Adriana Gomes Alvesb Resumo A Álgebra Relacional é um conteúdo abordado na disciplina de Banco de Dados nos cursos de computação. Trata-se de uma linguagem formal de consultas procedurais para o modelo relacional, e seus conceitos são baseados na teoria da matemática e na lógica de predicados. Como o conteúdo da Álgebra Relacional é conceitual e muito complexo, para que os alunos tenham um bom entendimento dela, é necessária muita prática através de exercícios de fixação, normalmente realizada sem o uso de qualquer ferramenta. Os professores encontram, nesta tarefa, dificuldades na correção e na avaliação dos alunos. Devido a esses problemas, este trabalho propõe uma ferramenta que visa a auxiliar os alunos na aprendizagem da Álgebra Relacional através da resolução de exercícios, permitindo a correção automática das expressões e visualização dos resultados. A ferramenta permite a geração de relatórios com o desempenho dos alunos na resolução dos exercícios, e, com isso, o professor pode verificar onde cada aluno está errando e pode ajudá-los da melhor maneira possível, tornando a assimilação da Álgebra Relacional pelos alunos mais fácil e agradável. Palavras-chave: Álgebra Relacional. Informática na Educação. Banco de Dados. Abstract Relational Algebra is a topic taught in database classes inside computer related courses. It is a formal language for procedural consultation for the relational model, and its concepts are based on mathematical theory and predicate logic. As the Relational Algebra topics are conceptual and very complex for the students to understand, it takes a lot of practice through exercises, usually performed without the usage of tools. Teachers find this task difficult to correct and to evaluate. Because of these problems, this paper proposes a tool that aims to assist students in learning the Relational Algebra by solving exercises, allowing automatic correction of the expressions and results. The tool allows the generation of reports with the performance of students in solving exercises, and, therefore, the teacher can see where each student is wrong and can help them the best possible way, making the assimilation of Relational Algebra easier and more enjoyable. Key-words: Relational algebra. Computers in education. Database. a Bacharel em Ciência da Computação - Universidade do Vale do Itajaí (UNIVALI). E-mail: [email protected] b Mestre em Engenharia de Produção - Universidade Federal de Santa Catarina (UFSC). Docente da Universidade do Vale do Itajaí (UNIVALI). E-mail: [email protected] * Endereço para correspondência: Rua: Hildebrando José da Silva, 765. CEP 88.304-200. Itajaí - SC. 1 Introdução A Álgebra Relacional faz parte do conteúdo programático da disciplina de Banco de Dados nos vários cursos de graduação em computação. Ela é a base formal das linguagens comercias de banco de dados relacionais, i. e. SQL (Structured Query Language), e ilustra as técnicas fundamentais para extração de dados (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). Uma metodologia adotada para a aprendizagem da linguagem da Álgebra Relacional se dá através da resolução de exercícios de fixação. Os alunos têm dificuldade em compreender o funcionamento da linguagem, pois não conseguem testar se a sintaxe está correta, tampouco visualizar os resultados obtidos com a resposta elaborada, haja vista que os exercícios são realizados em papel, ou, no máximo, em editor de textos. Por outro lado, para que o professor possa dar retorno aos alunos, faz-se necessária a correção das listas de exercícios, tarefa exaustiva e morosa. O Sistema para Apoio à Aprendizagem de Álgebra Relacional (KINAIPP, 2009) foi pensado para atender as dificuldades dos alunos e professores na resolução e correção de exercícios de Álgebra Relacional. Através de interface simples, o sistema permite, ao aluno, elaborar expressões em Álgebra Relacional, no intuito de atender à pesquisa solicitada na questão elaborada pelo professor. O sistema corrige automaticamente as respostas, apresentando os dados recuperados do banco de dados (quando a resposta é correta) ou uma mensagem apontando o erro encontrado. A disponibilidade do sistema através da Web confere, ao aluno, a liberdade de realizar seus estudos no momento que lhe é mais adequado, bem como proporciona ao professor, a facilidade de acessar as respostas dos alunos a qualquer momento, para fazer suas avaliações. Foi realizada oficina de utilização do sistema junto aos alunos da disciplina de Banco de Dados I do curso de Ciência da Computação, na qual pode-se observar algumas contribuições que a ferramenta possibilita a aprendizagem de Álgebra Relacional. KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 41 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional 2 Objetivos O objetivo deste estudo foi desenvolver instrumento pedagógico que visa auxiliar a aprendizagem de álgebra relacional para alunos da disciplina de banco de dados em cursos de Ciência da Computação. Teve-se como hipótese a elaboração de um software voltado para a web, portanto alguns objetivos específicos foram traçados, dentre eles o estudo de ferramentas similares que pudessem fornecer elementos para a especificação do software, visando obter um diferencial com relação às opções já disponíveis. Outro objetivo específico foi o estudo de ferramentas e técnicas que possibilitassem a construção do software a partir dos requisitos para ele analisados. Buscou-se como objetivo específico, além dos já apontados, a validação do instrumento através da análise do mesmo junto a seu público alvo. 3 Fundamentação Teórica 3.1 Banco de dados Banco de Dados é um sistema computadorizado que tem a finalidade de armazenar informações e permitir que as mesmas sejam buscadas e alteradas quando solicitado pelo usuário. Um sistema de banco de dados envolve os dados (que ficam armazenados), o hardware (volumes de armazenamento secundário, processadores), o software e os usuários (programadores, administradores e usuários finais) (DATE, 2003). Os usuários que utilizam sistema de banco de dados podem realizar diversas operações com os registros gravados no banco, como exemplo, acrescentar novos registros, inserir, excluir ou alterar dados de registros existentes, dentre outras operações. Para os usuários realizarem tais operações, utilizase a camada de software, chamada de SGBD - Sistema Gerenciador de Banco de Dados, que trata todas as requisições de acesso ao banco de dados. O SGBD, portanto, isola os usuários dos detalhes de nível de hardware, oferecendo visão mais elevada, admitindo expressões de alto nível, como o SQL (DATE, 2003). Cada tipo de SGBD tem seu modelo de dados. O modelo de dados é um conjunto de conceitos que determina como os dados serão organizados e representados no BD (banco de dados). O modelo de dados mais popular é o modelo relacional, que é baseado na lógica e na matemática, e por consequência, ideal para o ensino de princípios de banco de dados (DATE, 2003). 3.1.1 Modelo relacional O modelo relacional é a base da tecnologia moderna de banco de dados, e é essa base que faz dessa área ciência (DATE, 2003). O seu conceito foi introduzido por Ted Codd, da IBM Research, em 1970, e pela sua simplicidade e base matemática atraiu muita atenção (ELMASRI; NAVATHE, 2005). 42 No modelo relacional os dados são representados como linhas em tabelas. Nesse modelo, os operadores que ficam a disposição dos usuários geram “novas” tabelas a partir das tabelas “antigas” (DATE, 2003). Ele é baseado na teoria dos conjuntos e na lógica de predicados de primeira ordem, e se dedica principalmente ao exame da estrutura, integridade e manipulação de dados (ELMASRI; NAVATHE, 2005). A estrutura de dados apresenta todo o conceito do modelo (determinando o domínio, os atributos, as tuplas, as relações e as chaves). A integridade faz as restrições básicas para os dados e os relacionamentos, mantendo a consistência do modelo. Também faz a garantia de acesso a todos os dados sem ambigüidade, e a garantia de relacionamentos válidos (PIREZ, 2006). A manipulação de dados é a parte do modelo relacional que, além de manipulá-los, inclui os conceitos de modelos de dados que definem as restrições do banco (ELMASRI; NAVATHE, 2005). A manipulação é feita através das linguagens de consultas formais e também pelo SQL. 3.1.2 Linguagens de consulta Linguagem de consulta é a linguagem que o usuário utiliza para fazer requisições no banco de dados. Elas podem ser procedurais ou não procedurais. Na linguagem procedural o usuário deve “ensinar” ao sistema como realizar uma seqüência de operações no banco de dados para que obtenha o resultado desejado. Enquanto que na linguagem não procedural, o usuário apenas escreve as informações que deseja obter, sem precisar fornecer nenhum procedimento específico (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). 3.1.2.1 Álgebra relacional A álgebra relacional é uma linguagem formal de consultas procedural e faz parte da manipulação no modelo relacional. Basicamente consiste em um conjunto de operações, que geram nova relação a partir de uma ou mais relações já existentes no banco de dados. Assim, as operações da álgebra relacional nada mais são do que produção de novas relações que podem ser manipuladas pelas mesmas operações da álgebra (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). Sequências dessas operações formam uma expressão de álgebra relacional. A álgebra relacional é muito importante por diversas razões: provê fundamento formal para operações do modelo relacional; é usada como base para implementar as consultas nos sistemas gerenciadores de banco de dados relacionais; e seus conceitos são incorporados na linguagem de consulta padrão SQL (Structured Query Language) (ELMASRI; NAVATHE, 2005). O objetivo fundamental da álgebra é permitir a escrita de expressões relacionais. Essas expressões servem uma variedade de propósitos, dentre eles a busca de dados - KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional com base nas operações de busca, definir os dados a serem pesquisados; e atualização de dados - fazer a inserção, alteração ou eliminação dos dados com alguma operação de atualização (DATE, 2003). A álgebra relacional define algumas operações, que servem para fazer as consultas e as alterações no banco de dados. As principais operações da álgebra relacional podem ser divididas em 2 grupos: 1) grupo das operações da teoria de conjunto matemática: união (union), interseção (intersection), diferença de conjunto (set difference) e produto cartesiano (cross product); e o grupo das operações desenvolvidas especificamente para os bancos de dados relacionais: seleção ou restrição (select), projeção (project), junção (join) e divisão (division) (ELMASRI; NAVATHE, 2005). A tabela 1 apresenta a funcionalidade de cada operação, com suas respectivas notações e sintaxe: Tabela 01: Álgebra Relacional - Notação e sintaxe dos operadores Operação Notação Sintaxe Seleção s s <condição de seleção> (Relação) Projeção p p <lista de atributos> (Relação) Junção natural |×| (Relação A | × | Relação B) Divisão ÷ (Relação A ÷ Relação B) União ∪ (Relação A ∪ Relação B) Interseção ∩ (Relação A ∩ Relação B) Diferença - (Relação A - Relação B) Produto Cartesiano × (Relação A × Relação B) 3.1.2.2 Cálculo relacional O cálculo relacional, linguagem de consulta baseada na lógica matemática é não-procedural, ou seja, a partir de uma expressão do cálculo relacional, pode-se descrever consulta sem precisar especificar os procedimentos para obtenção das informações. De acordo com Date (2003) existem 2 tipos de cálculo relacional: Cálculo Relacional de Tuplas e Cálculo Relacional de Domínio. As diferenças entre o cálculo relacional e a álgebra relacional são apenas superficiais, pois eles são logicamente equivalentes. Isto é, cada expressão do cálculo relacional há uma expressão equivalente em álgebra relacional, e vice-versa. 3.1.2.3 Structured Query Language A Structured Query Language (SQL – Linguagem de consulta estruturada) foi desenvolvida na IBM Research no início da década de 1970. É uma linguagem comercial que utiliza combinação de construções da álgebra e do cálculo relacional, e fornece linguagem declarativa de alto nível, facilitando as consultas aos usuários (SILBERSCHATZ; KORTH; SUDARSHAN, 2006). Tornou-se linguagem padrão, pela fácil migração de aplicações de banco de dados, e pela independência de hardware e software. Com isso, passou a ser a linguagem mais apropriada e utilizada em SGBDs relacionais comerciais. Segundo Silberschatz; Korthe e Sudarshan (2006) a SQL é especificada por duas linguagens: 1. Linguagem de definições de dados (DDL – Data Definition Language): permite ao usuário definir novas relações, como também excluí-las e modificá-las; e 2. Linguagem de manipulação de dados (DML – Data Manipulation Language): permite ao usuário selecionar, inserir, excluir e modificar dados no banco de dados. A DML é baseada na álgebra e no cálculo relacional. A estrutura de uma consulta SQL basicamente se dá por 3 cláusulas: select, from e where. Segue exemplo de expressão em SQL utilizando essas cláusulas: SELECT Nome FROM TabAluno WHERE Nome=Maria A tabela 2 mostra o objetivo de cada cláusula da estrutura do comando Select na linguagem SQL: Tabela 02: SQL – Cláusulas Cláusula Utilidade Sintaxe SELECT Lista os atributos desejados em uma consulta SELECT Atributo FROM Lista as relações que serão usadas para buscar os atributos FROM Tabela WHERE É um predicado que envolve os atributos das relações WHERE Condição 3.2 Ferramentas similares Na disciplina de banco de dados do curso de Ciência da Computação da Universidade do Vale do Itajaí - Univali, bem como de outras instituições, um dos conteúdos estudados é o banco de dados relacionais, seu projeto e manipulação de dados. Para que o acadêmico tenha bom embasamento da linguagem para definição e manipulação de bancos de dados relacionais, estuda-se a teoria por trás da linguagem comercial SQL, a saber, Álgebra Relacional. No entanto, verifica-se grande dificuldade de compreensão desta matéria, por tratarse de algo muito teórico. Acredita-se que ferramentas que ilustrem os conceitos abordados na disciplina possam tornar o aprendizado mais fácil e agradável. Para a construção do software para aprendizagem de álgebra relacional, um objetivo específico do trabalho foi analisar ferramentas similares tanto para álgebra relacional, quanto para SQL, permitindo avaliar a abordagem de cada uma com relação a aprendizagem dos alunos. As ferramentas estudadas são apresentadas a seguir: KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 43 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional 3.2.3 Ferramenta para o ensino de álgebra relacional 3.2.1 SQLWeb A ferramenta SQLWeb possui ambiente para resolução de exercícios de SQL, oferecendo aos alunos e professores banco de dados de questões (SOUZA, 2009). Apesar de não se tratar de ferramenta para aprendizagem de álgebra relacional, por ser já utilizada pelos autores no ensino e aprendizagem de banco de dados, serviu como fonte de idéias para a construção da ferramenta apresentada neste artigo. Os principais itens são: (1) resolução de exercícios; (2) apresentação do modelo relacional para resolução de exercícios; (3) possibilidade do professor inserir novos modelos de banco de dados e exercícios; e (4) realização de correções automáticas e avaliações. 3.2.2 Interactive Data Flow Query Language A ferramenta Interactive Data Flow Query Language - iDFQL, desenvolvida por Appel e Traina Junior (2004) é de consulta para SGBDs baseada na álgebra relacional e tem aparência visual, sendo basicamente formada por coleção de operadores representados por símbolos e as consultas são representadas por diagramas de fluxo. O processo de construção de consultas na ferramenta iDFQL é bem simplificado. Primeiramente o usuário precisa fazer a conexão com alguma base de dados utilizando a própria ferramenta. Logo após, escolhem os operadores e os colocam no painel de construção. Para a consulta ser realizada com sucesso é necessário que todos os operadores estejam interligados corretamente. Caso contrário será apresentado “erro de consulta”. A figura 1 mostra exemplo de consulta utilizando a ferramenta iDFQL. Esta ferramenta foi desenvolvida durante o Curso em Ciência da Computação da Universidade Luterana do Brasil. É uma ferramenta visual e tem por objetivo auxiliar no ensino da álgebra relacional (SCHARDOSIM, 2006). Para o funcionamento da ferramenta, alguns requisitos são exigidos: Banco de dados Oracle 9i ou 10g; Biblioteca estática d2kwutil.ppl e seus componentes; Ferramentas da Oracle Forms Runtime 6.0 e Forms Builder; e editar o arquivo tsnames.ora, para que os alunos cadastrados possam acessar o banco. Não foi possível testar esta ferramenta porque ela não foi encontrada disponível na internet. A explicação a seguir é totalmente baseada no texto da autora: Esta ferramenta utiliza os operadores da álgebra relacional para formular as expressões. Após o término da formulação da expressão, esta é validada sintaticamente, e também em nível de banco, onde os objetos envolvidos na consulta precisam estar disponíveis no banco em que foi feita a conexão. Na validação são mostradas mensagens de aviso ao aluno. Após as validações, o aluno pode visualizar os dados que retornam da sua busca, sua consulta em SQL e também relações de objetos que foram utilizadas (SCHARDOSIM, 2006). 3.2.4 Ferramenta de correção automática de consultas em álgebra A ferramenta para correção automática de consultas em álgebra (SOLER et al., 2007), propõe-se a oferecer aos professores e alunos a resolução de problemas em álgebra relacional em um ambiente voltado para Web. Esta ferramenta foi introduzida numa plataforma e-Learning denominada ACME, a qual visa integrar novos tipos de problemas com o mínimo de modificações. A ferramenta permite a criação de descritores de problemas e suas respectivas soluções, montando uma base de problemas a serem resolvidos. A partir desses problemas, podem-se criar diversas bases de problemas, as quais possibilitam gerar diferentes “workbooks” para cada estudante. Para visualização do modelo de dados, no módulo do aluno, apresenta a lista de tabelas e, clicando em cada uma delas, a lista dos respectivos atributos. O módulo de correção analisa as respostas fornecidas pelos alunos e oferece ao mesmo feedback, tanto com relação a erros sintáticos como Fonte: Appel e Traina Junior (2004) Figura 01: Consulta utilizando a ferramenta iDFQL Não se obteve sucesso nos testes realizados, pois a ferramenta apresenta mensagens de erro que impossibilitam a sua solução e a visualização do resultado da consulta. Também não foi encontrado nenhum material apresentado qual solução tomar quando encontrar determinado erro. 44 erros nos quais os dados obtidos não conferem com o resultado esperado. 3.2.5 Comparativo Com base nos estudos das ferramentas verificadas, é apresentado na tabela 3 comparativo entre elas e a ferramenta proposta. Apontando as vantagens e desvantagens de cada uma. KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional Tabela 03: Comparativo das Ferramentas Similares (a) SQLWeb (b) iDFQL (c) Ferramenta p/ Ensino Álgebra Relacional (d)Ferramenta correção automática consultas álgebra (e) Ferramenta Proposta Plataforma WEB Sim Não Não Sim Sim Baseada exercícios Sim Não Não Sim Sim Transparência p/ usuário executar ferramenta (forma gráfica)? Sim Não Não Não Sim Correção automática questão Sim Sim Sim Sim Sim Informa parte do erro? Sim Não Sim Sim Sim Oferece relatórios de desempenho na resolução? Sim Não Não Sim Sim Voltada p/ Álgebra Relacional Não Sim Sim Sim Sim Características Analisando a tabela 3, com relação à correção automática, verificou-se que a abordagem das ferramentas (b) e (c) é diferente da proposta desse estudo, pois as mesmas fazem a correção das expressões inseridas pelo usuário, verificando a sintaxe e a semântica. Porém, assim como as ferramentas (a) e (d), a ferramenta proposta (e) é baseada em exercícios, no qual o aluno pode responder as questões elaboradas pelos professores, esperando-se então que consiga resolver problemas através da mesma. As ferramentas (b) e (c) necessitam ser instaladas no computador do usuário, enquanto as demais são voltadas para a web. A vantagem da ferramenta on-line é estar disponível a qualquer momento e possuir banco de dados compartilhado, o que facilita a interação entre aluno e professor. A desvantagem é a necessidade do acesso a internet para poder utilizá-la. A ferramenta (a) permite a resolução de exercícios para SQL, que não é o objetivo deste trabalho. No entanto, o formato de disponibilização dos exercícios e apresentação do modelo ER, serviu como referencial para o trabalho proposto. Acredita-se que o entendimento deste diagrama para resolução dos exercícios é melhor de aprendizagem de banco de dados, o que não foi verificado nas demais ferramentas estudadas. 3.3 Compiladores A correção dos exercícios é realizada em duas etapas: inicialmente, verifica-se a sintaxe da expressão. Uma vez que esteja correta, se traduz a mesma para SQL e compara o resultado obtido com a resposta esperada pelo professor, conforme estratégia de correção dos exercícios adotada nesse estudo e apresentada na figura 2. Para a implementação do sistema foi necessário utilizar compilador para a tradução das expressões em álgebra relacional para SQL. Expressão de Álgebra Relacional SQL Base de Dados Resultado Resposta em SQL do Professor Base de Dados Resultado Comparação Figura 02: Método de correção da álgebra relacional Compiladores são programas de computadores que fazem a tradução de uma linguagem para outra. Um compilador recebe como entrada o programa escrito na linguagemfonte, geralmente linguagem de alto nível, como C, C++, C# ou Java, e produz o programa equivalente na linguagemalvo (LOUDEN, 2004). Uma das principais características do compilador é relatar quaisquer erros no programa fonte detectados durante o processo de tradução (AHO et al., 2008). No desenvolvimento desse estudo foi utilizado o GOLD Parser Builder, ferramenta usada para a criação de compiladores (COOK, 2009). A GOLD possui Construtor (Builder), seu principal componente, que tem por objetivo ler a gramática descrita na meta-linguagem do GOLD, fazer as respectivas análises, e gerar arquivo de tabela com a gramática compilada (arquivo .cgt). Este arquivo gerado é independente de plataforma e linguagem, com isso, diferentes “Engine” já existente em diversas linguagens KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 45 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional são capazes de carregar o arquivo e ler as informações. “Engine” são DLL existentes desenvolvidas em linguagens variadas, capazes de ler o arquivo .cgt e executar as ações necessárias sobre elas. Além do arquivo .cgt, a ferramenta GOLD também gera código intermediário na linguagem desejada. Este código contém o código fonte base, no qual após passar por fase de otimização é utilizado para a “Engine” escolhida. A ferramenta GOLD Parser Builder foi a escolhida para utilizar no sistema por ser gratuita e gerar o código na linguagem C#, utilizada no desenvolvimento do sistema. 4 Material e Método Para a realização deste artigo, originário de trabalho de conclusão de curso em Ciência da Computação na UNIVALI – Universidade do Vale do Itajaí seguiu-se metodologia que engloba a Fundamentação Teórica; que se constituiu na pesquisa e estudos dos conceitos necessários a construção do software, como banco de dados, álgebra relacional, compiladores e comparativo entre as soluções similares e a ferramenta proposta. Nesse estudo levou-se em conta a experiência em sala de aula referente a aprendizagem de álgebra relacional, geralmente melhor compreendida através da realização de exercícios. Uma vez definidos os objetivos e o escopo do trabalho, realizou-se a etapa de Projeto (ou Design), na qual foram aplicadas técnicas de engenharia de software para definição dos requisitos, casos de uso, diagrama de classe; prototipação de telas e definição do método de correção dos exercícios de álgebra relacional. O “Desenvolvimento” é caracterizado pela atividade de implementação i.e. codificação dos módulos propostos, de acordo com a definição dos requisitos e o banco de dados. Para a “Validação” da ferramenta foram realizados testes de unidade, e a validação do mesmo através de oficina com alunos do quinto período do curso de Ciência da Computação da UNIVALI. 5 Resultados A experiência em sala de aula na disciplina de Banco de Dados vinha mostrando que a realização de exercícios de álgebra relacional como recurso pedagógico fundamental para o entendimento deste conteúdo. No entanto, diferente da aprendizagem de SQL em que os comandos elaborados podem ser submetidos a SGBD - Sistema Gerenciador de Banco de Dados, e avaliar os resultados, os comandos em álgebra ficam restritos a compreensão abstrata, sendo aí a dificuldade dos alunos na compreensão da linguagem. Partindo dessa observação e do estudo de algumas 46 ferramentas existentes para o ensino de álgebra relacional, foi desenvolvido um sistema on-line (Web), encontrado em http://www.algebrarelacional.net.br/, que visa auxiliar a aprendizagem de álgebra relacional através da resolução e correção de exercícios. A opção de sistema web deu-se pela praticidade de acesso sem necessidade de quaisquer configurações, sendo apenas necessário o uso de browser para utilizar o sistema. Outra vantagem é a possibilidade do aluno acessar de casa e também permitir dessa forma, atividades à distância. Por estar num sistema de banco de dados centralizado, a ferramenta permite ao professor acessar as respostas dos alunos bem como elaborar com facilidade novos exercícios. 5.1 Descrição geral do sistema O sistema foi projetado para permitir a elaboração de exercícios de Álgebra Relacional a partir de modelos de dados relacionais, possibilitando a resolução de exercícios para estudos e aplicação de avaliações. Na versão atual do software, foram desenvolvidos os módulos: (1) criação de modelo de dados; (2) elaboração de exercícios; e (3) resolução de exercícios. Descritos a seguir. Cada exercício criado no sistema é relacionado a um modelo de dados. Somente o administrador do sistema pode inserir novo modelo, por medidas de segurança. Esse modelo será útil, tanto para o professor, na hora de criar exercícios, quanto para o aluno respondê-lo. Cada modelo de dados corresponde a uma base de dados criada no SQL Server. Para inserir novo modelo, devem-se seguir 3 passos: (1) O administrador recebe um script de comandos SQL enviado por algum usuário com privilégio de professor. Com esse script, o administrador cria a base de dados no SGBD SQL Server e uma imagem com o modelo dessa base de dados; (2) O administrador faz o upload da imagem do modelo, para que a imagem fique armazenada no sistema; e (3) O administrador insere o nome da base de dados do SQL Server correspondente ao modelo e o nome da imagem do modelo. Após a criação do modelo de dados, o mesmo fica disponível para a elaboração dos exercícios. O professor seleciona o modelo desejado, descreve o enunciado do exercício, uma resposta correta em Álgebra Relacional e a resposta correspondente em SQL. Os exercícios ficam armazenados no banco de dados, compondo um banco de questões a ser respondidas pelos alunos. Na resolução dos exercícios os alunos podem exercitar seus conhecimentos em Álgebra Relacional. Aleatoriamente, o sistema busca um exercício no banco de dados e apresenta o KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional enunciado elaborado pelo professor juntamente com o modelo da base de dados correspondente. Os itens a seguir descrevem em mais detalhes as funcionalidades do sistema. 5.1.1 Cadastro de professor Somente um administrador poderá oferecer privilégios de professor ao usuário do sistema, garantindo com isso algumas medidas de segurança. O administrador possui dois métodos para fornecer privilégio de professor. Descritos a seguir: • Criando novo usuário com privilégio de professor: Desta maneira o administrador cria novo cadastro de usuário já oferecendo perfil de professor; e • Editar o perfil de usuário já cadastrado: Desta maneira o administrador apenas irá oferecer o perfil de professor ao usuário. O administrador também poderá retirar os privilégios de um usuário neste mesmo local, ou oferecer privilégio de administrador ao usuário. A figura 3 apresenta o método para fornecer privilégio de professor para usuário que está sendo cadastrado pelo administrador. Figura 04: Elaboração de exercícios 5.1.3 Resolução de exercícios A resolução dos exercícios é a funcionalidade que permite ao aluno responder os exercícios previamente elaborados pelo professor, podendo submeter a resposta diversas vezes e analisar, se for o caso, o erro cometido. Aleatoriamente, o sistema busca um exercício no banco Figura 03: Fornecer privilégios aos usuários. 5.1.2 Elaboração de exercícios A Elaboração de Exercícios serve para que professores ou administradores possam criar novo exercício no sistema. O professor fornece o modelo para o qual deseja criar o exercício e preenche as informações referentes ao enunciado, sua resposta em álgebra relacional e a resposta em SQL. A figura 4 representa a tela de elaboração dos exercícios. de dados, e mostra para o aluno a descrição da pergunta e o modelo da base de dados correspondente (figura 5). Após responder o exercício, o sistema informa se a resposta foi correta, incorreta ou se teve erro na sua elaboração. Também mostra os dados da consulta que foram recuperados da base de dados e as últimas tentativas de respostas. A figura 6 apresenta a resolução de pergunta informando esposta correta. KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 47 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional 5.2 Método de resolução dos exercícios Para que o sistema interprete a resposta do aluno e verifique sua corretitude, foi desenvolvido um compilador para fazer a tradução da álgebra relacional para o SQL. Com apoio da ferramenta GOLD elaborou-se gramática relacionada aos tipos de operações da álgebra relacional, criado arquivo com tabela da gramática compilada e código intermediário. A partir do código intermediário e de sua otimização, é feita a tradução de operações de álgebra relacional para o SQL, finalizando o processo de tradução da álgebra para o SQL. A primeira avaliação do comando do aluno dá-se pelo compilador, pois, caso haja erro de gramática, o mesmo fornece feedback ao aluno e interrompe o processo de análise. No caso do comando estar correto sintaticamente, faz-se a análise do conteúdo da resposta, para verificar se o que foi solicitado obtém-se com o comando elaborado pelo aluno. Desta forma, o comando SQL gerado pelo compilador e o comando SQL informado pelo professor na elaboração da questão são submetidos ao banco de dados, permitindo a comparação dos resultados. A comparação dos resultados primeiramente analisa o número de tuplas e de colunas dos dois resultados, havendo divergência, a resposta é considerada incorreta. Figura 05: Resolução de exercícios No segundo momento o sistema verifica quais dados foram recuperados e os armazena numa string, para cada comando (professor e aluno). Desta forma é feita a comparação das strings para avaliar a igualdade dos conteúdos. Com este método de correção o aluno fica livre para elaborar comando diferente da resposta padrão do professor, no entanto, o resultado deve ser exatamente o mesmo do solicitado no enunciado, inclusive a sequência de atributos na projeção. Por exemplo: em uma pergunta, o enunciado é o seguinte: “Selecione o nome dos clientes e suas respectivas cidades”. Se o aluno escrever o comando para retornar os dados nesta seqüência (nome, cidade), a resposta estará correta, porém, se ele inverter a seqüência (cidade, nome), a resposta estará incorreta Figura 06: Resolução de exercício com a resposta correta 48 (figura 7). KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional Figura 07: Sequência da resposta 6 Discussão Com o objetivo de validar o software proposto como ferramenta de apoio a aprendizagem de álgebra relacional, bem como testá-lo, foi realizada oficina de uso do sistema junto a alunos de Ciência da Computação. Participaram 18 alunos da disciplina de Banco de Dados I, do curso de Ciência da Computação na Univali no semestre de 2009/1. A escolha deste grupo justifica-se pelo contato dos alunos com a álgebra relacional, assunto abordado durante a matéria 9 8 7 6 5 4 3 2 1 0 Número de alunos Grau de dificuldade de Banco de Dados I, o que permitiu avaliar a ferramenta de forma satisfatória. Gráfico 1: Dificuldade dos alunos na utilização do sistema Os alunos preencheram formulário ao final do uso do sistema, que permitiu realizar análise da dinâmica e do software utilizado. Os resultados coletados foram tabulados em planilha para possibilitar a análise das informações através de gráficos. O gráfico 1 é referente aos resultados das dificuldades encontradas pelos alunos na utilização do sistema. Para as perguntas adotou-se escala de 1 a 5 que, no caso da questão apresentada, 1 significa Muito Fácil e 5, Muito difícil. Podese verificar que a maioria dos alunos (15) achou a ferramenta muito fácil ou de fácil utilização. O gráfico 2 apresenta os resultados obtidos em relação à questão que avaliava a possibilidade compreender melhor a lógica da álgebra relacional ao se fazer o uso do sistema. Nesse quesito, verifica-se que houve melhor compreensão do assunto, pois a maioria aponta que conseguiu compreender melhor a Álgebra Relacional utilizando a ferramenta. Neste item 1 corresponde a Pouca melhora na compreensão da álgebra e 5, muita melhora. Muito Difícil Muito Fácil 7 6 5 4 3 2 1 0 Número de alunos Pouco Muito Melhoria da compreensão da Álgebra Relacional Gráfico 2: Compreensão da lógica da Álgebra Relacional com a utilização do sistema O gráfico 3 apresenta os resultados obtidos em relação a comparação do uso de material concreto, i.e., exercícios em folha com relação ao uso do software. Observa-se que 11 entre os 18 alunos preferiram realizar os exercícios com o software, haja vista maior interação e facilidade, quando comparado com os exercícios no papel. Os alunos que avaliaram o software já haviam realizado exercícios em papel. Neste item KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 49 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional 1 corresponde ao uso do Material concreto na realização de exercícios e 5, uso do software. 12 10 8 Número de alunos 6 4 2 0 Material concreto Computador Uso de material concreto ou do software Gráfico 3: Comparativo do uso de material concreto com relação ao uso do software Também foram registrados comentários dos alunos no momento da realização dos testes, como os apresentados a seguir: “Com o dinamismo fica mais fácil perceber os erros. O sistema corrige e mostra onde erramos, caso o exercício esteja incompleto, o sistema mostra o select gerado. Tudo isso ajuda muito no aprendizado”. “Gostei da forma como a ferramenta exibe as respostas dos exercícios, isso ajuda a entender a matéria quando se tem a visualização da tabela com a resposta”. “Muito bom, seria melhor se os professores utilizassem o programa para melhor entendimento da álgebra”. “Esta ficando muito bom, eu entendi perfeitamente o programa, só não entendo a álgebra relacional.” Avaliando os resultados obtidos e os comentários, podese observar que o maior problema dos alunos é em relação à lógica da álgebra relacional. Com o uso deste sistema, os alunos puderam ver o que acontecia na utilização de cada expressão, verificar os dados que retornavam de suas consultas e onde estavam os erros que cometiam. Desta forma, tiveram a melhor compreensão da lógica da álgebra, na qual encontravam maiores dificuldades. Entretanto, haja vista que o grupo de alunos já havia estudado a matéria através de exercícios em papel, em futuro próximo, com a instalação do software na web, serão realizados novos testes, desta vez aplicando os exercícios diretamente no computador. 7 Conclusão A Álgebra Relacional, base para o SQL, é conteúdo bastante teórico e formal; porém, sua compreensão é importante para a elaboração de consultas em banco de dados relacionais. 50 Sabe-se que o computador pode ser forte aliado no processo de aprendizagem de diversos conteúdos. A resolução de exercícios é prática que ajuda o aluno a compreender melhor a matéria, especialmente em se tratando de linguagens de computador. Assim, a elaboração da ferramenta partiu da necessidade veemente observada por meio das dificuldades encontradas pelos alunos na compreensão da Álgebra Relacional. O experimento realizado junto aos alunos da disciplina de Banco de Dados I mostrou que o sistema pode ser muito útil para a aprendizagem da Álgebra Relacional, pois a interação proporcionada pela ferramenta torna o entendimento mais fácil. Outro ponto positivo é a disponibilidade do sistema na Web, permitindo que alunos e professores possam resolver os exercícios em qualquer horário e local com acesso à Internet. Na havendo necessidade em instalar quaisquer softwares em seus computadores, tornando o uso da ferramenta muito fácil. O sistema foi instalado para testes em servidor com capacidade limitada de acesso. A fase atual é de instalação em um servidor web robusto, o qual está sendo disponibilizado no endereço http://www.algebrarelacional.net.br/, com previsão de estar no semestre letivo de 2010. Como trabalhos futuros, o projeto prevê o desenvolvimento de mais funcionalidades, tais como a implementação dos módulos de criação de turmas e o módulo de criação de avaliações, que facilitarão a aplicação de provas para os alunos. Também é interessante aprimorar o sistema, implementando alguns relatórios que forneçam feedbacks, possibilitando avaliação do desempenho dos alunos. Referências AHO, A.V. et al. Compiladores: princípios, técnicas e ferramentas. São Paulo: Pearson Addison-Wesley, 2008. APPEL, A.P.; TRAINA JUNIOR, C. IDFQL. 2004. Disponível em: <http://gbdi.icmc.usp.br/publicacoes/arquivos/appel_ sbbd2004.pdf>. Acesso em: 19 ago. 2008. COOK, D. Gold parser builder documentation. 2009. Disponível em: <http://www.devincook.com/goldparser/doc/index.htm>. Acesso em: 12 mar. 2009. DATE, C.J. Introdução a sistemas de bancos de dados. Rio de Janeiro: Elsevier, 2003. ELMASRI, R.; NAVATHE, S.B. Sistemas de banco de dados. São Paulo: Pearson, 2005. KINAIPP, R.V. Sistema para apoio à aprendizagem de álgebra relacional. 2009. 80 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2009. LOUDEN, K.C. Compiladores: princípios e técnicas. São Paulo: KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional Pioneira Thomson Learning, 2004. de banco de dados. Rio de Janeiro: Elsevier, 2006. PIREZ, P. Departamento de informática e matemática aplicada. SOLER, J. et al. An automatic correction tool for relational 2006. Disponível em: <http://www.dimap.ufrn.br/~paulo.pires/ algebra queries. Computational science and its applications cursos/bd/relacional.pdf>. Acesso em: 18 set. 2008. ICCSA 2007. INTERNATIONAL CONFERENCE, KUALA SCHARDOSIM, T.S. Ferramenta para ensino de álgebra. LUMPUR, Malaysia, 2007. Trabalho de Conclusão de Curso (Graduação em Ciência da Souza, A.L. SQLWeb: Banco de dados de exercícios de SQL. Computação) - Universidade Luterana do Brasil, Gravataí, 2006. SILBERSCHATZ, A.; KORTH, H.F.; SUDARSHAN, S. Sistema Disponível em: <http://www.sqlweb.com.br/>. Acesso em: 30 jul. 2009. KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010 51 Instrumento Pedagógico para Apoio a Aprendizagem de Álgebra Relacional 52 KINAIPP, R. V.; ALVES, A. G. / UNOPAR Cient. Exatas Tecnol., Londrina, v. 9, n. 1, p. 41-52, Nov. 2010