universidade do vale do itajaÍ centro de …siaibib01.univali.br/pdf/renato vidal kinaipp.pdf ·...

80
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA PARA APOIO A APRENDIZAGEM DE ÁLGEBRA RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves, M. Eng. Orientadora Itajaí (SC), junho de 2009

Upload: hakien

Post on 21-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

SISTEMA PARA APOIO A APRENDIZAGEM DE ÁLGEBRA RELACIONAL

Área de Banco de Dados

por

Renato Vidal Kinaipp

Adriana Gomes Alves, M. Eng. Orientadora

Itajaí (SC), junho de 2009

Page 2: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

SISTEMA PARA APOIO A APRENDIZAGEM DE ÁLGEBRA RELACIONAL

Área de Banco de Dados

por

Renato Vidal Kinaipp Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientadora: Adriana Gomes Alves, M. Eng.

Itajaí (SC), junho de 2009

Page 3: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

ii

AGRADECIMENTOS

Agradeço em primeiro lugar a Deus que durante toda essa caminhada iluminou o meu caminho e

me deu força de vontade para nunca desistir.

Aos meus pais, Eloy Vidal Kinaipp e Maria Lúcia Kinaipp, por toda a educação que tornaram a

pessoa que sou e por toda confiança. E ao meu irmão, Rubens, por todo apoio e companheirismo.

Ao professor André Luís Alice Raabe pelo auxílio no desenvolvimento do compilador que teve

grande importância no funcionamento do sistema.

A minha orientadora Adriana Gomes Alves, pela orientação durante este ano de trabalho, com

diversas contribuições e cobranças que tornaram possível a realização deste trabalho.

Ao meu amigo Romero Piske, pelo auxílio na utilização do ambiente de desenvolvimento Microsoft

Visual Studio 2008.

A todas as pessoas, professores, avaliadores e amigos que de certa forma apoiaram e contribuíram

para a realização deste projeto.

Page 4: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

iii

SUMÁRIO

LISTA DE ABREVIATURAS...................................................................v

LISTA DE FIGURAS................................................................................vi

LISTA DE TABELAS.............................................................................viii

RESUMO.................................................................................................... ix

ABSTRACT.................................................................................................x

1 INTRODUÇÃO......................................................................................1 1.1 PROBLEMATIZAÇÃO ..................................................................................... 3 1.1.1 Formulação do Problema................................................................................. 3 1.1.2 Solução Proposta............................................................................................... 3 1.2 OBJETIVOS ........................................................................................................ 4 1.2.1 Objetivo Geral ................................................................................................... 4 1.2.2 Objetivos Específicos ........................................................................................ 4 1.3 METODOLOGIA................................................................................................ 4 1.4 ESTRUTURA DO TRABALHO ....................................................................... 5

2 FUNDAMENTAÇÃO TEÓRICA........................................................7 2.1 BANCO DE DADOS ........................................................................................... 7 2.1.1 Modelo Relacional............................................................................................. 7 2.1.2 Linguagens de Consulta ................................................................................... 8 2.2 COMPILADORES............................................................................................ 17 2.2.1 Processo de Tradução do Compilador.......................................................... 18 2.2.2 Tratador de Erros ........................................................................................... 20 2.3 FERRAMENTAS SIMILARES....................................................................... 20 2.3.1 Interactive Data Flow Query Language ....................................................... 21 2.3.2 Ferramenta para o Ensino de Álgebra Relacional ...................................... 23 2.3.3 Comparativo .................................................................................................... 25

3 PROJETO.............................................................................................26 3.1 ANÁLISE DE REQUISITOS........................................................................... 26 3.1.1 Requisitos Funcionais ..................................................................................... 26 3.1.2 Requisitos Não Funcionais .............................................................................27 3.1.3 Regras de Negócio ........................................................................................... 28 3.2 DIAGRAMAS DE CASOS DE USO ............................................................... 29 3.2.1 PCT01. Controle de Usuários ........................................................................ 29 3.2.2 PCT02. Controle do Professor....................................................................... 33 3.2.3 PCT03. Controle do Site................................................................................. 37 3.3 DIAGRAMA DE CLASSE ............................................................................... 38 3.4 MÉTODO DE CORREÇÃO DA ÁLGEBRA RELACIONAL........... ......... 38

4 IMPLEMENTAÇÃO...........................................................................40

Page 5: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

iv

4.1 MICROSOFT VISUAL STUDIO 2008........................................................... 40 4.2 MICROSOFT SQL SERVER 2005 EXPRESS.............................................. 40 4.3 GOLD PARSER BUILDER............................................................................. 41 4.4 CORREÇÃO DOS EXERCÍCIOS .................................................................. 43

5 APRESENTAÇÃO DA FERRAMENTA..........................................46 5.1 INSERIR MODELO DE BASE DE DADOS ................................................. 46 5.2 CADASTRO DE PROFESSOR....................................................................... 48 5.3 ELABORAÇÃO DE EXERCÍCIOS ............................................................... 49 5.4 RESOLUÇÃO DE EXERCÍCIOS................................................................... 51

6 TESTES E VALIDAÇÃO ...................................................................55

7 CONCLUSÕES ....................................................................................58 7.1 TRABALHOS FUTUROS................................................................................ 59

REFERÊNCIAS BIBLIOGRÁFICAS ...................................................60 A FONTES GERADOS NA FERRAMENTA GOLD .........................63 B CÓDIGO FONTE DA CORREÇÃO DOS EXERCÍCIOS.............65

C DOCUMENTO E RESULTADOS DE TESTE ................................67

Page 6: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

v

LISTA DE ABREVIATURAS

DDL Data Definition Language DML Data Manipulation Language HTML Hyper Text Markup Language IBM International Business Machines iDFQL Interactive Data Flow Query Language RF Requisito Funcional RN Regra de Negócio RNF Requisito Não Funcional SGBD Sistema Gerenciador de Bancos de Dados SQL Structured Query Language TCC Trabalho de Conclusão de Curso UNIVALI Universidade do Vale do Itajaí

Page 7: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

vi

LISTA DE FIGURAS

Figura 1. Operadores da álgebra relacional..........................................................................................2 Figura 2. Relações utilizadas nos exemplos.......................................................................................10 Figura 3. Exemplo de seleção. ...........................................................................................................10 Figura 4. Exemplo de projeção. .........................................................................................................11 Figura 5. Exemplo de junção..............................................................................................................11 Figura 6. Exemplo de divisão.............................................................................................................12 Figura 7. Exemplo de união. ..............................................................................................................13 Figura 8. Exemplo de interseção. .......................................................................................................14 Figura 9. Exemplo de diferença. ........................................................................................................15 Figura 10. Exemplo de produto cartesiano.........................................................................................15 Figura 11. Um compilador. ................................................................................................................17 Figura 12. Fases de um compilador. ..................................................................................................18 Figura 13. Árvore sintática.................................................................................................................19 Figura 14. Interface da ferramenta iDFQL.........................................................................................21 Figura 15. Exemplo de consulta utilizando a ferramenta iDFQL. .....................................................22 Figura 16. Interface da ferramenta mostrando a aba 1. ......................................................................24 Figura 17. Pct01. Controle de usuários ..............................................................................................29 Figura 18. Pct02. Controle do professor ............................................................................................33 Figura 19. Pct03. Controle do site......................................................................................................37 Figura 20. Diagrama de classe ...........................................................................................................38 Figura 21. Método de correção da álgebra relacional........................................................................39 Figura 22. Interface da ferramenta GOLD Parser Builder. ................................................................42 Figura 23. Gerando o programa modelo no GOLD. ..........................................................................43 Figura 24. Modelo de processo de execução da ferramenta GOLD. .................................................43 Figura 25. Etapa de compilação. ........................................................................................................44 Figura 26. Seqüência da resposta. ......................................................................................................45 Figura 27. Modelo de base de dados. .................................................................................................46 Figura 28. Enviar um script com os comandos SQL..........................................................................47 Figura 29. Inserindo um novo modelo de base de dados. ..................................................................48 Figura 30. Fornecer privilégios aos usuários. ....................................................................................49 Figura 31. Elaboração de exercícios. .................................................................................................50 Figura 32. Resolução de exercícios....................................................................................................51 Figura 33. Resolução de exercício com a resposta correta. ...............................................................52 Figura 34. Resolução de exercício com a resposta incorreta. ............................................................53 Figura 35. Resolução de exercício com a uma expressão mal formulada..........................................54 Figura 36. Gráfico apresentando a dificuldade dos alunos na utilização do sistema. ........................55 Figura 37. Gráfico apresentando a compreensão da lógica da álgebra relacional com a utilização do

sistema........................................................................................................................................56 Figura 38. Código fonte da gramática. ...............................................................................................63 Figura 39. Fonte do código intermediário. .........................................................................................64 Figura 40. Código fonte da correção dos exercícios – Parte 1. ..........................................................65 Figura 41. Código fonte da correção dos exercícios – Parte 2. ..........................................................66 Figura 42. Documento de teste...........................................................................................................67 Figura 43. Gráfico apresentando se o sistema pode motivar o interesse do aluno pela álgebra. .......68 Figura 44. Gráfico apresentando se o aluno ficou perdido na utilização do sistema. ........................68 Figura 45. Gráfico apresentando se as cores e as imagens foram bem exploradas............................69

Page 8: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

vii

Figura 46. Gráfico apresentando como seriam melhores as aulas de álgebra relacional. ..................69

Page 9: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

viii

LISTA DE TABELAS

Tabela 1. Álgebra Relacional - Notação e Sintaxe dos operadores. ....................................................9 Tabela 2. SQL – Cláusulas.................................................................................................................17 Tabela 3. Comparativo das Ferramentas Similares. ...........................................................................25 Tabela 4. UC01.01 Cadastro Usuário.................................................................................................30 Tabela 5. UC01.02 Responde Exercícios...........................................................................................31 Tabela 6. UC01.04 Responde Prova ..................................................................................................32 Tabela 7. UC01.05 Se cadastra na turma ...........................................................................................32 Tabela 8. UC02.01 Cria Turmas ........................................................................................................34 Tabela 9. UC02.02 Cria Exercícios....................................................................................................35 Tabela 10. UC02.03 Cria Prova .........................................................................................................36 Tabela 11. UC02.05 Aceita Aluno na Turma.....................................................................................37

Page 10: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

ix

RESUMO

KINAIPP, Renato Vidal. Sistema para Apoio à aprendizagem de Álgebra Relacional. Itajaí, 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. 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.

Page 11: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

