-povoadas No Ensino de SQL Klairton de Lima Brito1, José Fernandes de Almeida Júnior1, Camilo Camilo Almendra1 1 Universidade Federal do Ceará, Quixadá, Ceará, Brasil. [email protected], [email protected], [email protected] Resumo. Este modelo descreve o estilo a ser usado na confecção de resumos expandidos para Uma das dificuldades encontradas pelos aprendizes na aprendizagem da disciplina de banco de dados é a montagem de uma massa de dados minimamente capaz de servir como ferramenta de auto-avaliação do aprendiz. Esse trabalho propõe a elaboração de bases prépovoadas como forma de melhorar a dinâmica das atividades práticas na disciplina introdutória de banco de dados. Introdução Sistemas de banco de dados relacionais são bases de dados estruturadas, onde quaisquer operações de inserção, modificação e leitura de dados devem ser previamente projetadas. O padrão SQL (ELMASRI, R.; NAVATHE, S. B.. 2005. Sistemas de Banco de Dados) usado nos bancos de dados relacionais é composto por uma linguagem de manipulação de dados (DML) e uma linguagem de definição de dados (DDL). O estudo e domínio do padrão SQL por um aprendiz envolvem conhecer e praticar ambas as linguagens. O passo inicial do aprendizado é compreender como o banco de dados é estruturado e como é feita o mapeamento de um diagrama de entidade-relacionamento para o diagrama relacional (já estruturada com tabelas e suas relações). O passo seguinte é compreender como essa estrutura pode ser povoada e consultada. A partir de observações dos próprios autores, nota-se que uma das dificuldades dos aprendizes nos primeiros contatos com a linguagem SQL é a verificação de corretude das consultas. Tal verificação deve ser baseada na análise sintática e semântica da consulta (em comparação com a estrutura de tabelas e relações), assim como na execução em base de dados povoada. Na inexistência de base de dados pré-povoada, o próprio aprendiz deve conceber e povoar uma base de dados para a execução das consultas. Essa responsabilidade se mostra suscetível a uma série erros, que levam os aprendizes a conclusões incorretas sobre a eficácia de suas consultas. Um dos exemplos de erros comuns encontra-se na tabela abaixo. Problema Uso de mesmo intervalo para chaves primárias Efeito No caso de junção entre colunas semanticamente não-relacionadas, a consulta retornará falso positivo. Exemplo Tabela 1, Linha 1 = (10, …, …, 10) // último campo não tem relação // com chave primária abaixo Tabela 2, Linha 1 = (10, …, …) Assim, junção de Tabela 1 com Tabela 2 retornará falso positivo Tabela 1: Exemplo de problema causado por tabelas com mesmo intervalo de chaves primárias. Problema Erros em seleções, conjunto (tabela) só possui elementos (linhas) que atendem ao requisito. Efeito Consulta que não possui predicado correto e retorna todos os elementos, é considerada falso positivo. Exemplo Uma tabela pessoa com apenas pessoas do sexo masculino. Consulta deve selecionar todas as pessoas do sexo masculino. Linha 1 = (1,“joão”,“masculino”,“05/04/1976”) Linha 2 = (2,“juca”,“masculino”,“08/02/1994”) Linha 3 = (3,“Bruno”,“masculino”,“15/09/1965”) Assim, consultas que retornam todos os elementos são falso positivos para a consulta que busca pessoas do sexo masculino. Tabela 2: Exemplo de erro cuja tabela só possui elementos que atendem ao requisito da consulta. Assim, em um ambiente com pouca massa de dados podem ocorrer dos resultados de uma consulta SQL errada retornar valores corretos, levando os aprendizes a interpretarem aquela consulta como correta. Um ambiente com uma massa de dados variada permitiria fornecer ao aprendiz um feedback imediato da não conformidade das suas consultas. Uma base de dados pré-povoada pode ser considerada um Objeto de Aprendizagem (OA) segundo Wikipedia (2011). O uso de OAs no ensino de programação é bastante difundido, presente nos trabalhos de Jesus et al (2007), Cechinel et al (2008) e França et al (2010) . Este trabalho tem como objetivo fornecer um objeto de aprendizagem de auxílio às atividades práticas efetuadas nos laboratórios e também para os aprendizes que buscam o autoaprendizado a distância, semelhante ao WEBASSIST (2011) que fornece curso de banco de dados com tabelas pré-povoadas. Metodologia Habitualmente na disciplina de banco de dados os novos dados são inseridos de acordo com o andar da disciplina fazendo que a massa de dados seja pequena e ineficiente para efetuar consultas. Este trabalho buscou disponibilizar esse ambiente para os aprendizes, a fim de que as consultas SQL planejadas pelos aprendizes fossem executadas de uma maneira mais precoce, possibilitando aos mesmos exercitar consultas mais diversificadas e com um grau de complexidade mais elevado. Além disso, possibilitar o exercício de manipulações nos dados, com feedback imediato do impacto de suas modificações no banco. O material foi aplicado em aula prática de laboratório na disciplina de Fundamentos de Banco de Dados. O objetivo inicial foi ter um retorno qualitativo do material com o intuito de tornar as aulas mais dinâmicas e proveitosas. Para criação desse ambiente foi acordado junto com o professor da disciplina trabalhar com exercícios teóricos feitos em sala de aula para deixar os aprendizes mais familiarizados durantes as aulas práticas. Para a parte prática, foi projetado o ambiente com as informações dos exercícios teóricos e disponibilizado nos computadores do laboratório usado nas aulas práticas e no site web do grupo de monitoria - para que os aprendizes pudessem exercitar os exercícios fora da faculdade. Em testes futuros, será realizada uma verificação da eficácia do material para auto-estudo. A perspectiva do auto-estudo é importante, pois promove a possibilidade do aluno regularmente matriculado solidificar seus conhecimentos, assim como também promove a possibilidade de outros aprendizes (vinculados ou não à instituição) estudarem e praticarem os conteúdos do material. A primeira abordagem de verificação será através da aplicação do material com e sem a base de dados pré-povoada para grupos distintos. Nesse caso, o grupo de controle receberá exercícios de SQL e não será fornecida uma base de dados pré-povoadas, enquanto o grupo alvo receberá uma base de dados já povoada. Resultados e discussão O ambiente planejado para as aulas práticas foi um modelo de clubes de futebol e suas principais características, que foi apelidado de “CBF”. Para promover uma diversidade de registros (dados) necessária para evitar os falsos positivos citados anteriormente, o banco de dados foi composto da seguinte forma: Campeonato (7 tuplas) Contrato (32 tuplas) Clube (11 tuplas) Federacao (6 tuplas) Jogador (30 tuplas) Clube_campeonato (26 tuplas) Premio (8 tuplas) Posicao (6 tuplas) Telefone (24 tuplas) Total de 150 registros gerados para viabilizar as consultas. Durante a aula prática, os aprendizes apresentaram algumas dificuldades, porém a maioria das dúvidas era relacionada com consultas que envolveram junção em mais de duas tabelas e consultas aninhadas. Segundo o professor que ministrou a disciplina de fundamentos de banco de dados, o material ajudou os alunos a compreenderem melhor como ir da teoria à prática e mostrar através do modelo CBF um estilo de padronização nos nomes das tabelas e seus atributos. Um ponto de melhoria do trabalho apontado por ele foi que o modelo teve alguns nomes de tabelas e atributos que ficaram diferentes do exercício teórico, o que causou um pouco de confusão entre os alunos. Para avaliar o material disponibilizado durante as aulas práticas ainda serão pesquisado modelos de avaliação que se enquadrem adequadamente para o trabalho. Conclusões As observações de alunos, professor e monitores sugere que a preparação de uma base de dados pré-povoada facilita as atividades práticas relacionados com o domínio de SQL. Como trabalho futuro pretende-se aplicar um mesmo modelo para grupos controlados onde uma parte terá acesso a bases pré-povoadas e a outra não, com o intuito de verificar a eficácia do material no ensino de fundamentos de banco de dados. Na mesma abordagem de criar materiais focados em auto-estudo, será investigado o uso de arcabouços de programação para ensino de programação para persistência de dados. A possibilidade de o próprio aprendiz avaliar o andamento do seu aprendizado promove uma experiência mais estimulante, ao mesmo tempo em que respeita os ritmos de estudo de cada pessoa. Referências Wikipedia. Objeto de aprendizagem. Disponível em: http://pt.wikipedia.org/wiki/Objeto_de_aprendizagem. Quixadá, Ceará, Brasil. Acessado em: 06 de Setembro de 2011. CECHINEL, Cristian. SILVEIRA, Alex. SILVEIRA, Rafael. NUNES, Érico. MOREIRA, Alexandre. COGO, Giovani. BETEMPS, Carlos. TAVARES, Reginaldo. (2008). Desenvolvimento de Objetos de Aprendizagem para o Apoio à Disciplina de Algoritmos e Programação.Trabalho apresentado no Simpósio Brasileiro de Informática na Educação (SBIE). Universidade Federal do Pampa, Unipampa – Campus de Bagé. FRANÇA, Elvis. FELIX, Zildomar. SOUZA, Marcia. CARNEIRO Thiago, SOUSA, Paulo. FILHO, Carlos.(2010). Utilização de Objetos de Aprendizagem em Sistemas Tutores Inteligentes para o ensino da Programação. Faculdade de Computação – Universidade Federal do Pará (UFPA). Disponível em: www.aedb.br/seget/artigos10/440_Artigo_ensino_Progamacao-Final.pdf. Acessado em 04 de Setembro de 2011. JESUS, Alexandre. LOPES, Daniel. PERIN, Fernanda. CANTAO, Juliana. PIMENTEL, Edson.(2007). Objetos de Aprendizagem no Ensino de Lógica de Programação. Universidade Municipal de São Caetano do Sul. Disponível em: http://seer.uscs.edu.br/index.php/revista_informatica_aplicada/article/viewArticle/748 Acessado em 04 de Setembro de 2011. ELMASRI, R.; NAVATHE, S. B.. Sistemas de Banco de Dados. 4a ed., Pearson-Addison-Wesley, 2005. WEBASSIST. Disponível em: http://www.webassist.com/free-downloads/tutorials-andtraining/database-for-php/ Acessado em 04 de Setembro de 2011.