Desenvolvimento de Arcabouços de Programação para Auxiliar as Práticas de Fundamentos de banco de Dados Maria da Conceição do Nascimento Arruda, Klairton de Lima Brito, Camilo Almendra Universidade Federal do Ceará Campus Quixadá [email protected], [email protected], [email protected] Resumo: Este artigo apresenta o trabalho elaborado pela monitoria de fundamentos de Banco de dados. Parte do trabalho da monitoria resume-se ao desenvolvimento de arcabouços de programação para incrementar as práticas da disciplina, no sentido de fornecer exemplos completos abrangendo não só o conteúdo da disciplina como também, fazendo a conexão com conteúdos de outras disciplinas, como Orientação a objeto e Programação Web. 1. Introdução O ensino de banco de dados inicia pelos fundamentos da modelagem entidade-relacionamento, onde o objetivo é desenhar estruturalmente um banco de dados a partir de descrições das necessidades que um sistema deve apresentar. Em seguida, o objetivo é elaborar como essa estrutura de dados será logicamente organizada em um Sistema Gerenciador de Banco de Dados (SGBD), e como os dados serão inseridos e atualizados. Ao utilizar um SGBD no desenvolvimento de um sistema, é necessária a identificação dos cenários de requisições a serem feitas, tipicamente inserção, remoção, atualização ou listagem de dados. Ao projetar um sistema, busca-se estabelecer uma interação entre a camada de aplicação (parte do sistema responsável pelas lógicas e regras de negócio) e o SGBD. Ao longo do tempo, necessitou-se estabelecer uma forma padronizada de interação que fosse independente do fornecedor do SGBD e da linguagem usada na implementação da camada de aplicação. Exemplos de bibliotecas que são consideradas padrões do mercado são JDBC e ADO. NET. Para que um aluno possa complementar seu ciclo de aprendizado em banco de dados, é necessário ter um domínio de conhecimentos que abrange desde modelagem entidade-relacionamento até o conhecimento básico das bibliotecas. A fim de fornecer suporte a esse aprendizado, foram elaborados arcabouços de sistemas com uso de SGBDs. A criação desses arcabouços objetivou fornecer exemplos de implementação de sistemas que efetivamente utilizam-se das bibliotecas de acesso, assim como também servem como laboratórios para a prática, uma vez que são acompanhados de orientações sobre possíveis extensões a serem feitas no arcabouço. 2. Bibliotecas de acesso As bibliotecas de acesso geralmente apresentam os mesmo padrões, as vezes pode existir algumas particularidades que as diferenciam das demais, mas no exemplo abaixo vamos descrever a API JDBC(uma plataforma colaborativa) e a API ADO(uma plataforma corporativa desenvolvida pela Microsoft). 2.1 - JDBC JDBC (Java Database Connectivity) "é um conjunto de interfaces e classes (API) escritas em Java fazendo o envio de instruções SQL para qualquer banco de dados relacional" [1]. A API JDBC foi criada no intuito de poder estabelecer conexão com os diferentes bancos de dados relacionais, para isso basta utilizar o driver específico do banco de dados que se deseja trabalhar. Os drivers ficam responsáveis pela identificação e tratar as particularidades dos bancos de dados, já API JDBC fica responsável por tratar da conexão com o banco de dados independentemente do seu tipo. 2.2 - ADO ADO (ActiveX Data Objects) é um conjunto de objetos para acessar base de dados. O ADO permite ao desenvolvedor escrever programas que acessam dados sem o conhecimento do banco de dados que está implementado. Sua responsabilidade é somente pela conexão e somente aí ele necessita estar ciente de alguma informação do banco de dados que é informada através de drivers [1]. 2.3 - Semelhanças Como descrito acima podemos notar que ambas as API's de acesso trabalham com o mesmo intuito que é de estabelecer conexão do banco de dados independentemente do seu tipo, apesar da implementação de conexão ser feita de maneira diferente e com linguagens diferentes o objetivo de ambas é o mesmo. 3. Trabalhos correlatos No trabalho desenvolvido por [2], foram desenvolvidas práticas na disciplina de banco de dados seguidas através de um roteiro para equilibrar o conteúdo teórico com as atividades práticas e aproximar os alunos de possíveis problemas que ocorrem durante seu ingresso no mercado de trabalho. Segundo o questionário aberto aplicado aos alunos, a percepção geral sobre a atividade foi positiva com alguns relatos de que se não fosse pelo ambiente fornecido pela prática alguns alunos não teriam a chance de praticar as atividades em outro local. As práticas forneceram um aprendizado ativo e melhoria da confiança do aluno em experimentar novas tecnologias. A quantidade de alunos que participou do projeto foi pequena e impossibilitando chegar a uma conclusão definitiva sobre a efetividade das práticas. Já no trabalho [4], foi desenvolvida uma prática para o ensino de JDBC em um ambiente web utilizando uma aplicação exemplo onde os alunos inspecionavam o código para visualizar os métodos da API e então executavam para ver seu funcionamento e assim obtendo mais conhecimento da API e assim complementar o aprendizado da programação utilizando banco de dados, outra proposta da prática é a mudança do banco de dados por qualquer outro ODBC(Open Database Connectivity) e verificar que o JDBC atende ao seu propósito. Com isso as dificuldades dos alunos em compreender a uso de um banco de dados relacional em um projeto de sistema são sanadas com o auxilio da aplicação exemplo. E no trabalho [5] propõe utilizar a um projeto baseado em aprendizagem cooperativa para o ensino de banco de dados baseados em sistemas de produtos comerciais. Divide-se em três etapas, que necessita dos alunos divididos em grupos onde possam ajudar uns aos outros: 1) A partir disso eles recebem um exemplo completo e funcionando que é analisado pelo grupo. 2) Então eles devem seguir um tutorial que explica passo-a-passo as modificações a serem feitas no exemplo. 3) Até chegar em atividades mais avançadas que necessitam de mais esforço para serem resolvidos. Com isso é fornecido a todos um conhecimento do funcionamento básico do sistema, e a partir do feedback dos aluno foi notado que nos dois primeiros anos da implantação do projeto foi encontrado algumas dificuldades como necessidade de aperfeiçoamento do material e grande quantidade de alunos para participar das aulas práticas sem alterar o andamento da disciplina de banco de dados até que foi implementada uma sugestão feita pelos alunos de desenvolver o projeto fora do horário de aula. 4. Arcabouços Os arcabouços foram elaborados e disponibilizados no site da monitoria de banco de dados, então os monitores ficaram disponíveis via internet para retirar dúvidas utilizando o grupo da monitoria. Nas aulas práticas, os monitores estavam presentes auxiliando os alunos no desenvolvimento e modificação dos novos módulos para o arcabouço e de outros projetos utilizando os arcabouços como exemplo. Cada arcabouço busca representar um sistema funcional de uso real no dia a dia. Os arcabouços são projetados com a finalidade de serem simples e de fácil entendimento, e que também possam ser utilizado como base para incrementos de funcionalidades feitos pelos próprios alunos. Os arcabouços foram construídos na linguagem Java, por essa ser uma das mais populares e difundidas atualmente. No entanto, cada arcabouço visa explorar plataformas diferentes como desenvolvimento para Desktop, Web ou Dispositivos Móveis, fornecendo assim exemplos para comparação. Com os arcabouços funcionando os alunos podem inspecionar o código para obter conhecimento sobre as API's / bibliotecas e visualizarem na prática como elas funcionam, então com os exercícios de extensão (alteração e criação de novos módulos para o arcabouço) que são estipulados pelo professor os alunos são instigados a exercitar os seus conhecimentos ao tentarem solucionar os exercícios. 4.1 GameCenter Esse sistema visa registrar usuários, seus jogos e seus recordes, que foi chamado de GameCenter. Para isso o sistema foi desenvolvido na linguagem JAVA utilizando a interface gráfica swing com o banco de dados SqlLite, por ser nativo na maior parte dos sistemas operacionais facilitando na utilização do arcabouço em diversas plataformas, devido não ser necessário a instalação de um banco de dados específico. No arcabouço buscou-se ter uma divisão em três níveis sendo eles camada de persistência, camada de negócio e interface gráfica seguindo algum padrão para melhoria do código e consequentemente melhor compreensão dos alunos. Para o sistema GameCenter estão implementadas as seguintes funcionalidade: • Inserir um jogo, recorde, usuário. • Atualizar um jogo, recorde, usuário. • Remover um jogo, recorde, usuário. Para esse arcabouço, um exemplo de extensão seria a parte de relatórios, como visualizar o recorde de todos os usuários e ordenar do maior para o menor recorde. 4.2 CBF – Controle de Times de Futebol O sistema CBF visa registrar os campeonatos de futebol de várias federações. O arcabouço foi implementado na linguagem Java utilizando o framework JSP e o banco de dados MySQL. Para a estrutura do arcabouço utilizou-se o padrão MVC, onde se tem uma divisão do modelo de negócio, da visão, persistência e do controle facilitando o entendimento de cada parte do sistema. Para o sistema CBF estão implementadas as seguintes funcionalidade: • Inserir clubes, campeonatos, jogadores, posições, telefones, federações, prêmios; • Atualizar clubes, campeonatos, jogadores, posições, telefones, federações, prêmios; • Excluir clubes, campeonatos, jogadores, posições, telefones, federações, prêmios; • Relatórios sobre clubes por federações e sobre jogadores por clubes. Com isso, pode-se estender o arcabouço introduzindo outras funcionalidades ligadas a parte de relatórios, por exemplo, qual o jogador que recebeu o maior número de prêmios ou qual o clube que venceu o maior número de campeonatos. 5. Conclusão e Trabalhos Futuros A criação dos arcabouços de programação com foco em banco de dados teve por objetivo auxiliar os alunos a aplicarem os conceitos obtidos em sala de aula desde modelagem relacional até conceitos de programação aplicada junto ao banco de dados. Espera-se que com os arcabouços os alunos tenham um exemplo onde possam utilizá-lo como base e não enfrentarem a dificuldade de começar do zero, e com as atividades de extensão (criação e modificação de módulos do arcabouço) os alunos consigam completar o ciclo de aprendizado obtido na prática. O próprio processo de construção dos arcabouços possibilitou aos envolvidos identificar lacunas de aprendizado tanto relacionado ao domínio de banco de dados como nas plataformas e linguagem utilizadas. Espera-se que a disponibilização desses materiais facilite o auto-estudo de outros alunos. Como trabalhos futuros, serão elaborados experimentos para avaliar a qualidade e eficácia dos arcabouços. Também serão elaborados novos arcabouços utilizando outras plataformas e/ou linguagens. 6. Referências [1] WIKIPEDIA. JDBC. Disponível em: http://pt.wikipedia.org/wiki/JDBC. Quixadá, Ceará, Brasil. Acessado em: 15 de Agosto de 2012. [2] RALPH, M; DANIEL, N. Using a Practicum Experience in Your Database Course. In: Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference archive. Volume 23 Issue 1, p. 91-96, October 2007. [3] ELMASRI, R.; NAVATHE, S. B.. Sistemas de Banco de Dados. 4a ed., Pearson-AddisonWesley, 2005. [4] DIETRICH, S. W; URBAN, S. D; KYRIAKIDES, I. JDBC Demonstration Courseware Using Servlet and Java Server Pages. In: SIGCSE ‘02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education. New York, USA: 2002. [5] URBAN, S. D; DIETRICH, S. W. Integration the Pratical Use of a database Product into a Theoretical Curriculum. In: SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education. New York, USA: 2002.