x

ABSTRACT

Relational Algebra is a content addressed to in the Database discipline, in computing courses. This is a formal language of procedural consultations for the relational model, and its concepts are based on the theory of mathematics and the logic of predicates. As the contents of Relational Algebra are very conceptual and complex, for students to have a good understanding of it, they need much practice through fixing exercises, usually without using any tool. In this task, difficulties in correcting and assessing the students are found. Due to these problems, this study suggests a tool which aims at helping students learn Relational Algebra by solving exercises, allowing the automatic correction of expressions and the visualization of results. The tool will allow the generation of reports with the student’s performance in solving the exercises, thus the teacher will be able to check where each student is missing and may help them in the best possible way, making the assimilation of Relational Algebra easier and more enjoyable. Keywords: Relational Algebra. Computing in Education. Database.

Page 12: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

1 INTRODUÇÃO

A disciplina de banco de dados tem por objetivo introduzir aos alunos conceitos que

permitam usar, projetar e implementar sistemas de banco de dados. Um banco de dados possui um

conjunto de operações que permitem manipular os dados do banco, podendo ser de incluir novos

registros, alterar dados, buscar por dados registrados, excluir, entre várias outras.

Para fazer a manipulação no banco de dados, os sistemas de banco de dados comerciais

oferecem uma linguagem padrão de consulta que se chama SQL (Structured Query Language –

Linguagem de consulta Estruturada). Ela foi concebida e desenvolvida pela IBM. A SQL

proporciona uma interface de alto nível, com uma sintaxe mais amigável (ELMASRI; NAVATHE,

2005).

A SQL é baseada na linguagem formal Álgebra Relacional, a qual é o conjunto básico de

operações para o modelo relacional de um sistema de banco de dados. Ela é muito importante por

diversas razões (ELMASRI; NAVATHE, 2005):

• Provê um fundamento formal para operações do modelo relacional, que são os SGBDs

(Sistemas Gerenciadores de Banco de Dados Relacionais);

• É 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.

As operações da álgebra relacional atuam nas tabelas, também chamadas de relações, para

chegar ao resultado desejado. Ela trabalha de uma forma onde pega uma ou mais relações como

entrada de dados e gera uma nova relação como resultado, após a aplicação das operações

(SILBERCHATZ, 2006).

A Figura 1 mostra de uma forma simples de como as operações da álgebra relacional

funcionam.

Page 13: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

2

Figura 1. Operadores da álgebra relacional

Fonte: Adaptado de Faria (2005).

No início da disciplina de Banco de Dados I na Univali (Universidade do Vale do Itajaí), os

alunos estudam os conceitos da álgebra relacional, no entanto, por ser uma linguagem muito

complexa, há a necessidade de muita prática para a fixação da mesma. Mesmo com todos os

exercícios fornecidos pelos professores, os alunos têm certa dificuldade no aprendizado e não

conseguem assimilá-la de maneira satisfatória, como informado pelos professores. Estes, por sua

vez, ficam sobrecarregados com a correção dos exercícios.

Pensando nestes problemas surgiu a idéia de fazer este trabalho, o qual se propõe a

desenvolver um sistema que visa auxiliar os alunos na aprendizagem da álgebra relacional, e

também auxiliar os professores na correção dos exercícios, ou seja, o sistema deve corrigir

automaticamente os exercícios feitos pelos alunos.

Neste sistema os professores criarão uma lista de exercícios, para que os alunos possam fixar

os conceitos da álgebra relacional. No momento em que os alunos estiverem respondendo as

questões, o sistema deverá corrigir automaticamente, auxiliando os alunos e mostrando onde estão

seus erros. Após os alunos terem concluído, o sistema deve ser capaz de gerar um relatório onde

registrará os acertos e erros dos alunos, onde foram os erros, entre outros dados, no qual auxiliará o

professor a acompanhar o aprendizado do aluno.

Page 14: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

3

O propósito deste trabalho é implementar um sistema on-line, onde só os alunos e

professores cadastrados poderão ter acesso, utilizando uma linguagem de programação para internet

para os arquivos de código e a linguagem HTML (Hyper Text Markup Language) para os arquivos

de modelo, juntamente com algum software de Banco de Dados, tendo como principais

funcionalidades:

• Cadastro de exercícios pelo professor;

• Correção dos exercícios resolvidos pelos alunos; e

• Geração de relatórios para o professor.

No módulo do professor, ele pode cadastrar exercícios, verificar quais alunos responderam

os exercícios e verificar os relatórios de cada aluno, onde serão informados quais exercícios o aluno

acertou e errou, quantidade de erros e acertos, tempo de resolução dos exercícios, entre outras

informações. O professor também terá acesso a relatórios gerais, ou seja, relatórios que informarão

o aproveitamento da turma toda em relação à matéria passada pelo professor. Já no módulo do

aluno, ele só terá acesso aos exercícios a serem resolvidos.

1.1 PROBLEMATIZAÇÃO

1.1.1 Formulação do Problema

Por se tratar de uma matéria com um embasamento teórico muito grande, e por ser muito

complexa, há a necessidade de muita prática para a fixação da Álgebra Relacional. O ensino desta

matéria é feito através de muitos exercícios fornecidos pelos professores, porém, os alunos

resolvem estes exercícios em sala de aula, e atualmente, sem nenhum software para auxiliá-los.

Com isso, os alunos têm certa dificuldade no aprendizado e não conseguem assimilá-la de maneira

satisfatória. Os professores, por sua vez, ficam sobrecarregados na correção dos exercícios.

1.1.2 Solução Proposta

Analisando os problemas descritos acima, surgiu a idéia de desenvolver um sistema baseado

nos conceitos da álgebra relacional, que visa auxiliar os alunos na aprendizagem, resultando num

embasamento sólido da álgebra relacional. Também auxiliará os professores na correção dos

exercícios, isto é, o sistema deve corrigir automaticamente os exercícios feitos pelos alunos, tendo

como resultado aulas com uma elaboração melhor.

Page 15: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

4

1.2 OBJETIVOS

1.2.1 Objetivo Geral

O objetivo geral deste trabalho é desenvolver um sistema on-line que visa auxiliar a

aprendizagem de álgebra relacional para alunos da disciplina de banco de dados.

1.2.2 Objetivos Específicos

Foram considerados objetivos específicos para este trabalho:

• Estudar e compreender os conceitos relacionados à Álgebra Relacional;

• Pesquisar e analisar soluções similares;

• Pesquisar os conceitos e as tecnologias necessárias à implementação do sistema;

• Determinar os requisitos exigidos pelo sistema;

• Realizar a análise e projeto do sistema;

• Implementar o sistema;

• Testar e validar a implementação do sistema; e

• Documentar o sistema desenvolvido, e os seus resultados.

1.3 METODOLOGIA

A metodologia utilizada para a realização do presente projeto foi dividida em etapas para

melhor compreensão, que estão listadas abaixo:

• Fundamentação Teórica: Constitui em pesquisar e estudar os conceitos necessários.

o Fornecer uma introdução de banco de dados, juntamente com alguns conceitos

importantes como modelo de dados e linguagens de consultas;

o Fornecer uma visão geral sobre a álgebra relacional e mostrar como formular

algumas expressões;

o Fornecer uma introdução de compiladores; e

o Apresentar um comparativo entre as soluções similares e a ferramenta proposta.

Page 16: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

5

• Projeto: Definição dos requisitos e funcionalidades do sistema proposto.

o Definição dos requisitos funcionais, requisitos não funcionais e regras de negócio

que contemplam o funcionamento do sistema;

o Definição dos casos de uso: controle de usuários, controle do professor e controle do

site;

o Definição do diagrama de classe; e

o Definição do método de correção dos exercícios de álgebra relacional.

• Desenvolvimento: Desenvolvimento do sistema, que posteriormente passará por testes e

validação.

o Implementação dos módulos propostos, de acordo com a definição dos requisitos.

o Desenvolvimento da estrutura do banco de dados necessário para suprir a

necessidade do sistema.

• Testes e Validação: Realização de testes sobre a solução proposta, verificando suas

funcionalidades e corrigindo-as se necessário.

o Realização de testes com alunos do curso de Ciência da Computação da Univali, que

estejam cursando a disciplina de Banco de Dados. Será avaliado o módulo de

correção dos exercícios.

• Documentação: Ao longo do projeto são registrados todos os processos executados

desde o levantamento do problema, a fundamentação teórica, os requisitos necessários

ao sistema, o desenvolvimento, os testes, os resultados finais e conclusões.

1.4 ESTRUTURA DO TRABALHO

No primeiro capítulo é apresentada uma introdução sobre o projeto, fazendo uma descrição

geral do trabalho, identificando o problema e a sua solução, os objetivos gerais e específicos a se

alcançar, e a metodologia utilizada para disposição do trabalho.

No segundo capítulo (Fundamentação Teórica) são abordados alguns conceitos sobre banco

de dados, sobre o modelo relacional, sobre as linguagens de consulta, dentre ela a SQL, o cálculo

relacional, e a álgebra relacional. Fornece alguns conceitos sobre compiladores e para finalizar a

Page 17: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

6

fundamentação teórica, é abordada duas soluções similares, e traçado um comparativo entre elas e a

ferramenta proposta.

O terceiro capítulo (Projeto) compreende na apresentação do sistema proposto, sua

modelagem e especificações.

No quarto (Implementação) e quinto (Apresentação da Ferramenta) capítulos são

apresentados as ferramentas utilizadas no processo de desenvolvimento dos módulos, descrevendo

as funcionalidades implementadas.

O sexto capítulo apresenta os resultados dos testes aplicados com os alunos da disciplina de

Banco de Dados do curso de Ciência da computação.

No sétimo capítulo são apresentadas as conclusões, as dificuldades encontradas e as

sugestões para trabalhos futuros.

Page 18: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

2 FUNDAMENTAÇÃO TEÓRICA

A fundamentação deste trabalho aborda os seguintes temas: (i) introdução à banco de dados,

apresentando as linguagens de consulta, principalmente a álgebra relacional; (ii) conceitos de

compiladores; e (iii) apresentação de ferramentas similares de correção automática de álgebra

relacional.

2.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 no banco de dados), 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 um 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, utiliza-se a camada de software, chamada de SGBD, 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 uma 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 conseqüência, ideal para o ensino de princípios de banco de dados (DATE, 2003).

2.1.1 Modelo Relacional

O modelo relacional é a base da tecnologia moderna de banco de dados, e é essa base que

faz essa área de banco de dados uma 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).

Page 19: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

8

O modelo relacional é um modelo onde 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 teoricamente na teoria dos conjuntos e na lógica

de predicados de primeira ordem, e se dedica principalmente ao exame da estrutura de dados, a

integridade de dados e a 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 manipular os dados,

inclui os conceitos de modelos de dados que definem as restrições do banco de dados (ELMASRI;

NAVATHE, 2005). A manipulação é feita através das linguagens de consultas formais e também

pelo SQL.

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

(SILBERCHATZ, 2006).

2.1.2.1 Álgebra Relacional

A álgebra relacional é uma linguagem formal de consultas procedural e faz parte da

manipulação no modelo relacional. Ela basicamente consiste em um conjunto de operações, que

geram uma 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 (SILBERCHATZ, 2006). Uma seqüência dessas

operações forma uma expressão de álgebra relacional.

A álgebra relacional é muito importante por diversas razões (ELMASRI; NAVATHE,

2005): (i) provê um fundamento formal para operações do modelo relacional; (ii) é usada como

Page 20: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

9

base para implementar as consultas nos sistemas gerenciadores de banco de dados relacionais; e (iii)

seus conceitos são incorporados na linguagem de consulta padrão SQL.

O objetivo fundamental da álgebra é permitir a escrita de expressões relacionais. Essas

expressões servem a uma variedade de propósitos, dentre eles (DATE, 2003):

• Busca de dados - 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;

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

dois grupos (ELMASRI; NAVATHE, 2005):

1. O 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).

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

A Tabela 1 apresenta a funcionalidade de cada operação, com suas respectivas notações e

sintaxe:

Tabela 1. Álgebra Relacional - Notação e Sintaxe dos operadores.

Operação Notação Sintaxe

Seleção (Select) σ σ <condição de seleção> (Relação)

Projeção (Project) π π <lista de atributos> (Relação)

Junção natural (Join) × (Relação A × Relação B)

Divisão (Division) ÷ (Relação A ÷ Relação B)

União (Union) ∪ (Relação A ∪ Relação B)

Interseção (Intersection) ∩ (Relação A ∩ Relação B)

Diferença (Set difference) − (Relação A − Relação B)

Produto Cartesiano (Cross product) × (Relação A × Relação B)

Page 21: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

10

Exemplos das Operações da Álgebra Relacional

A Figura 2 contém duas relações. Serão utilizadas estas relações para os exemplos de cada

operação.

Figura 2. Relações utilizadas nos exemplos.

Seleção (Select): Retorna um subconjunto de tuplas que satisfaçam uma condição de seleção

pré-definida. Seguido da notação σ, que denota a seleção, vem o predicado, que descreve a

condição da consulta. Após, entre parênteses, vem a relação de onde será feita a consulta.

Exemplo: σ Sexo = “F” (ALUNOS)

A seleção acima busca na relação ALUNOS todas as tuplas onde o atributo Sexo for igual a

“F”. Esta consulta nos apresentará como resultado as informações contidas na Figura 3.

Figura 3. Exemplo de seleção.

Projeção (Project): Retorna determinadas colunas de uma relação. Só pode ser executada

em apenas uma relação. Após a notação π, que denota a projeção, lista-se os atributos que se deseja

buscar, seguido da relação entre parênteses.

Page 22: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

11

Exemplo: π Nome, Cidade, Id_Professor (ALUNOS)

A expressão acima projetará numa nova relação os atributos Nome, Cidade e Id_Professor

da relação ALUNOS. A Figura 4 apresenta o resultado desta operação.

Figura 4. Exemplo de projeção.

Junção Natural (Join): Retorna uma combinação de tuplas de duas relações, partindo dos

atributos em comum nas relações. É usado o operador × entre duas relações para denotar esta

operação.

Exemplo: (ALUNOS × PROFESSORES)

A operação acima retorna uma combinação de todos os atributos das relações ALUNOS e

PROFESSORES, onde o Id_Professor das duas relações sejam idênticos. Esta consulta apresentará

como resultado as informações contidas na Figura 5.

Figura 5. Exemplo de junção.

Além da junção natural há outros tipos de junção:

• Junção Theta: Combina os registros de duas relações conforme as condições do

predicado. Sintaxe: (RelaçãoA × <condição de seleção> Relação B)

Page 23: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

12

• Equijunção: É uma junção semelhante à junção Theta, onde o predicado é sempre uma

igualdade.

• Junção Externa: É utilizada para manter todas as tuplas das relações em uma junção,

mesmo ela não tendo tuplas correspondentes na outra relação.

Divisão (Division): Retorna uma relação contendo elementos da primeira relação que se

relacionam com todos os elementos da segunda relação. Os atributos resultantes são os atributos da

relação A que não existem na relação B. Os registros existentes na relação final são os registros da

relação A combinados com os registros da relação B. É identificada pelo operado ÷ entre duas

relações. Para utilizar esta operação é necessário que as relações sejam logicamente equivalentes.

Exemplo: π Sexo, Id_Professor (ALUNOS) ÷ π Id_Professor (PROFESSORES)

Não se pode utilizar a operação de Divisão nas relações ALUNOS e PROFESSORES, pois

elas são logicamente diferentes. Então, antes da Divisão, será feito uma Projeção, para fazer duas

relações logicamente equivalentes. Logo após será feita a União dessas duas relações projetadas.

A consulta acima apresentará como resultado as informações da Figura 6.

Figura 6. Exemplo de divisão.

União (Union): Cria uma nova relação, a partir de duas ou mais relações, contendo todas as

tuplas dessas relações. É identificada pelo símbolo ∪ entre duas relações. Para utilizar esta operação

é necessário que as relações sejam logicamente equivalentes.

Page 24: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

13

Exemplo: (π Nome, Sexo, Cidade (ALUNOS)) ∪ (π Nome_P, Sexo_P, Cidade_P

(PROFESSORES))

Não se pode utilizar a operação de União para unir a relação ALUNOS e PROFESSORES,

pois as relações são logicamente diferentes. Então, antes da União, será feito uma Projeção, para

fazer duas relações logicamente equivalentes. Logo após será feita a União dessas duas relações

projetadas. A expressão acima apresentará como resultado as informações da Figura 7.

Figura 7. Exemplo de união.

Interseção (Intersection): Retorna todas as tuplas que pertencem a ambas as relações. É

identificada pelo símbolo ∩ entre duas relações. Para utilizar esta operação é necessário que as

relações sejam logicamente equivalentes.

Exemplo: (π Id_Professor (σ Sexo = “M” (ALUNOS))) ∩ (π Id_Professor (σ Sexo_P = “F”

(PROFESSORES)))

Page 25: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

14

Não se pode utilizar a operação Interseção diretamente nas relações ALUNOS e

PROFESSORES, pois elas são logicamente diferentes. Então, antes da Interseção, será feito uma

Projeção e uma Seleção, para fazer duas relações logicamente equivalentes. Logo após será feita a

Interseção entre essas duas relações novas. A expressão acima apresentará como resultado as

informações contidas na Figura 8.

Figura 8. Exemplo de interseção.

Diferença (Difference): Retorna todas as tuplas que estão na primeira relação, mas não

estão na segunda relação. É identificada pelo símbolo − entre duas relações Assim como a União e a

Interseção. É necessário que as relações sejam logicamente equivalentes para que se possa fazer seu

uso.

Exemplo: (πId_Professor, Sexo (ALUNOS)) − (π Id_Professor, Sexo_P (PROFESSORES))

Não se pode utilizar a operação de Diferença diretamente nas relações ALUNOS e

PROFESSORES, pois elas são logicamente diferentes. Então, antes da Diferença, será feito uma

Projeção, para fazer duas relações logicamente equivalentes. Logo após será feita a Diferença entre

essas duas relações projetadas.

A Figura 9 apresenta o resultado da consulta acima.

Page 26: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

15

Figura 9. Exemplo de diferença.

Produto Cartesiano (Cross Product): Retorna a combinação de todas as tuplas das relações

em questão. É usado o operador × entre duas relações para denotar esta operação.

Exemplo: (ALUNOS × PROFESSORES)

A consulta acima retorna uma combinação de todas as tuplas da relação ALUNOS com a

relação PROFESSORES. A Figura 10 mostra o resultado desta consulta.

Figura 10. Exemplo de produto cartesiano.

Page 27: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

16

2.1.2.2 Cálculo Relacional

O cálculo relacional é uma linguagem de consulta baseada na lógica matemática. Essa

linguagem é não-procedural, ou seja, a partir de uma expressão do cálculo relacional, pode-se

descrever uma consulta sem precisar especificar os procedimentos para obtenção das informações.

Existem dois tipos de cálculo relacional: Cálculo Relacional de Tuplas e Cálculo Relacional de

Domínio (DATE, 2003).

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.

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

combinação de construções da álgebra e do cálculo relacional, e fornece uma linguagem declarativa

de alto nível, facilitando as consultas aos usuários (SILBERCHATZ, 2006).

Tornou-se uma linguagem padrão, pela fácil migração de aplicações de banco de dados, e

pela sua independência de hardware e software. Com isso, passou a ser a linguagem mais

apropriada e utilizada em SGBDs relacionais comerciais.

A SQL é especificada por duas linguagens (SILBERCHATZ, 2006):

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.

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 três cláusulas: select, from e where.

Segue um exemplo de expressão em SQL utilizando essas cláusulas:

SELECT Nome FROM TabAluno WHERE Nome=Maria

Page 28: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

17

A Tabela 2 mostra o objetivo de cada uma das cláusulas da estrutura do comando Select na

linguagem SQL:

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

2.2 COMPILADORES

Compiladores são programas de computadores que fazem a tradução de uma linguagem para

outra. Um compilador recebe como entrada um programa escrito na linguagem-fonte, geralmente

uma linguagem de alto nível, como C, C++, C# ou Java, e produz um programa equivalente na

linguagem-alvo (LOUDEN, 2004); ver Figura 11. Uma das principais características de um

compilador é relatar quaisquer erros no programa fonte detectados durante o processo de tradução

(AHO, 2008).

Compiladores são usados em quase todas as áreas da computação, portanto, é de grande

importância qualquer pessoa envolvida profissionalmente com computadores conhecer a

organização e as operações básicas de um compilador (LOUDEN, 2004).

Figura 11. Um compilador.

Fonte: Adaptado de AHO (2008).

Page 29: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

18

2.2.1 Processo de Tradução do Compilador

Um compilador é constituído internamente por fases para fazer a execução das distintas

operações lógicas necessárias. Cada fase pode ser entendida como peças separadas dentro do

compilador, que podem ser escritas como operações codificadas separadamente, porém, na prática

elas são freqüentemente agrupadas (LOUDEN, 2004).

A Figura 12 mostra as fases da compilação.

Figura 12. Fases de um compilador.

Fonte: MARTINOTTO (200-?).

2.2.1.1 Análise Léxica

Nesta fase o programa fonte é lido. Durante o processo de análise léxica, as palavras ou

lexemas são guardados na tabela de símbolos e classificados de acordo com a linguagem, em

palavras reservadas, comandos, variáveis e tipos básicos (LOUDEN, 2004).

Tabelas de símbolos é uma estrutura de dados que guarda informações de identificadores:

funções, variáveis, constantes e tipos de dados (LOUDEN, 2004).

Page 30: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

19

2.2.1.2 Análise Sintática

A análise sintática determina os elementos estruturais do programa e seus relacionamentos.

No final da análise, temos o programa fonte representado como uma árvore sintática (LOUDEN,

2004). A Figura 13 mostra um exemplo de árvore sintática.

Figura 13. Árvore sintática.

Fonte: MARTINOTTO (200-?).

2.2.1.3 Análise Semântica

O analisador semântico utiliza a árvore sintática e as informações da tabela de símbolos para

verificar a consistência semântica do programa fonte com a definição da linguagem. O analisador

também reúne informações sobre os tipos e as salva na árvore sintática ou na tabela de símbolos,

para utilizar durante a geração do código intermediário. Uma grande importância da análise

semântica é a verificação de tipo, em que o compilador verifica se cada operador possui operandos

compatíveis (AHO, 2008).

2.2.1.4 Geração de Código Intermediário

O gerador de código intermediário é acionado quando o programa fonte for analisado

lexicamente, sintaticamente e semanticamente, e estiver correto no ponto de vista das análises. Esse

Page 31: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

20

código intermediário deve possuir duas propriedades importantes: (i) ser facilmente produzido; e

(ii) ser facilmente traduzido para a máquina alvo (AHO, 2008).

2.2.1.5 Otimização de Código

A fase de otimização de código independe das arquiteturas das máquinas, e tem por objetivo

fazer algumas modificações no código intermediário para produzir um código melhor, isto é, um

código mais rápido, menor ou até mesmo um código que consuma menos energia (AHO, 2008).

2.2.1.6 Geração de Código

A tarefa principal do gerador de código é transformar uma especificação intermediária do

programa fonte para uma especificação do programa alvo. Se o programa alvo for código de

máquina de alguma arquitetura, devem-se selecionar os registradores ou localizações de memória

para cada uma das variáveis usadas pelo programa. Depois, os códigos intermediários são

traduzidos em seqüências de instruções de máquina que realizam a mesma tarefa (AHO, 2008).

2.2.2 Tratador de Erros

Uma das principais funções do compilador é fazer o tratamento dos erros. Erros que podem

ser detectados durante quase todas as fases de compilação. Os erros encontrados por um compilador

devem ser reportados, e é importante que o compilador possa gerar mensagens inteligíveis e

concluir a compilação após cada erro (LOUDEN, 2004).

Cada fase da compilação requer um tratamento de erro diferente, portanto, é necessário ter

um sistema para fazer o tratamento dos erros, onde este sistema deverá possuir diversas operações,

sendo que cada operação será apropriada para uma fase diferente da compilação e para uma

situação específica (LOUDEN, 2004).

2.3 FERRAMENTAS SIMILARES

Na disciplina de banco de dados do curso de Ciência da Computação da Univali, bem como

de outras universidades, um dos conteúdos estudados é o banco de dados relacionais, seu projeto e

manipulação de dados. Para que o acadêmico tenha um 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

Page 32: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

21

compreensão desta matéria, por tratar-se 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.

Este capítulo tem por objetivo apresentar algumas ferramentas existentes que abordam

álgebra relacional, traçando um comparativo entre elas, dando ênfase à ferramenta de ensino

proposta neste trabalho.

2.3.1 Interactive Data Flow Query Language

A ferramenta Interactive Data Flow Query Language (iDFQL), desenvolvida por Ana Paula

Appel e Caetano Traina Jr., é uma ferramenta de consulta para SGBDs baseada na álgebra

relacional (APPEL; JUNIOR, 2004). Esta ferramenta tem uma aparência visual, e é basicamente

formada por uma coleção de operadores representados por símbolos e as consultas são

representadas por diagramas de fluxo.

A Figura 14 mostra a interface da ferramenta iDFQL.

Figura 14. Interface da ferramenta iDFQL.

Fonte: Appel e Traina (2004).

Page 33: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

22

• A área I é um painel contendo uma coleção de operadores, os quais são operadores da

álgebra relacional e operadores da própria ferramenta;

• A área II é utilizada pelo usuário para elaborar as consultas, através de diagramas de

fluxo. Nesta área também há um operador, este chamado de saída, que por sua vez,

mostra o resultado final da consulta; e

• A área III informa as mensagens de erro e também mostra a consulta transformada para

SQL.

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 (área I) e os colocam no painel de construção (área

II). Para a consulta ser realizada com sucesso, é necessário que todos os operadores estejam

interligados corretamente. Caso não esteja, será apresentado um erro de consulta.

A Figura 15 mostra um exemplo de consulta utilizando a ferramenta iDFQL.

Figura 15. Exemplo de consulta utilizando a ferramenta iDFQL.

Fonte: Appel e Junior (2004).

Page 34: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

23

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.

2.3.2 Ferramenta para o Ensino de Álgebra Relacional

Esta ferramenta foi desenvolvida por Tatiane Schwanck Schardosim durante a disciplina de

Trabalho de Conclusão de 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 exigidos, quais são: (i) Banco de

dados Oracle 9i ou 10g; (ii) Biblioteca estática d2kwutil.ppl e seus componentes; (iii) Ferramentas

da Oracle Forms Runtime 6.0 e Forms Builder; e (iv) 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 onde 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).

A interface desta ferramenta é dividida em quatro abas. A Figura 16 mostra a interface da

Aba 1.

Page 35: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

24

Figura 16. Interface da ferramenta mostrando a aba 1.

Fonte: Adaptado de Schardosim (2006).

É na aba 1 que se inicia todo o processo de consulta. Há um bloco descrito como Álgebra

Relacional onde o aluno escreve sua expressão em álgebra relacional. Um campo logo abaixo a este

informa as dicas e também os erros quando a expressão é compilada. O bloco chamado operadores

contém os operadores da álgebra relacional utilizados nesta ferramenta. Estes operadores auxiliam o

aluno na formulação da expressão (SCHARDOSIM, 2006).

O botão visualizar serve para que o aluno visualize sua consulta mais clara. Quando

pressionado, abre uma nova janela com a consulta. O botão compilar serve para compilar e validar a

expressão da álgebra relacional. Há também um bloco que contém uma árvore, onde auxilia o aluno

a encontrar as tabelas existentes no banco (SCHARDOSIM, 2006).

A aba 2 apresenta a consulta convertida para SQL. A aba 3 apresenta os resultados obtidos

pela consulta, e a aba 4 apresenta todas as relações que foram envolvidas na consulta

(SCHARDOSIM, 2006).

Page 36: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

25

2.3.3 Comparativo

Com base nos estudos das ferramentas apresentadas, é apresentado na Tabela 3 um

comparativo entre elas e a ferramenta proposta, apresentando as vantagens e desvantagens de cada

uma.

Tabela 3. Comparativo das Ferramentas Similares.

Características iDFQL Ferramenta para o Ensino de Álgebra Relacional

Ferramenta Proposta

Plataforma WEB Não Não Sim Baseada em exercícios Não Não Sim Transparência para o usuário da base de dados para executar a ferramenta?

Não Não Sim

Correção automática da questão

Sim Sim Sim

Informa em que parte errou? Não Sim Sim Oferece relatórios sobre o desempenho na resolução?

Não Não Sim

Com relação a correção automática, verificou-se que a abordagem das ferramentas estudadas

é diferente da proposta deste trabalho, pois as mesmas fazem a correção das expressões inseridas

pelo usuário, verificando a sintaxe e a semântica. Porém a ferramenta proposta é baseada em

exercícios, onde o aluno irá responder as questões elaboradas pelos professores, esperando-se então

que consiga resolver problemas através da mesma.

Outra característica importante da ferramenta proposta é que ela será on-line, sendo assim,

não precisará ter instalada a ferramenta nos computadores dos usuários e nem os bancos de dados

para o funcionamento delas, como é preciso nas ferramentas apresentadas.

E por ser um sistema on-line de resolução de exercícios, a ferramenta proposta armazenará

informações das questões resolvidas pelos alunos e irá gerar relatórios importantes para a

verificação do rendimento dos mesmos.

Page 37: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

3 PROJETO

Neste capítulo é apresentado o projeto do sistema para apoio a aprendizagem de álgebra

relacional contendo seus requisitos funcionais e não-funcionais, regras de negócio, casos de uso,

diagramas de classe e o método de correção da álgebra relacional.

3.1 ANÁLISE DE REQUISITOS

Neste capítulo são apresentadas todas as funcionalidades para a implementação de uma

ferramenta web que apóie a aprendizagem de álgebra relacional, incluindo cadastro de professores,

alunos, turmas, avaliações. No entanto, verificou-se que o escopo do trabalho ficou muito amplo e

acredita-se não ser viável sua completa implementação dentro do prazo do TCC.

Como o foco deste projeto é a álgebra relacional em si, foi priorizado nesta versão do

sistema, no mínimo, a implementação dos requisitos para criação e resolução de exercícios, ficando

os demais, caso não haja tempo, sugeridos para futuros trabalhos. Desta forma, não fará parte do

escopo desta versão do trabalho a implementação dos requisitos referentes à elaboração e resolução

de avaliações, a saber:

• Requisitos funcionais: RF09, RF10.

• Regras de negócio: RN02, RN03, RN05, RN08, RN09.

• Casos de uso: UC01.04, UC02.03.

Com relação à álgebra relacional, como são muitas as operações constantes na linguagem,

definiu-se o escopo do projeto para atender no mínimo as seguintes operações: seleção, projeção,

junção, junção natural, união, intersecção.

As seções a seguir apresentam a descrição detalhada do projeto.

3.1.1 Requisitos Funcionais

• RF01. O sistema deve permitir o cadastro, alteração e exclusão de professores.

• RF02. O sistema deve permitir que o professor crie turmas.

Page 38: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

27

• RF03. O sistema deve permitir o cadastro, alteração e exclusão de alunos.

• RF04. O sistema deve permitir que os alunos participem das turmas.

• RF05. O sistema deve permitir que o professor aceite alunos nas turmas.

• RF06. O sistema deve permitir que o professor crie exercícios de álgebra relacional.

• RF07. O sistema deve permitir que os alunos pratiquem exercícios de álgebra relacional.

• RF08. O sistema deve corrigir automaticamente os exercícios respondidos pelos alunos.

• RF09. O sistema deve permitir que o professor crie avaliações.

• RF10. O sistema deve permitir que o aluno responda as avaliações.

• RF11. O sistema deve permitir que o professor visualize o desempenho de cada aluno.

• RF12. O sistema deve permitir que o professor visualize o desempenho de cada turma.

• RF13. O sistema deve permitir que o administrador insira o modelo ER das bases de

dados.

• RF14. O sistema deve conter três níveis de complexidade de exercícios.

3.1.2 Requisitos Não Funcionais

• RNF01. O banco de dados para armazenar os dados deverá ser o SQL Server.

• RNF02. O sistema deve ser implementado usando a linguagem de programação

ASP.NET.

• RNF03. O sistema deverá ser orientado à WEB.

• RNF04. Para efetuar a correção automática dos exercícios o sistema deve utilizar uma

técnica de conversão da álgebra relacional para SQL.

• RNF05. Perfis de acesso: (i) Administrador do Site: todas as operações; (ii) Professor:

operações relacionadas à criação de exercícios, avaliações e de turmas; (iii) Aluno

Page 39: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

28

Cadastrado: operações relacionadas aos exercícios e avaliações; (iv) Visitante: operações

de exercícios de prática.

3.1.3 Regras de Negócio

• RN01. Os alunos não podem ter acesso a respostas de outros alunos.

• RN02. Somente alunos cadastrados e participando de alguma turma podem responder

avaliações.

• RN03. Nos exercícios de avaliação, o professor define quantas tentativas os alunos têm

para responder cada questão.

• RN04. O FeedBack dos exercícios de prática deve ser direcionado para o aluno e para

seu professor.

• RN05. O FeedBack dos exercícios de avaliação deve ser direcionado para o professor.

• RN06. O FeedBack dos exercícios deve apresentar o desempenho do aluno, detalhando

onde houveram os erros e os acertos.

• RN07. Os alunos podem acessar questões elaboradas por quaisquer professores.

• RN08. O professor deve configurar a avaliação definindo o número de questões e o peso

de cada uma.

• RN09. As questões de uma avaliação serão apresentadas aos alunos de forma aleatória.

• RN10. O professor poderá classificar as questões conforme seu nível de dificuldade (a

definir).

• RN11. As operações mínimas que deverão ser implementadas em álgebra são: seleção,

projeção, junção, junção natural, união, intersecção.

Page 40: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

29

3.2 DIAGRAMAS DE CASOS DE USO

3.2.1 PCT01. Controle de Usuários

Este Pacote contém os Casos de Uso que podem ser realizados pelo Visitante, Aluno e

Usuário (Aluno e Professor). A Figura 17 apresenta os Casos de Uso do Pacote PCT01.

Figura 17. Pct01. Controle de usuários

3.2.1.1 UC01.01 Cadastro Usuário

Permite ao visitante cadastrar suas informações pessoais. Se o visitante for um usuário

cadastrado e estiver logado no sistema, permitirá que ele altere ou exclua seu cadastro. Também é

permitido ao usuário consultar seus dados cadastrais.

A Tabela 4 apresenta todos os cenários do Caso de Uso UC01.01.

Page 41: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

30

Tabela 4. UC01.01 Cadastro Usuário

Cenário Comentários

Cadastro Usuário {Principal}

1. O usuário deverá acessar a opção "Faça seu Cadastro" na página principal do sistema. 2. O sistema solicita os dados para uma nova conta. 3. O usuário deverá preencher os campos necessários e clicar no botão Criar Usuário. 4. O sistema valida e grava os dados. 5. O usuário clica em avançar. 6. O sistema solicita os dados gerais. 7. O usuário deverá preencher os campos necessários e clicar em salvar. 8. O sistema valida e grava os dados.

Edita Cadastro {Alternativo}

O usuário deve estar logado no sistema. 1. O usuário deverá acessar a opção “Editar Informações Gerais”. 1.1. O sistema apresenta a tela para edição do cadastro, com todos os campos já preenchidos. 1.2. O usuário edita as informações e confirma. 1.3. Retorna ao passo 1.

Exclui Cadastro {Alternativo}.

O usuário deve estar logado no sistema. 1. O usuário deverá acessar a opção “Excluir Cadastro”. 1.1. O sistema apresenta a tela com o cadastro e um botão para confirmar exclusão. 1.2. O usuário clica em confirmar exclusão. 1.3. O sistema apaga o cadastro. 1.4. Retorna à pagina inicial do sistema.

Inconsistência na validação dos dados {Exceção}.

No passo 4, caso os campos obrigatórios(login, senha, confirmar senha, e-mail, pergunta secreta, resposta) não tenham sido preenchidos ou algum campo único seja igual a outro já cadastrado, apresenta mensagem "Verifique os seguintes erros: <<listar erros>>".

Vinculado a Turmas {Exceção}

No passo 1.2 do cenário Exclui Cadastro, caso o usuário esteja vinculado a alguma turma, o sistema apresenta a mensagem "Seu cadastro não pode ser excluído, você esta vinculado a TURMA X".

3.2.1.2 UC01.02 Responde Exercícios

Permite aos usuários responderem os exercícios. A Tabela 5 apresenta todos os cenários do

Caso de Uso UC01.02.

Page 42: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

31

Tabela 5. UC01.02 Responde Exercícios

Cenário Comentários

Responde Exercícios {Principal}

1. O usuário clica no link "Responder". 2. O sistema aleatoriamente apresenta uma página contendo o Exercício a ser resolvido bem como seu modelo ER da base de banco de dados, e também um espaço para a resposta. 3. O usuário responde o Exercício e clica no botão "Corrigir Exercício". 4. O sistema valida a resposta. 5. O sistema apresenta a mensagem "Resposta Correta...". 6. O sistema salva as informações.

Outra Pergunta {Alternativo}

No passo 3, o usuário pode optar por responder outra pergunta: 3.1. O usuário clica no botão "Outro Exercício". 3.2. O sistema volta ao passo 2 com um novo exercício.

Resposta Errada {Exceção}

No passo 4, a resposta pode estar errada: 4.1. O sistema apresenta a mensagem "Resposta Errada", mostrando onde ocorreu o erro. 4.2. O sistema salva as informações.

Usuário não cadastrado {Exceção}

No passo 6, se o usuário não estiver logado, ou não for cadastrado: 6.1. O sistema não grava nenhuma informação sobre as resoluções dos exercícios.

Usuário não cadastrado - Resposta errada {Exceção}

No passo 4.2, do cenário de Resposta Errada, se o usuário não estiver logado, ou não for cadastrado: 4.2.1. O sistema não salva nenhuma informação.

3.2.1.3 UC01.03 Efetua Login

Permite que um usuário cadastrado possa ter acesso ao sistema, através do fornecimento de

uma conta e senha.

3.2.1.4 UC01.04 Responde Prova

Permite aos alunos responderem as provas. Para o aluno poder responder uma prova, ele deve

estar vinculado a alguma turma. A prova estará configurada de acordo com os critérios do

professor. Poderão ser definidos o número de exercícios, o peso de cada exercício e o número de

tentativas para a resolução de cada exercício.

A Tabela 6 apresenta todos os cenários do Caso de Uso UC01.04.

Page 43: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

32

Tabela 6. UC01.04 Responde Prova

Cenário Comentários

Responde Prova {Principal}

1. O aluno clica em "Responder Prova". 2. O sistema mostra uma página contendo todas as definições da prova, como a quantidade de questões, o peso de cada questão e as questões geradas aleatoriamente. 3. O aluno clica em cima de uma questão para respondê-la. 4. O sistema apresenta uma tela para responder a questão da prova semelhante a resolução de exercícios. 5. O usuário responde a questão conforme o ''UC01.02", porém com uma quantidade limitada de tentativas, determinado pelo professor. 6. O usuário clica em "Corrigir" 7. O sistema salva todas as informações de erros e tentativas do usuário. 8. Ao término da resolução de todas as questões, o usuário clica no botão "Prova Finalizada". 9. O sistema salva todas as informações e mostra a mensagem "Prova realizada". 10. Retorna a página inicial.

3.2.1.5 UC01.05 Se cadastra na turma

Permite ao aluno se cadastrar nas turmas existentes. O aluno procura pela turma de seu

professor e solicita ao professor sua vinculação na turma. Após a solicitação, aguarda a aprovação

da vinculação. A Tabela 7 apresenta todos os cenários do caso de Uso UC01.05.

Tabela 7. UC01.05 Se cadastra na turma

Cenário Comentários

Solicitação de cadastro em turma {Principal}

1. O aluno clica no botão "Turmas". 2. O Sistema apresenta uma lista de todas as turmas existentes e alguns campos para fazer uma busca personalizada por nome de professor. 3. O aluno coloca o nome do professor e clica em busca. 4. O sistema apresenta todas as turmas do professor buscado com um botão ao lado escrito "Enviar Solicitação". 5. O aluno clica no botão "Enviar Solicitação" ao lado da turma desejada. 6. O sistema apresenta uma mensagem "Solicitação enviada ao professor". 7. Retorna ao passo 2.

Page 44: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

33

3.2.2 PCT02. Controle do Professor

Este pacote fornece os Casos de Uso que podem ser realizados pelo Professor. A Figura 18

apresenta os Casos de Uso do Pacote PCT02.

Figura 18. Pct02. Controle do professor

3.2.2.1 UC02.01 Cria Turmas

Permitir ao Professor criar, editar ou excluir Turmas. A Tabela 8 apresenta todos os cenários

do Caso de Uso UC02.01.

Page 45: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

34

Tabela 8. UC02.01 Cria Turmas

Cenário Comentários

Criar Turma {Principal}

1. O Professor clica no link "Criar Nova Turma". 2. O sistema apresenta uma página com todas as suas turmas e campos para inserção de dados para a criação de uma nova turma. 3. O Professor insere os dados e clica no botão "Criar". 4. O sistema valida os dados e cria a Turma. 5. O sistema apresenta a seguinte mensagem: "Sua Turma foi criada com sucesso". 6. Retorna ao passo 2.

Edita Turma {Alternativo}

No passo 3, se o Professor clicar em uma turma existente, ele poderá editar esta Turma. 3.1. O Sistema apresenta a tela para edição da turma, com todos os campos já preenchidos e um botão "editar". 3.2. O Professor edita as informações e confirma. 3.3. O Sistema apresenta a mensagem "Turma editada com sucesso". 3.4. Retorna ao passo 2.

Exclui Turma {Alternativo}

No passo 3, se o Professor clicar em cima de uma turma existente, ele poderá excluir esta Turma. 3.1. O Sistema apresenta a tela para edição da turma, com todos os campos já preenchidos. 3.2. O Professor clica no botão "Excluir Turma". 3.3. O Sistema pede a confirmação da exclusão. 3.4. O Professor confirma a exclusão. 3.3. O Sistema apresenta a mensagem "Turma excluída com sucesso!". 3.6. Retorna ao passo 2.

Inconsistência na validação dos dados {Exceção}

1. No Cadastro ou Edição de Turma, caso os campos obrigatórios não tenham sido preenchidos, o sistema apresenta a mensagem "Verifique os seguintes erros: <<listar erros>>".

Inconsistência na validação dos dados 2 {Exceção}

1. Na exclusão da Turma, caso a Turma esteja vinculada com alguma prova a ser realizada, o sistema apresenta a mensagem "Não foi possível excluir a turma, existe provas a serem realizadas”.

3.2.2.2 UC02.02 Cria Exercícios

Permite ao Professor criar, alterar ou excluir exercícios. Também é permitido consultar os

exercícios criados por ele. A Tabela 9 apresenta todos os cenários do Caso de Uso UC02.02.

Page 46: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

35

Tabela 9. UC02.02 Cria Exercícios

Cenário Comentários

Criar Exercícios {Principal}

1. O Professor clica em "Elaborar Exercício". 2. O Sistema apresenta uma tela com os campos para a criação do exercício. 3. O Professor insere os dados do exercício e clica em "Inserir". 4. O Sistema valida os dados e cria o exercício. 5. O Sistema exibe a mensagem "Exercício criado com sucesso".

Edita Exercícios {Alternativo}

No passo 1, se o Professor clicar em “Editar Exercício”, ele pode editá-lo. 1.1. O sistema apresenta uma tela com todos os exercícios criados por ele. 1.2. O professor clica no exercício que deseja editar. 1.3. O sistema apresenta a tela para edição do exercício, com todos os campos já preenchidos e um botão "salvar". 1.4. O Professor edita as informações e salva. 1.5. O sistema apresenta a mensagem "Exercício editado com sucesso".

Exclui exercícios {Alternativo}

No passo 1, se o Professor clicar em “Excluir Exercício”, ele pode excluí-lo 1.1. O sistema apresenta uma tela com todos os exercícios criados por ele e um link excluir ao lado de cada um. 1.2. O professor clica no link excluir correspondente ao exercício que ele deseja excluir. 1.3. O sistema pede a confirmação de exclusão. 1.4. O Professor confirma a exclusão. 1.5. O sistema exclui o exercício. 1.6. Retorna ao passo 1.1.

Inconsistência na validação dos dados {Exceção}

1. No Cadastro ou Edição de exercício, caso os campos obrigatórios não tenham sido preenchidos ou algum campo único seja igual a outro já cadastrado, apresenta mensagem "Verifique os seguintes erros: <<listar erros>>".

3.2.2.3 UC02.03 Cria Prova

Permite ao Professor criar, alterar ou excluir Provas. A Tabela 10 apresenta todos os cenários

do Caso de Uso UC02.03.

Page 47: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

36

Tabela 10. UC02.03 Cria Prova

Cenário Comentários

Cria Prova {Principal}

1. O Professor clica em "Criar Prova". 2. O Sistema apresenta a listagem de provas do Professor e um botão para criar uma nova prova. 3. O Professor clica no botão "Nova Prova". 4. O Sistema apresenta uma tela com os campos para a criação da prova. 5. O Professor insere os dados da prova e clica em "Criar". 6. O Sistema valida os dados e cria a prova. 7. O Sistema exibe a mensagem "Prova criada com sucesso". 8. Retorna ao passo 2.

Edita Prova {Alternativo}

No passo 3, se o Professor clicar em cima de uma prova, ele pode editá-la. 3.1. O sistema apresenta a tela para edição da prova, com todos os campos já preenchidos e um botão "editar". 3.2. O Professor edita as informações e confirma. 3.3. O sistema edita a prova. 3.4. O sistema apresenta a mensagem "Prova editada com sucesso". 3.5. Retorna ao passo 2.

Exclui Prova {Alternativo}

No passo 3, se o Professor clicar em cima de uma prova, ele pode excluí-la. 3.1. O sistema apresenta a tela para edição da prova, com todos os campos já preenchidos e um botão "excluir". 3.2. O Professor clica no botão excluir. 3.3. O sistema pede a confirmação de exclusão. 3.4. O Professor confirma a exclusão. 3.5. O sistema exclui a prova. 3.6. Retorna ao passo 2.

Erro na edição ou exclusão de Prova {Exceção}

No passo 3.5 do cenário "Exclui Prova" ou no passo 3.3 do cenário "Edita Prova", se a prova já ter iniciado, o sistema apresenta a mensagem "Impossível esta operação! Prova já iniciada".

Inconsistência na validação dos dados {Exceção}

1. No Cadastro ou Edição de prova, caso os campos obrigatórios não tenham sido preenchidos ou algum campo único seja igual a outro já cadastrado, apresenta mensagem "Verifique os seguintes erros: <<listar erros>>".

3.2.2.4 UC02.04 Avalia Aluno

Permite ao professor verificar o desempenho do aluno na resolução dos exercícios, na

resolução das provas, os erros nas resoluções, as notas das provas, entre outras coisas.

3.2.2.5 UC02.05 Aceita Aluno na Turma

Permite ao professor aceitar ou recusar solicitações de alunos para entrarem nas turmas.

Abaixo segue uma tabela mostrando todos os cenários do UC02.05.

Page 48: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

37

Tabela 11. UC02.05 Aceita Aluno na Turma

Cenário Comentários

Aceita aluno {Principal}

1. O professor clica no botão "Turmas". 2. O sistema apresenta uma página com uma lista das turmas do professor. 3. O professor clica em cima da Turma desejada. 4. O sistema apresenta as informações sobre a Turma, inclusive um botão escrito "verificar solicitações". 5. O professor clica no botão verificar solicitações. 6. O sistema apresenta um lista contendo todos os alunos que enviaram solicitações, e dois botões do lado de cada aluno escrito em um "Aceitar" e no outro "Não Aceitar". 7. O professor clica no botão "Aceitar" ao lado de determinado aluno para aceitá-lo na turma. 8. O sistema inclui este aluno na turma, retira a solicitação da lista de solicitações e apresenta a mensagem "Aluno inscrito na Turma". 9. O sistema continua na mesma tela de Aceitação de solicitações.

Não aceita aluno {Alternativo}

No passo 7 se o aluno clicar em "Não Aceitar" ao lado de determinado aluno para aceitá-lo na turma. 7.1. O sistema não inclui este aluno na turma, retira a solicitação da lista de solicitações e apresenta a mensagem "Aluno não inscrito na Turma". 9. O sistema continua na mesma tela de Aceitação de solicitações.

3.2.3 PCT03. Controle do Site

Este pacote fornece os Casos de Uso que podem ser realizados pelo Administrador do Site.

A Figura 19 apresenta os Casos de Uso do Pacote PCT03.

Figura 19. Pct03. Controle do site

3.2.3.1 UC03.01 Cria Modelo

Permite ao Administrador do Site inserir, editar ou excluir o Modelo ER da base de dados.

Page 49: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

38

3.3 DIAGRAMA DE CLASSE

O Diagrama de Classe é a representação da estrutura e relações das classes. Nele é definida

toda a classificação dos objetos que o sistema proposto necessita possuir. A Figura 20 apresenta o

Diagrama de Classe do sistema proposto.

Figura 20. Diagrama de classe

3.4 MÉTODO DE CORREÇÃO DA ÁLGEBRA RELACIONAL

Para fazer a correção dos exercícios, o sistema utiliza um método de transformação da

expressão em álgebra relacional para o SQL. Ao se obter o comando em SQL, este é submetido ao

banco. Como o professor, ao criar um exercício, coloca a resposta em SQL, então, será submetido

ao banco o comando gerado pela transformação da expressão de álgebra e a resposta do professor.

Com o resultado obtido dos dois comandos, é feita uma comparação para verificar se o resultado foi

o esperado.

A Figura 21 apresenta um modelo do método de correção da álgebra relacional.

Page 50: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

39

Figura 21. Método de correção da álgebra relacional

Page 51: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

4 IMPLEMENTAÇÃO

Neste capítulo são apresentadas todas as ferramentas e técnicas utilizadas no

desenvolvimento do sistema.

4.1 MICROSOFT VISUAL STUDIO 2008

O sistema foi desenvolvido utilizando-se o ambiente de programação Visual Studio 2008 da

Microsoft, que segundo a Microsoft Corporation (2009), é um conjunto de ferramentas de

desenvolvimento projetadas para auxiliar os desenvolvedores de software a criarem soluções

inovadoras. A função do Visual Studio 2008 é aprimorar o processo de desenvolvimento para tornar

mais simples e satisfatório o trabalho de criação das soluções.

Segundo a Microsoft Corporation (2009), o Visual Studio aprimora o processo de

desenvolvimento de quatro maneiras:

• De maneira produtiva, pois suas ferramentas inovadoras ajudam os desenvolvedores a se

concentrarem na resolução dos problemas, sem perder tempo com pequenos detalhes;

• De maneira integrada, pois o ambiente Visual Studio 2008 conta com ferramentas,

servidores e serviços que funcionam bem entre si e outras ferramentas da Microsoft;

• De maneira abrangente, oferecendo ferramentas para todas as fases de desenvolvimento

do software, além disso, oferece suporte ao desenvolvimento de software para PCs,

servidores, web e dispositivos móveis. Também oferece suporte a variadas linguagens de

programação, entre elas o C#, Visual Basic, C++, ASP.NET, entre outras; e

• De maneira confiável, pois foi projetado e testado para apresentar características

consistentes de confiabilidade, segurança, interoperabilidade e compatibilidade.

Pelos motivos apresentados acima, foi adotado o ambiente de programação Visual Studio

2008 para o desenvolvimento do sistema.

4.2 MICROSOFT SQL SERVER 2005 EXPRESS

O Microsoft SQL Server 2005 Express é um SGBD criado pela Microsoft. Segundo a

Microsoft Corporation (2009), é um produto de gerenciamento de dados confiável e poderoso que

Page 52: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

41

fornece recursos robustos, proteção de dados e desempenho para clientes de aplicativos

incorporados, aplicativos Web simples e armazenamento de dados locais. O SQL Server 2005

Express é uma versão gratuita e pode ser distribuído com outros aplicativos.

O sistema para apoio à aprendizagem de álgebra relacional à princípio utilizaria o Banco de

Dados MySQl, porém optou-se por adotar o SQL Server 2005 Express como banco de dados para o

gerenciamento das informações, por se tratar de uma versão gratuita, fácil de usar, leve,

incorporável e por sua total integração com o ambiente de desenvolvimento Visual Studio 2008.

Uma restrição na implementação da expressão de junção natural foi encontrada ao se adotar

o SGBD SQL Server, o qual não suporta este tipo de comando. Por tanto, a expressão junção

natural não foi implementada.

4.3 GOLD PARSER BUILDER

GOLD Parser Builder é uma ferramenta gratuita desenvolvida pela Devin Cook, utilizada

para a criação de compiladores (DEVIN COOK, 2009).

A ferramenta GOLD possui um Construtor (Builder) que é o seu principal componente. Este

componente tem por objetivo ler a gramática descrita na meta-linguagem do GOLD, fazer as

respectivas análises, e gerar um 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 são capazes de carregar este arquivo e ler suas 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.

A figura 22 mostra a interface da ferramenta GOLD Parser Builder.

Page 53: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

42

Figura 22. Interface da ferramenta GOLD Parser Builder.

Fonte: Devin Cook (2009).

Além do arquivo .cgt, a ferramenta GOLD também gera um código intermediário na

linguagem desejada. Este código intermediário contém o código fonte base, no qual após passar por

uma fase de otimização do código, ele é utilizado para utilizar a “Engine” escolhida.

A Figura 23 mostra como gerar o código intermediário no GOLD. No momento de criação

do código intermediário, escolhe-se a linguagem desejada.

Page 54: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

43

Figura 23. Gerando o programa modelo no GOLD.

Fonte: Devin Cook (2009).

Abaixo, a Figura 24 mostra um modelo do processo de execução da ferramenta GOLD

Parser Builder.

Figura 24. Modelo de processo de execução da ferramenta GOLD.

A ferramenta GOLD Parser Builder foi a escolhida para utilizar no sistema devido a ser uma

ferramenta gratuita e por gerar o código na linguagem C#, a linguagem utilizada no

desenvolvimento do sistema.

4.4 CORREÇÃO DOS EXERCÍCIOS

Conforme a Figura 21, do capítulo 3.4, pode-se verificar que são necessárias algumas etapas

para se fazer a correção dos exercícios. Neste capítulo é explicado detalhadamente como é feita a

correção.

Page 55: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

44

Primeiramente, com a ajuda da ferramenta GOLD Parser Builder, foi desenvolvido um

compilador para fazer a tradução da álgebra relacional para o SQL. Na ferramenta GOLD, foi

elaborada uma gramática (Apêndice A), a qual está relacionada aos tipos de operações da álgebra

relacional. Ainda com a ajuda da ferramenta GOLD, foi criado um arquivo com uma tabela da

gramática compilada e elaborado o código intermediário (Apêndice A). Com este código

intermediário, após fazer uma otimização, conseguiu-se fazer a tradução de operações de álgebra

relacional para o SQL. Com isso, o processo de tradução da álgebra para o SQL estava pronto.

Figura 25. Etapa de compilação.

Após esta primeira etapa, partiu-se para submeter ao Banco de Dados o comando SQL que

foi gerado pela tradução do compilador e o SQL informado pelo professor na hora de elaborar um

exercício. Com esses dois resultados, pode-se fazer a comparação dos resultados.

Na comparação dos resultados, primeiro é analisado o número tuplas e o número de colunas.

Se em alguma dessas duas análises for diferente, já se sabe que o resultado está incorreto. Porém, se

passar por estas duas análises, é capturado o conteúdo das tuplas para uma nova analise.

Esta nova análise é dada da seguinte maneira, o sistema verifica quais foram os dados que

foram recuperados, e a cada tupla encontrada, o sistema transforma em uma string. Este processo é

executado em cima do SQL que foi gerado pela tradução do sistema e do SQL informado pelo

professor. Feito isto, ele faz a comparação dos strings. O código pode ser visualizado no Apêndice

B.

Page 56: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

45

Com este método de correção, foi delimitado ao aluno escrever uma expressão de álgebra

relacional que esteja completamente na seqüência em que descrito no enunciado de uma pergunta,

por exemplo:

Em uma pergunta, o enunciado é o seguinte: Selecione o nome dos clientes e suas

respectivas cidades. Se o aluno trouxer 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 (ver Figura

26).

Figura 26. Seqüência da resposta.

Page 57: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

46

5 APRESENTAÇÃO DA FERRAMENTA

Neste capítulo são descritas todas as funcionalidades desenvolvidas no sistema.

5.1 INSERIR MODELO DE BASE DE DADOS

O modelo de base de dados basicamente é uma imagem que corresponde à base de dados

criada no SQL Server. Somente um administrador do sistema poderá inserir um novo modelo no

sistema, por medidas de segurança. Este modelo será útil tanto para o professor na hora de criar um

exercício, quanto para o aluno na hora de respondê-los. Cada modelo de dados corresponde a uma

base de dados criada no SQL Server. Abaixo, a Figura 27 mostra um exemplo de um modelo de

base de dados.

Figura 27. Modelo de base de dados.

Para inserir um novo modelo deve seguir três passos: (i) primeiramente o administrador

recebe um script de comando SQL enviado por algum usuário com privilégio de professor (ver

Figura 28), e com este script o administrador cria a base de dados no SGBD SQL Server e cria uma

imagem com o modelo dessa base de dados; (ii) o administrador faz o upload da imagem do

Page 58: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

47

modelo, para que a imagem fique armazenada no sistema; e (iii) o administrador insere o nome da

base de dados do SQL Server correspondente ao modelo e o nome da imagem do modelo.

Figura 28. Enviar um script com os comandos SQL.

A Figura 29 apresenta o método de inserção de um novo modelo da base de dados.

Page 59: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

48

Figura 29. Inserindo um novo modelo de base de dados.

5.2 CADASTRO DE PROFESSOR

Somente um administrador poderá oferecer privilégios de professor a um usuário do sistema,

garantindo com isso algumas medidas de segurança. O administrador possui dois métodos para

fornecer um privilégio de professor. São elas descritas abaixo:

• Criando um novo usuário com privilégio de professor: Desta maneira o administrador

vai criar um novo cadastro de usuário já oferecendo um perfil de professor; e

• Editar o perfil de um usuário já cadastrado: Desta maneira, o cadastro já existe, e o

administrador apenas irá oferecer o perfil de professor ao usuário.

Abaixo, a Figura 30 apresenta os dois métodos para fornecer um privilégio de professor.

Page 60: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

49

Figura 30. Fornecer privilégios aos usuários.

O administrador também poderá retirar os privilégios de um usuário neste mesmo local, ou

até mesmo oferecer um privilégio de administrador a um usuário.

5.3 ELABORAÇÃO DE EXERCÍCIOS

A Elaboração de Exercícios serve para que usuários com perfis de professores ou

administradores possam criar um novo exercício no sistema. É necessário preencher algumas

informações para criar o exercício. Primeiramente, o usuário irá fornecer o modelo ao qual ele quer

criar o exercício. Com o modelo escolhido, o usuário preencherá algumas informações como o

enunciado do exercício, sua resposta em álgebra relacional e a resposta em SQL.

A Figura 31 representa a tela de elaboração dos exercícios.

Page 61: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

50

Figura 31. Elaboração de exercícios.

Page 62: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

51

5.4 RESOLUÇÃO DE EXERCÍCIOS

A resolução dos exercícios será o local onde os usuários irão testar seus conhecimentos.

Aleatoriamente, o sistema irá buscar um exercício no banco de dados, e mostrará para o usuário a

descrição da pergunta e o modelo da base de dados correspondente (Figura 32).

Figura 32. Resolução de exercícios.

Page 63: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

52

No entanto, no momento de escrever a resposta, tem-se uma pequena restrição, a resposta

deve ser escrita toda em letras minúsculas Após responder o exercício, o sistema irá informar se a

resposta foi correta, incorreta ou se teve algum erro sua elaboração. Também mostrará os dados da

consulta que foram recuperados da base de dados e as últimas tentativas de respostas. A Figura 33

apresenta a resolução de uma pergunta informando uma resposta correta.

Figura 33. Resolução de exercício com a resposta correta.

A Figura 34 também apresenta a resolução de uma pergunta, porém informando uma

expressão incorreta.

Page 64: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

53

Figura 34. Resolução de exercício com a resposta incorreta.

Já na Figura 35, tem-se a resolução de uma pergunta informando uma expressão mal

formulada. Nesse momento, o sistema apresenta uma mensagem de qual foi o erro.

Page 65: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

54

Figura 35. Resolução de exercício com a uma expressão mal formulada.

Page 66: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

55

6 TESTES E VALIDAÇÃO

Neste capítulo são apresentados os resultados dos testes aplicados para validação da

ferramenta e tem como objetivo avaliar seu funcionamento.

Inicialmente foram realizados alguns testes em paralelo a ferramenta, à medida que algumas

funcionalidades já ficavam prontas. Após a conclusão das atividades de programação, foi elaborado

um formulário com questões relacionadas à usabilidade (Apêndice C) para a realização de um teste.

Os testes realizados foram aplicados juntamente com 18 alunos da disciplina de Banco de

Dados I do curso de Ciência da Computação na Univali com o apoio da professora Adriana Gomes

Alves. A escolha deste grupo de testes justifica-se pelo contato dos alunos com a álgebra relacional,

que é um assunto abordado durante a matéria de Banco de Dados I, o que permitiu avaliar a

ferramenta de forma satisfatória.

Os resultados coletados foram tabulados em uma planilha para possibilitar a análise das

informações através de gráficos. O gráfico da Figura 36 apresenta os resultados das dificuldades

encontradas pelos alunos na utilização do sistema.

Figura 36. Gráfico apresentando a dificuldade dos alunos na utilização do sistema.

Page 67: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

56

O gráfico da Figura 37 apresenta os resultados obtidos em relação à questão que perguntava

se foi possível compreender melhor a lógica da álgebra relacional ao se fazer o uso do sistema.

Figura 37. Gráfico apresentando a compreensão da lógica da álgebra relacional com a utilização do sistema.

Avaliando os resultados obtidos e com os comentários escritos pelos alunos, pode-se

observar que o maior problema dos alunos é em relação à lógica da álgebra relacional. Com o uso

deste sistema, onde os alunos puderam ver o que acontecia na utilização de cada expressão, podiam

verificar os dados que retornavam de suas consultas e podiam ver onde estavam os erros que

cometiam, os alunos tiveram uma melhor compreensão da lógica da álgebra, onde estavam suas

maiores dificuldades.

Abaixo são apresentados alguns comentários feitos pelos alunos no momento da realização

dos testes:

“Com o dinamismo fica mais fácil perceber os erros. O sistema corrige e mostra onde

erramos, caso o exercício esteja, porém 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.”

Page 68: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

57

“O sistema mostrou-se útil no quesito de ajudar a compreender melhor a álgebra relacional,

ficando mais fácil o aprendizado que somente é no papel.”

“Muito bom, seria melhor se os professores utilizassem o programa para um melhor

entendimento da álgebra.”

“Achei muito mais prático e funcional o entendimento da álgebra relacional.”

“Esta ficando muito bom, eu entendi perfeitamente o programa, só não entendo a álgebra

relacional.”

“Muito motivante para a matéria, pois assim é possível ver realmente o que acontece com a

álgebra relacional.”

No Apêndice C tem-se o questionário que foi elaborado e todos os resultados das questões.

Page 69: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

58

7 CONCLUSÕES

A Álgebra Relacional é uma linguagem de consulta para banco de dados que necessita uma

boa prática para seu bom entendimento. Porém, na Univali, esta prática é efetuada atualmente por

muitos exercícios manualmente, sem o auxílio de nenhuma ferramenta. Uma ferramenta que auxilie

os alunos na hora da resolução dos exercícios e os professores na correção dos mesmos é

indispensável.

Existem atualmente algumas ferramentas que fazem o processo de correção da expressão da

álgebra relacional, mas nenhuma com o intuito de resolver exercícios elaborados por professores.

Foram estudadas algumas ferramentas, porém, o objetivo delas é buscar o resultado no banco

através das expressões de álgebra.

Este trabalho teve como objetivo desenvolver um sistema que auxilie os alunos na

aprendizagem, e auxilie os professores na hora da correção dos exercícios.

Para a primeira fase deste trabalho (TCC I), foi realizada uma introdução se baseando nos

princípios que se trataria o projeto. Na fundamentação teórica (Capítulo 2), foram abordados os

conceitos relacionados a banco de dados, focando na linguagem de consulta álgebra relacional,

alguns conceitos de compiladores, que foram necessários para o desenvolvimento do sistema, e

ainda foi realizado um estudo de algumas ferramentas similares.

Na parte de projeto (Capítulo 3), foram levantados e documentados os requisitos e regras de

negócio para o desenvolvimento do sistema. Foi definido os casos de uso necessários à

implementação do sistema e o diagrama de classes. Na etapa de implementação (Capítulo 4), foi

explicado os motivos das adoções das ferramentas utilizadas para a implementação do sistema.

Neste mesmo capítulo foi explicado como foi realizado o processo de correção dos exercícios.

No Capítulo 5 foi realizada a apresentação do sistema, mostrando as principais

características implementadas. Após a finalização da implementação, foi realizado um teste com

alguns alunos da matéria de Banco de Dados I da Univali para certificar-se que a ferramenta

encontrava-se em funcionamento. Durante o teste, foi solicitado para os alunos um feedback a

respeito da ferramenta.

Page 70: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

59

Verificando a situação em que o trabalho se encontra, concluiu-se que praticamente todos os

objetivos propostos foram contemplados dentro das especificações estabelecidas na fase conceitual,

onde não foi implementada apenas os feedbacks que a ferramenta se propôs a oferecer nesta versão

do sistema, pelo motivo do escopo do sistema ter ficado grande e com isso focou-se principalmente

na correção dos exercícios.

Com a realização dos testes, pode-se observar que o sistema pode ser muito útil para a

aprendizagem da álgebra relacional, pois a interação proporcionada pela ferramenta torna o

entendimento muito mais fácil.

7.1 TRABALHOS FUTUROS

Após finalizar os módulos propostos nesta versão do sistema, ficam descritas neste Capítulo

algumas propostas para serem realizadas em trabalhos futuros.

Para aprimorar a ferramenta, sugere-se fazer a implementação dos módulos de criação de

turmas, e o módulo de criação de avaliações que facilitariam muito a aplicação de provas para os

alunos.

Seria interessante aprimorar o sistema implementando alguns relatórios fornecendo

feedbacks para os professores poderem avaliar o desempenho dos alunos. Outra recomendação seria

implementar mais operações da álgebra relacional, podendo assim, atender a todos os tipos de

expressões de álgebra relacional.

Outra sugestão para a melhora do sistema seria uma modelagem na interface, fornecendo

mensagens mais fáceis de entenderem.

Page 71: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

REFERÊNCIAS BIBLIOGRÁFICAS

AHO, Alfred V.; LAM, Monica S.; SETHI, Ravi; ULLMAN, Jeffrey D. Compiladores: princípios, técnicas e ferramentas; [tradução Daniel Vieira]. São Paulo: Pearson Addison-Wesley, 2008.

APPEL, Ana Paula; TRAINA JUNIOR, Caetano. IDFQL – Interactive Data Flow Query Language. Version 2.0. Disponível em: < http://gbdi.icmc.usp.br/~anaappel/idfql.php >. Acesso em: 19 ago. 2008.

APPEL, Ana Paula; TRAINA JUNIOR, Caetano. IDFQL. São Carlos: Universidade de São Paulo, 2004. Disponível em: <http://gbdi.icmc.usp.br/publicacoes/arquivos/appel_sbbd2004.pdf>. Acesso em: 19 ago. 2008.

DATE, C.J. Introdução a Sistemas de Bancos de Dados. Rio de Janeiro: Elsevier, 2003.

DEVIN COOK. Gold Parser Builder Documentation. 2009. Disponível em: <http://www.devincook.com/goldparser/doc/index.htm>. Acesso em: 12 mar. 2009.

DEVIN COOK. Gold Parser Builder. 2009. Version 3.4.4. Disponível em: <http://www.devincook.com/goldparser/builder/index.htm>. Acesso em: 12 mar. 2009.

ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Banco de Dados. São Paulo: Pearson Addison Wesley, 2005.

FARIA, Alexandre. Laboratório de EOTD – Estruturas, Organização e Tratamento de Dados. 2005. Disponível em: < http://eotd.paginas.sapo.pt/unid5.htm>. Acesso em: 09 set. 2008.

LOUDEN, Kenneth C. Compiladores: Princípios e Técnicas; [tradução Flávio Soares Corrêa da Silva]. São Paulo: Pioneira Thomson Learning, 2004.

MARTINOTTO, André Luis. Uso de Prolog no Desenvolvimento de Compiladores. [200-?]. Disponível em: <http://www.inf.ufrgs.br/procpar/disc/cmp135/trabs/martinotto/trabII>. Acesso em: 10 jun. 2009.

MICROSOF CORPORATION (EUA). MSDN – Visual Studio 2008 Development System. Disponível em: <http://msdn.microsoft.com/pt-br/vstudio/products/bb931214.aspx>. Acesso em: 03 mai. 2009.

MICROSOFT CORPORATION (EUA). Visual Studio 2008 Express. Disponível em: <http://www.microsoft.com/express/download>. Acesso em: 07 out. 2008.

PIREZ, Paulo. Departamento de Informática e Matemática Aplicada. 2006.Disponível em: <http://www.dimap.ufrn.br/~paulo.pires/cursos/bd/relacional.pdf>. Acesso em: 18 set. 2008.

SCHARDOSIM, Tatiane Schwanck. Ferramenta para Ensino de Álgebra. Trabalho de Conclusão de Curso (Graduação) - Universidade Luterana do Brasil, Gravataí, 2006.

SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. Sistema de Banco de Dados. Rio de Janeiro: Elsevier, 2006.

Page 72: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

61

SOUZA, André Luiz. SQLONLINE. Disponível em: <http://www.sqlonline.org>. Acesso em: 15 ago. 2008.

Page 73: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

62

APÊNDICES

Page 74: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

A FONTES GERADOS NA FERRAMENTA GOLD

Neste apêndice são apresentados os códigos fontes da gramática elaborada na ferramenta

GOLD e o código intermediário que a mesma criou, porém já otimizado. A Figura 38 apresenta o

código fonte da gramática.

Figura 38. Código fonte da gramática.

Page 75: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

64

Pelo motivo de o código intermediário gerado pelo GOLD ser muito extenso, a Figura 39

apresenta apenas uma pequena parte do fonte, já otimizado, onde se faz a tradução de uma

expressão de seleção da álgebra relacional para o SQL.

Figura 39. Fonte do código intermediário.

Page 76: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

65

B CÓDIGO FONTE DA CORREÇÃO DOS EXERCÍCIOS

Neste apêndice é apresentado o código fonte da parte de correção dos exercícios (Figuras 40

e 41).

Figura 40. Código fonte da correção dos exercícios – Parte 1.

Page 77: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

66

Figura 41. Código fonte da correção dos exercícios – Parte 2.

Page 78: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

67

C DOCUMENTO E RESULTADOS DE TESTE

Neste apêndice é apresentado o documento elaborado para a realização dos testes e os

resultados representados graficamente. A Figura 42 apresenta o documento elaborado para a

realização do teste.

Figura 42. Documento de teste.

Page 79: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

68

As Figuras abaixo apresentam os gráficos com os resultados do teste.

Figura 43. Gráfico apresentando se o sistema pode motivar o interesse do aluno pela álgebra.

Figura 44. Gráfico apresentando se o aluno ficou perdido na utilização do sistema.

Page 80: UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE …siaibib01.univali.br/pdf/Renato Vidal Kinaipp.pdf · RELACIONAL Área de Banco de Dados por Renato Vidal Kinaipp Adriana Gomes Alves,

69

Figura 45. Gráfico apresentando se as cores e as imagens foram bem exploradas.

Figura 46. Gráfico apresentando como seriam melhores as aulas de álgebra relacional.