Revista Brasileira de Informática na Educação, Volume 23, Número 3, 2015 Um Jogo Didático para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais An Educational Game to Detect Data Quality Problems in Relational Databases Carlos Eduardo Santos Pires Universidade Federal de Campina Grande (UFCG) Departamento de Sistemas e Computação (DSC) [email protected] Dandara Dantas Navarro Universidade Federal de Campina Grande (UFCG) Departamento de Sistemas e Computação (DSC) [email protected] Vládia Freire Pires Prefeitura Municipal de Campina Grande (PMCG) Secretaria de Educação (SEDUC) [email protected] Resumo Andreza Raquel M. de Queiroz Universidade Federal de Campina Grande (UFCG) Departamento de Sistemas e Computação (DSC) [email protected] Leandro Balby Marinho Universidade Federal de Campina Grande (UFCG) Departamento de Sistemas e Computação (DSC) [email protected] Aprender a lidar com dados é de fundamental importância para garantir a qualidade dos mesmos. Considerando o caráter subjetivo das dimensões de qualidade de dados, o aprendizado das mesmas é um desafio para estudantes. Este artigo propõe o desenvolvimento de um jogo didático para reforçar a aprendizagem de banco de dados e qualidade de dados. O jogo simula diversos cenários para os quais o jogador (estudante) assume o papel de um analista de dados e tem que avaliar a qualidade de dados em bancos de dados relacionais. Para isso, deve analisar os cenários e indicar os dados que apresentam problemas de qualidade. Os resultados obtidos durante a realização dos experimentos indicam que o jogo é capaz de melhorar a aprendizagem dos alunos, ao mesmo tempo em que serve como uma opção de divertimento. Palavras-Chave: Jogos Educacionais, Banco de Dados, Qualidade de Dados, Aprendizagem. Abstract Learning to deal with data is of fundamental importance to ensure its quality. Considering the subjective nature of data quality dimensions, learning from them is a challenge for students. This paper proposes the development of an educational game to reinforce database and data quality learning. The game simulates various scenarios for which the player (student) assumes the role of a data analyst and has to assess the quality of data stored in relational databases. To this end, the student must analyze the scenarios and indicate the data that have quality problems. Experimental results indicate that the game is able to improve student learning while at the same time serve as an entertainment option. Keywords: Educational Games, Databases, Data Quality, Learning. DOI: 10.5753/RBIE.2015.23.03.98 Pires, C. E. et al. Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais 1 Introdução Um dos principais problemas enfrentados no processo de ensino-aprendizagem é assegurar o fator motivacional dos estudantes [1]. No curso de Ciência da Computação não é diferente. A utilização de jogos didáticos é vista como uma forma de fomentar o interesse e salientar a importância do estudo das diversas áreas do curso [4, 23]. É possível encontrar na literatura diversos trabalhos que propõem jogos didáticos voltados para o ensinoaprendizagem de Ciência da Computação [3, 7, 8, 9, 12], em especial para as áreas de Programação e Engenharia de Software. Embora Banco de Dados seja uma das áreas que compõem a “espinha dorsal” do curso, constata-se uma carência de jogos desta área. Este artigo propõe o desenvolvimento de um jogo didático para o ensino-aprendizagem de Banco de Dados, enfatizando a subárea de Qualidade de Dados [2]. A ideia central é oferecer um ambiente interativo e didático no qual os jogadores (estudantes) tenham a oportunidade de praticar conceitos relacionados à sub(área) em questão, tornando-se mais informados quanto ao conteúdo explorado ao mesmo tempo em que se divertem jogando. No jogo proposto, o estudante assume o papel de um analista de dados e deve analisar a qualidade de dados armazenados em bancos de dados relacionais. Na vida real, um analista de dados é o profissional responsável por garantir dados de boa qualidade e, por conseguinte, o bom funcionamento dos sistemas computacionais de uma empresa. Diversos cenários são simulados nos quais o estudante deve apontar quais são os dados que apresentam problemas de qualidade [2]. O jogo está inserido no contexto de um Projeto de Pesquisa financiado pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) cujo objetivo geral é potencializar a vocação em estudantes do sexo feminino de graduação em Ciência da Computação, em especial na área de Banco de Dados. Normalmente, ao chegar à instituição de ensino superior, os estudantes trazem consigo uma filosofia de trabalho e estudo baseada principalmente na repetição e memorização de conceitos e conteúdos, sem a preocupação de abstração e/ou aplicações destes conhecimentos na prática de resolução de problemas reais [21]. Para tentar combater a evasão que ocorre principalmente nos primeiros anos do curso, faz-se necessário assegurar o fator motivação dos estudantes. Participam ainda do projeto estudantes do Ensino Médio também do sexo feminino. Para estas, visa-se despertar o interesse vocacional pela profissão de Ciência da Computação e, por conseguinte, aumentar a quantidade de profissionais no país. O artigo está estruturado da seguinte forma: a Seção 2 apresenta os fundamentos básicos sobre bancos de dados relacionais. A Seção 3 apresenta os diversos problemas que podem afetar a qualidade de dados em bancos de dados relacionais. A Seção 4 descreve o jogo didático proposto neste trabalho. A Seção 5 apresenta os experimentos realizados com o jogo bem como uma discussão sobre os resultados obtidos. A Seção 6 trata dos trabalhos relacionados. A Seção 7 conclui o trabalho e apresenta sugestões de trabalhos futuros. 2 Bancos de Dados Relacionais Os dados de uma organização podem estar disponíveis em diferentes formatos de armazenamento [24]: a) não-estruturado: forma de armazenamento livre como, por exemplo, documentos textuais; b) semi-estruturado: forma de armazenamento hierárquico como, por exemplo, documentos XML; e c) estruturado: forma de armazenamento nos quais os dados seguem um padrão pré-definido como, por exemplo, bancos de dados relacionais. Embora o conceito de qualidade de dados seja transversal a todos os formatos de armazenamento existentes, este trabalho considera apenas os dados estruturados, uma vez que a maioria das organizações armazenam seus dados em bancos de dados relacionais. Em um banco de dados relacional os dados são armazenados em uma ou mais tabelas (ou relações) [20]. O conjunto de tabelas representa o esquema do banco de dados. No exemplo da Figura 1, o esquema possui duas tabelas: Alunas e Cursos. Uma tabela é uma estrutura de armazenamento de dados formada por linhas (ou registros ou tuplas) e atributos (ou campos ou colunas). A tabela Alunas possui cinco linhas (alunas) e é formada pelos atributos Matrícula, Nome, Email, Idade, Nascimento, Naturalidade e CodCurso. A primeira linha representa o cabeçalho da tabela e, portanto, não é considerada. A tabela Cursos possui três linhas e é formada pelos atributos Código e Nome. As linhas de uma mesma tabela contém um mesmo conjunto de atributos. Ao observar a tabela Cursos, é possível perceber que todo curso possui um código e um nome. ALUNAS Matrícula 2010300 2011301 2010302 2012308 2012554 Nome Ana Flávia Sílvia Uchoa Patrícia Silva Paula Souza Rafaela Garcia Email [email protected] Idade 18 Nascimento 29/09/1995 Naturalidade Paraíba CodCurso 109 19 21/10/1994 Pernambuco 103 patrí[email protected] 19 03/04/1995 Paraíba 103 [email protected] 23 22/01/1991 Sergipe 109 [email protected] 27 03/05/1994 Paraíba 103 CURSOS Código 109 105 103 Nome Ciência da Computação Engenharia Civil Engenharia Elétrica Figura 1: Esquema de um banco de dados relacional fictício formado pelas tabelas Alunas e Cursos. 99 Pires, C. E. et al. Os dados dispostos em um mesmo atributo são de um único tipo de dados. Por exemplo, os atributos Matrícula, Nome e Nascimento, da tabela Alunas, só aceitam números, textos e datas, respectivamente. Uma linha não precisa conter dados em todos os seus atributos, podendo assumir valores nulos quando assim se fizer necessário. É o caso do atributo Email da aluna Sílvia Uchoa. No exemplo, uma aluna não é obrigada a ter um email. As tabelas associam-se entre si através de relacionamentos definidos entre as linhas das tabelas. No exemplo, as tabelas Alunas e Cursos estão relacionadas pelos atributos CodCurso (da tabela Alunas) e Código (da tabela Cursos). Com isso, é possível perceber na tabela Alunas que o curso de Ana Flávia possui código 109. Na tabela Cursos, esse código corresponde ao curso de Ciência da Computação. Restrições de integridade podem ser definidas no banco de dados para manter os dados consistentes. Os principais tipos de restrição de integridade são: Não-nula: impede a presença de dados nulos em um atributo. Por exemplo, se definida no atributo Nome da tabela Alunas, não permite que uma aluna possua um valor nulo no nome; Chave primária: não permite a existência de dados duplicados e nulos em um atributo (ou combinação de atributos). Por exemplo, se definida no atributo Matrícula da tabela Alunas, não permite que duas ou mais alunas tenham um mesmo número de matrícula; Chave única: não permite a existência de dados duplicados em um atributo (ou combinação de atributos), mas valores nulos podem existir. Por exemplo, se definida na coluna Email da tabela Alunas, impede que duas alunas tenham o mesmo email, mas permite alunas sem email; Chave estrangeira: força com que os dados de um atributo a1 (ou combinação de atributos) formem um subconjunto do conjunto de dados de um atributo a2 (ou combinação de atributos) definido como chave primária. Nesse caso, o atributo a1 é considerado uma chave estrangeira. Por exemplo, se definida nos atributos CodCurso da tabela Alunas (chave estrangeira) e Código da tabela Cursos (chave primária) o conjunto de dados contidos em CodCurso deverá ser um subconjunto do conjunto de dados de Código; Condição de verificação: define uma condição que deve ser satisfeita sempre que um dado de um atributo for inserido ou modificado. Por exemplo, se definida no atributo Idade, força com que os dados desse atributo permaneçam sempre no intervalo 0 e 120. 100 RBIE V.23 N.3 – 2015 3 Problemas de Qualidade de Dados em Bancos de Dados Relacionais Os dados possuem uma importância crescente na atual sociedade da informação e comunicação. Eles são considerados um recurso essencial que possibilita o aumento da produtividade, eficiência e competitividade das organizações, independente do nível organizacional (operacional, tático, ou estratégico). No entanto, constata-se que uma parcela dos dados mantidos pelas organizações são “dados sujos”. A presença de erros, redundâncias ou inconsistências faz com que esses dados apresentem problemas de qualidade [10]. Estima-se que, em média, as organizações possuam entre 1% e 5% de dados sujos e que, em algumas delas, essa taxa possa chegar a 30% [10]. Dentre os principais fatores que contribuem para a baixa qualidade de dados nas organizações, podemos citar a introdução incorreta de dados ocasionada por erro humano. Alguns exemplos de erros humanos incluem: erros na digitação de dados; omissões de dados supostamente obrigatórios; introdução involuntária de valores errados; entre outros. As consequências dos problemas de qualidade de dados manifestam-se em todos os níveis organizacionais [5, 16]. No nível operacional, podemos citar situações como: a) uma correspondência que não chega ao destinatário devido a erros existentes nos dados que compõem o endereço; ou b) o envio de mensagens eletrônicas duplicadas, como efeito da existência de dados redundantes. Isso pode ter sérias implicações na satisfação do cliente, inclusive degradando a imagem da organização. Nos níveis tático e estratégico, a baixa qualidade dos dados compromete a tomada de decisões lógicas e fundamentadas. Más decisões podem causar a diminuição dos lucros ou até mesmo uma parada completa das atividades da empresa. Na literatura, podemos encontrar inúmeras taxonomias para classificar os problemas de qualidade de dados em bancos de dados relacionais [11, 13, 22]. Neste trabalho, é adotada a taxonomia proposta em [11] devido a sua abrangência em relação à quantidade de problemas enumerados. Nesta taxonomia, os problemas são classificados de acordo com o modelo para organização de dados. No caso do modelo relacional [20], a taxonomia resultante é formada por quatro níveis de granularidade de dados: Atributo (A), Linha (L), Tabela Única (TU) e Múltiplas Tabelas (MT). A Tabela 1 exibe alguns tipos de problemas de qualidade, posteriormente exemplificados na Figura 2. No total, a taxonomia adotada inclui 29 problemas detalhados em sua totalidade no Anexo I. Pires, C. E. et al. Problema PQ1 PQ2 PQ3 PQ4 PQ7 PQ8 PQ11 PQ12 PQ16 PQ17 PQ21 PQ22 Grão A A A A A A L L TU TU MT MT Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais Nome Valor ausente Violação de domínio Valor incorreto Erro ortográfico Violação de sintaxe Valor impreciso Violação da dependência entre atributos Inversão de valores entre atributos Valor não único Linha duplicada Referência inexistente Referência existente, mas errada Tabela 1: Alguns problemas de qualidade de dados comumente encontrados em bancos de dados relacionais Na Figura 2, o Problema de Qualidade PQ2 ocorre pelo fato do dado 223 (anos) estar fora do domínio de valores válidos. É impossível existir um ser humano vivo com essa idade. No PQ4, o dado Pernanbuco possui um erro de grafia. PQ1 remete ao caso em que um dado obrigatório está ausente (nulo). Em outras palavras, não é realista existir uma aluna sem número de matrícula, como é o caso de Ana Flávia. No PQ8, uma abreviatura (EC) é usada para representar o nome do curso de Engenharia Civil. No PQ7, o formato da data de nascimento da aluna Sílvia Uchoa é diferente do formato da data de nascimento das demais alunas. PQ3 refere-se ao caso em que o valor de um atributo não corresponde à situação atual. O email da aluna Ana Flávia é [email protected]. Na prática, porém, este email encontra-se desativado. PQ11 refere-se à presença de uma inconsistência entre os dados de dois atributos, no caso Idade e Nascimento. Por ter nascido em 03/05/1994, a aluna Rafaela Garcia deveria ter 20 anos de idade, ao invés de 22 anos. ALUNAS Matrícula 2011301 2010302 2012309 2010308 2012309 Nome Email Ana Flávia Sílvia Uchoa Patrícia Silva [email protected] P. Silva [email protected] Rafaela Garcia Idade 223 19 Nascimento 29/09/1995 21.10.94 Naturalidade Paraíba Pernanbuco CodCurso 109 103 [email protected] Paula Souza 19 03/04/1995 Paraíba 111 23 22/01/1991 Sergipe 109 [email protected] [email protected] 19 03/04/1995 PB 111 22 03/05/1994 Paraíba 103 CURSOS Código 109 105 103 Nome Ciência da Computação EC Engenharia Elétrica Figura 2: Tabelas Alunas e Cursos contendo ocorrências de problemas de qualidade de dados No PQ12, o valor dos atributos Nome e Email da aluna Paula Souza estão invertidos. PQ16 refere-se ao caso em que duas linhas diferentes possuem valores iguais em um atributo de valor único. Os valores contidos no atributo Matrícula não deveriam se repetir. Contudo, as alunas Paula Souza e Rafaela Garcia possuem matrículas iguais. PQ17 refere-se ao caso de armazenamento de dados redundantes. Aparentemente, a aluna Patrícia Silva foi cadastrada duas vezes (terceira e quinta linhas da tabela Alunas). PQ21 refere-se a problemas de relacionamento entre as linhas de duas tabelas. A tabela Alunas informa que o código do curso (atributo CodCurso) da aluna Patrícia Silva é 111. No entanto, na tabela Cursos, o curso de código 111 (atributo Código) não existe. Finalmente, o PQ22 refere-se à situação em que há um valor no atributo que relaciona linhas duas tabelas de forma que não viola a integridade referencial, contudo o valor é incorreto. O atributo CodCurso da aluna Ana Flávia indica que a mesma cursa Ciência da Computação, porém, ela é aluna do curso de Engenharia Elétrica na realidade. Em relação aos problemas de qualidade elencados na Tabela 1, é importante tecer alguns comentários. Alguns dos problemas podem ser facilmente detectados por um analista de dados (por exemplo, PQ2); o mesmo não ocorre com outros (PQ3). O volume de dados é um fator que influencia na detecção de problemas de qualidade. Por exemplo, quanto mais linhas existirem em uma tabela mais complexo será o processo de detectar linhas duplicadas (PQ17). Na prática, é comum o uso de ferramentas de qualidade [25] pelos analistas de dados para assegurar a produtividade no trabalho. Por fim, alguém pode alegar que determinados problemas apresentados não ocorreriam caso tivessem sido definidas restrições de integridade no banco de dados. Por exemplo, o PQ1 não ocorreria se existisse uma restrição de integridade (chave primária) na coluna Matrícula de forma a impedir a introdução de valores nulos e repetidos. No entanto, na vida real, é fácil encontrar bancos de dados criados por diferentes tipos de profissionais inclusive com outras formações (por exemplo, administração e contabilidade), sem a devida experiência em modelagem de banco de dados. Além disso, há empresas especializadas no desenvolvimento de sistemas computacionais que optam por não definir qualquer tipo de restrição de integridade no banco de dados de forma a manter seu sistema computacional independente da camada de dados. 4 Jogo Didático A concepção de um jogo inicia-se com o estabelecimento de seus elementos básicos necessários. Neste sentido, a tarefa de game design [17, 18] é de vital importância. Ela consiste na definição do roteiro, script, descrição dos personagens, além de uma série de atividades descrevendo os elementos do jogo. Esta tarefa tem como um dos seus principais objetivos a geração de um documento no qual são considerados como elementos principais: estória, estética, mecânica e tecnologia [15]. 101 Pires, C. E. et al. Estória O jogo didático, denominado Mr. Data Analyst1, busca auxiliar aos estudantes a se familiarizar com os conceitos básicos relacionados a bancos de dados relacionais e qualidade de dados. O jogo simula situações em que um analista de dados se depara com diferentes cenários nos quais deve identificar possíveis problemas que afetam a qualidade de dados armazenados em bancos de dados relacionais de empresas. Diante de um cenário, o jogador deve marcar os dados que, em sua opinião, apresentam problemas de qualidade. Ao finalizar a marcação, um escore é apresentado ao jogador indicando se o mesmo venceu ou perdeu a partida. RBIE V.23 N.3 – 2015 A tela de instruções oferece ao jogador (iniciante) a opção de assistir a um vídeo explicativo sobre as regras e comandos de jogo que permitem iniciar uma partida e evoluir de maneira fácil e objetiva (Figura 4). Esta opção disponibiliza ainda um tutorial no qual são apresentados os conceitos básicos sobre bancos de dados relacionais e qualidade de dados. Os níveis do jogo correspondem às classes que um profissional pode assumir como analista de dados atuando em empresas, nesta ordem: Estagiário (ETG), Analista de Dados Júnior (ADJ), Analista de Dados Pleno (ADP) e Analista de Dados Sênior (ADS). O objetivo do jogo é vencer uma determinada quantidade de partidas suficiente para que o jogador possa se tornar um ADS. Estética O elemento “estética” corresponde a interface do jogo. Para a versão atual do jogo Mr. Data Analyst, este elemento é decomposto em: tela inicial, tela de instruções, tela de classificados e tela de partidas. A tela inicial, ilustrada na Figura 3, contém três opções: Jogar, Melhores Pontuações e Créditos. A opção Melhores Pontuações permite visualizar o nome dos jogadores que alcançaram as maiores pontuações até o momento, além do valor da pontuação e do nível do jogo atingido. A opção Créditos apresenta o nome e endereço eletrônico dos integrantes da equipe responsável pelo desenvolvimento do jogo. A opção Jogar encaminha o jogador para a tela de instruções. Figura 4: Tela de instruções contendo vídeo explicativo sobre o jogo A tela de classificados permite ao jogador visualizar diferentes ofertas de vaga oferecidas para analista de dados (Figura 5). Ao selecionar uma oferta, são mostradas as informações: ramo da empresa que está oferecendo a vaga (na figura, Supermercado), o nível da vaga (Estagiário) e o valor do salário inicial (R$ 678,00). O jogador tem a opção de aceitar ou rejeitar a oferta. Figura 5: Tela de classificados com ofertas de vagas de trabalho Figura 3: Tela inicial do jogo Mr. Data Analyst 1 Disponível em http://www.mrdataanalyst.pe.hu/ 102 A tela de partidas exibe os cenários com os quais o jogador irá se deparar durante o jogo. O cenário de Supermercado mostrado na Figura 6 é composto pela tabela ItemSetorAçougue. A parte superior da tela exibe o nome (RBIE 2015) e a imagem do jogador, o nível do jogo (Estagiário), a quantidade de erros nos dados marcados até o momento (4 de um total de 5), a pontuação (salário) atual Pires, C. E. et al. Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais do jogador (R$ 1.006,00) e um cronômetro regressivo mostrando quanto tempo resta para o jogador terminar de marcar os erros (00:04:22). Logo abaixo, é mostrada a barra de partidas que indica as partidas que o usuário já disputou no nível do jogo em que se encontra. A cor verde indica partidas com vitórias; derrotas são mostradas na cor vermelha. Para marcar um dado com problema, é necessário clicar na célula que contém o dado. A célula ficará destacada. Outro clique na mesma célula irá desmarcar o dado e a célula voltará ao aspecto original (sem destaque). Figura 6: Tela de partidas mostrando os dados marcados como “sujos” segundo o usuário Ao finalizar todas as marcações, o botão “Avançar” (parte inferior da Figura 6) é habilitado para que o jogador encerre a partida. Como resultado, o escore da partida é apresentado. Além disso, a cor das células é modificada para refletir o resultado esperado (gabarito) e permitir que o jogador possa aprender com o jogo. As células contendo dados marcados corretamente como sujos são mostradas na cor verde; as células contendo dados que o usuário deixou de marcar como sujos e que de fato eram sujos são mostradas em amarelo; e as células contendo dados que o usuário marcou como sujos (mas que não eram) são mostradas em vermelho. Ao movimentar o mouse em uma célula contendo um dado sujo, o jogo exibe uma mensagem na forma de “balão” com o nome e a descrição do erro. Mecânica Este elemento define o funcionamento básico do jogo. A princípio, o jogador está à procura de uma vaga de trabalho e, para isso, dirige-se à seção de classificados de emprego de um jornal. Ao visualizar os dados de uma oferta de vaga, o jogador tem a opção de aceitar ou recusar. Caso aceite a oferta, o jogador é apresentado a um cenário escolhido aleatoriamente pelo jogo que corresponde a sua primeira partida. Um cenário contém uma ou mais tabelas de um banco de dados referentes a uma área funcional da empresa (por exemplo, produção, financeira, marketing, entre outros) escolhida para trabalhar. Um texto descritivo sobre o funcionamento da área funcional na empresa também é mostrado ao jogador para que possa adquirir um entendimento mínimo sobre o domínio no qual irá atuar. Diante de um cenário, o jogador visualiza diversos dados com e sem problemas de qualidade. O jogador deve então marcar quais dados acredita que apresentam problemas de qualidade. Os cenários podem variar tanto na quantidade quanto nos tipos de problema de qualidade. Graus de Dificuldade. Quando o jogador encontra-se nos níveis iniciais do jogo (ETG e ADJ), a quantidade de problemas de qualidade existentes nos dados do cenário é indicada pelo jogo, o que não ocorre nos níveis ADP e ADS. Para simular a pressão por resultados, comum nas empresas, o jogador é submetido a um limite de tempo para marcar os dados com problemas de qualidade. Um cronômetro regressivo é mostrado na tela com intervalos de tempo menores à medida que o jogador muda de nível. Por fim, cenários contendo erros mais difíceis de serem detectados são mostrados quando o jogador avança de nível. A Tabela 2 apresenta um resumo de como o grau de dificuldade evolui ao longo dos níveis do jogo. Média de problemas de qualidade por cenário Média de tabelas por cenário Média de linhas por cenário Indicação da quantidade de erros no cenário Disponibilização de dicas para o jogador Tempo disponível para o jogador (em minutos) ETG ADJ ADP ADS 1 2 3 3 5,3 7 7,5 23,8 14 22,7 23,8 Sim Não Não Sim Sim 5 4 Sim 22,7 Não 3 Não 2 Tabela 2: Evolução dos graus de dificuldade por nível do jogo Cálculo do escore. Ao finalizar a marcação dos dados, o resultado do usuário é comparado com o resultado correto (disponível em um gabarito previamente cadastrado pelo professor). Um escore entre 0 (zero) e 100 (cem) é calculado e mostrado ao jogador. Para o cálculo do escore de uma partida, são considerados: a) os dados marcados corretamente como sujos; b) os dados que o usuário deixou de marcar como sujos e que de fato eram sujos; e c) os dados que o usuário marcou como sujos, mas que na prática não eram. Neste sentido, são aplicadas as métricas Precision, Recall e F-measure (Equações 1, 2 e 3), tipicamente utilizadas para na área de Recuperação da Informação [14]. Em particular, o valor gerado pela métrica F-measure corresponde ao escore da partida. Nas equações, o conjunto A refere-se aos dados (células) marcados como sujos pelo usuário. O conjunto B referese aos dados (células) que de fato são sujos, o que é verificado a partir do gabarito do cenário. Precision = Recall = |A ∩ B| |B| |A ∩ B| |A| (1) (2) 103 Pires, C. E. et al. RBIE V.23 N.3 – 2015 Escore = F − Measure = 2 ∗ Precision ∗ Recall Precision + Recall (3) Mudança de nível. O jogador começa o jogo no nível básico que corresponde à classe de estagiário (ETG). Para avançar para os níveis seguintes (classes ADJ, ADP e ADS), em cada nível, o jogador deve vencer pelo menos 3 (três) partidas de um total de 5 (cinco) partidas disputadas seguidamente. Nesse caso, diz-se que o jogador foi promovido na empresa. Caso contrário, o jogador é demitido da empresa e deve procurar outra oferta de trabalho (volta ao início do jogo, ou seja, à tela de classificados). O jogador também pode pedir demissão da empresa a qualquer momento e procurar uma nova oferta de trabalho. Em ambos os casos (pedir demissão e ser demitido), ao aceitar uma nova oferta, o jogador mantém a classe obtida no último emprego, porém sua pontuação é zerada. Pontuação. Refere-se ao salário do jogador. Inicialmente, a pontuação é igual ao salário oferecido na oferta de vaga aceita pelo jogador (Equação 4). Pontuação Inicial = Valor da oferta (4) Durante o jogo, a pontuação é incrementada com o recebimento de comissões que variam mediante o desempenho do jogador nas partidas (Equação 5). O valor da comissão em uma partida i é definido em função do escore obtido e do tempo gasto pelo jogador. A comissão é influenciada pelo nível do jogo j em que o jogador se encontra. É importante salientar que a comissão só é atribuída ao jogador caso o escore tenha sido maior ou igual a 70 (valor configurável), o que significa vitória na partida. ã 2× 100 − × , 4 0, ≥ 70 á (5) A pontuação final do jogador no jogo corresponde à soma dos salários e comissões obtidos durante as partidas i nos diferentes níveis j, como mostra a Equação 6. çã = çã + á × ã Figura 7: Fluxograma geral de execução do jogo didático (6) A vitória no jogo ocorre quando o jogador encontra-se na última classe (ADS) e consegue vencer pelo menos 3 (três) partidas de um total de 5 (cinco) partidas disputadas seguidamente. A Figura 7 apresenta o fluxo geral do jogo didático. São mostrados os quatro diferentes níveis a serem percorridos pelo jogador até a vitória final no jogo. A Figura 8, por sua vez, detalha o processo Joga Partida de modo a descrever melhor o fluxo típico de uma partida. Figura 8: Detalhamento do processo Joga Partida 104 Pires, C. E. et al. Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais Tecnologia O jogo foi concebido para ser jogado pela Internet, com o uso de um navegador web. A escolha pela plataforma web se deve por ser de fácil distribuição e acessível, dado que não é necessário realizar instalações e pode-se jogar a partir de qualquer computador com um navegador web e conectado à Internet. Para o desenvolvimento do jogo didático, foram utilizadas as seguintes tecnologias: HTML5, CSS, JavaScript, PHP e SGBD MySQL. A linguagem HTML5 [6, 19] foi adotada para a implementação da interface do jogo devido à portabilidade, facilidade de uso e crescente espaço que tem ganhado no mercado de jogos e da Internet nos últimos anos. CSS foi usada para definição de fontes, cores, margens, linhas, alturas, larguras, tamanho e posição dos objetos do jogo. JavaScript foi utilizada para dinamizar as páginas HTML, uma vez que as mesmas sofrem alterações a cada evento realizado pelo jogador como, por exemplo, o clique em uma célula ou em um botão. O SGBD MySQL foi escolhido para gerenciar as informações dos jogadores, ofertas de vaga e cenários do jogo. Atualmente, o banco de dados possui mais de 100 cenários sintéticos e reais de 10 empresas cadastrados de modo a minimizar a possibilidade de repetir cenários aos jogadores. A Figura 9 ilustra os principais componentes arquiteturais do jogo didático, assim como a camada em que são executados (cliente, servidor e dados). O Gerenciador de Usuários é responsável pelo cadastro e autenticação de usuários. O Gerenciador de Cenários e Propostas permite ao professor cadastrar cenários sintéticos ou reais (obtidos a partir de dados abertos - Open Data) no banco de dados. Em ambos os casos, o professor deve fornecer o gabarito correspondente ao cenário. Este componente também é responsável por escolher aleatoriamente cenários disponíveis no banco de dados a serem apresentados aos estudantes durante as partidas. O componente Avaliador de Resultados e Gerador de Escore compara aos erros marcados pelo jogador no cenário de uma partida com o respectivo gabarito e calcula o escore da partida. Finalmente, o Gerenciador de Pontuação e Nível determina se o usuário venceu/perdeu e se está apto ou não a avançar de nível. Figura 9: Arquitetura do jogo didático Mr. Data Analyst 5 Experimentos Para validar o jogo didático proposto neste trabalho, foram realizados dois experimentos. O Experimento I avaliou se o jogo didático é capaz de proporcionar alguma melhoria na aprendizagem dos alunos. O Experimento II teve como objetivo avaliar a aplicabilidade do jogo didático. Experimento I Participaram deste experimento os alunos cursando o semestre 2014.2 da disciplina Gerência da Informação (3º período) do curso de Ciência da Computação da Universidade Federal de Campina Grande (UFCG). Inicialmente, foram elaborados dois exercícios, cada um contendo quatro cenários de um banco de dados temático. Para o banco de dados do Exercício 1, o tema foi Cinema, enquanto que, para o Exercício 2, o tema foi Concursos Públicos. Cada cenário representou um nível do jogo (ETG, ADJ, ADP e ADS). Os exercícios com respectivos cenários podem ser visualizados no Anexo II. As células em destaque indicam a presença de um problema de qualidade nos dados. O experimento foi realizado em duas aulas. Na primeira aula, foi feita uma explanação pelo professor sobre qualidade de dados em bancos de dados relacionais e aplicado o Exercício 1. Os alunos tiveram os mesmos intervalos de tempo disponibilizados no jogo para apontar os erros presentes nos dados de cada cenário, sendo 5 minutos para ETG, 4 (ADJ), 3 (ADP) e 2 (ADS). Não foi indicada a quantidade de erros presente em cada cenário. No final da aula, foi feita uma demonstração do jogo didático e disponibilizado o endereço do jogo na Internet. Os alunos foram incentivados a jogar e, para isso, tiveram o período de uma semana. Na aula seguinte, foi aplicado o Exercício 2, com os alunos tendo os mesmos intervalos de tempo do exercício anterior para marcar os erros presentes nos dados de cada 105 Pires, C. E. et al. RBIE V.23 N.3 – 2015 um dos 4 cenários. Um total de 37 alunos esteve presente nas duas aulas e, por conseguinte, realizaram os dois exercícios. No entanto, desses 37 alunos, somente 27 informaram ter jogado enquanto que os demais (10) alegaram não terem jogado por algum motivo. Desta forma, apenas os 27 alunos que jogaram tiverem o desempenho avaliado. Para avaliar o desempenho de um aluno em um cenário, utilizou-se a Equação 3, a mesma aplicada no jogo didático. A avaliação foi realizada logo após a realização de cada exercício. O desempenho geral dos alunos após o Exercício 1 foi comparado com o desempenho geral após o Exercício 2. No primeiro, os alunos tiveram apenas uma aula expositiva sobre qualidade de dados. No segundo, além da aula, os alunos tiveram à disposição o jogo didático para praticar. A seguir, os resultados são apresentados, bem como uma discussão sobre os mesmos. A Figura 10 ilustra o comparativo de desempenho geral (considerando os 27 alunos), por nível do jogo, em cada exercício. Com exceção do nível ADP, houve uma melhoria de desempenho dos alunos após a utilização do jogo didático. O nível ADJ foi o que apresentou o melhor resultado (acréscimo de 24%). Em termos gerais (considerando todos os níveis), a melhoria foi de 5%. Uma possível justificativa para o resultado negativo no nível ADP pode ser a presença de problemas de qualidade mais difíceis de serem detectados (PQ11 e PQ17) no Exercício 2. Uma discussão sobre facilidade/dificuldade em detectar os problemas de qualidade é mostrada a seguir. Figura 11: Desempenho dos alunos por sexo Neste experimento, realizou-se ainda uma análise dos problemas de qualidade que foram mais/menos facilmente identificados pelos alunos. O Anexo III ilustra como os problemas de qualidade foram distribuídos nos cenários montados. Dos 29 problemas de qualidade elencados no Anexo I, 13 foram utilizados nos exercícios. No Exercício 1, foram inseridos os problemas de qualidade PQ01, PQ02, PQ04, PQ05, PQ06, PQ07, PQ11, PQ12, PQ15, PQ16, PQ17 e PQ21. O Exercício 2 continha os mesmos problemas de qualidade do Exercício 1 com o acréscimo do erro PQ08. Durante a elaboração dos exercícios, não foi possível utilizar nos cenários os mesmos problemas de qualidade nem na mesma quantidade, dado que os temas dos bancos de dados de cada exercício eram diferentes. De acordo com a Figura 12, os problemas de qualidade PQ01 (valor ausente), PQ07 (violação de sintaxe) e PQ12 (inversão de valores entre atributos) foram identificados por mais de 96% dos alunos. Uma possível justificativa é que, por não seguirem o padrão dos demais dados do atributo que não contém erros, os dados relacionados a esses problemas chamam a atenção do jogador, facilitando a percepção visual. Figura 10: Desempenho geral dos alunos antes e depois do uso do jogo A Figura 11 mostra o comparativo de desempenho geral (considerando os 27 alunos), por nível do jogo, de acordo com o sexo dos alunos. Dos 27 alunos, 22 eram do sexo masculino e 5 do sexo feminino. Apesar da disparidade na quantidade de alunos e alunas, percebe-se uma pequena variação no desempenho ao longo dos níveis do jogo, o que se reflete no resultado geral. O desempenho dos alunos foi superior em apenas 1,09% em relação ao das alunas. 106 Figura 12: Taxa de acertos por problema de qualidade Em contrapartida, os problemas de qualidade PQ11 (violação de dependência entre atributos) e PQ17 (linha duplicada) foram identificados por menos da metade dos alunos. Para identificação do PQ11, é preciso primeira- Pires, C. E. et al. Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais mente analisar a semântica do esquema do banco de dados, no intuito de verificar se algum atributo depende funcionalmente de outro. Apenas se existir tal dependência é que os dados dos atributos envolvidos devem ser analisados. Observou-se que a maioria dos alunos prioriza a análise dos dados, desconsiderando o contexto do esquema. Em relação ao PQ17, verificou-se que boa parte dos alunos chegam a analisar os dados em relação à célula, ao atributo e à linha inteira. No entanto, ao identificarem que os dados de cada linha estão corretos, esquecemse de analisar cada linha em relação à tabela inteira. Experimento II A análise de aplicabilidade do jogo didático foi realizada com a utilização de questionários explorando diferentes aspectos do jogo: navegação nas telas, legibilidade de recursos, tempo disponibilizado para jogar, utilidade do jogo e desempenho do jogo. O objetivo foi identificar possíveis problemas específicos com o design tais como ergonômicos, resultados inesperados, ambiguidades e inconsistências. Os questionários utilizados estão disponíveis no Anexo IV. Figura 14: Análise de legibilidade do jogo Em relação ao tempo oferecido para marcação dos problemas de qualidade (Figura 15), 94% dos alunos não tiveram dificuldade nesse item tendo marcado todas ou a maioria das células contendo erros. Isso mostra que os tempos atualmente aplicados parecem ser factíveis com os cenários disponibilizados. No entanto, foi sugerido que o cronômetro regressivo ficasse mais visível e emitisse algum sinal de alerta quando o tempo estivesse acabando. No quesito Navegação, é possível perceber na Figura 13 que mais de 80% dos alunos conseguiram navegar facilmente nas telas disponibilizadas no jogo. No entanto, alguns alunos reportaram dificuldade em navegar na tela de partidas, especialmente quando o cenário continha duas ou três tabelas. Com isso, era preciso usar a barra de rolagem, o que era cansativo e fazia o jogador perder tempo. Figura 15: Análise do tempo disponibilizado para disputar partidas Figura 13: Análise do grau de navegação do jogo No quesito Legibilidade, a Figura 14 mostra que 94% dos alunos acharam que as funcionalidades do jogo estavam bem expostas, a maioria delas podendo ser percebidas facilmente. Contudo, alguns alunos citaram que os ícones de acesso às dicas ficaram pouco perceptíveis. A questão da ajuda ao usuário também foi mencionada, no sentido de indicar melhor como as células deveriam ser marcadas pelo jogador de acordo com cada problema de qualidade. Esse problema foi observado durante a realização do Experimento I. Alguns alunos fizeram as marcações de problemas de dados de forma incorreta, muito embora tenham sido previamente orientados pelo professor sobre como utilizar o jogo. Como mostra a Figura 16, mais da metade dos alunos consideram que a principal utilidade do jogo é a possibilidade de aprender os conceitos de banco de dados e qualidade de dados. Em segundo lugar aparece a opção de divertimento. Percebe-se então que o jogo pode servir como uma maneira de fomentar o interesse e salientar a importância do estudo de Banco de Dados, ao mesmo tempo em que se oferece como uma opção de entretenimento. Figura 16: Análise da utilidade do jogo Em relação ao quesito Desempenho, a Figura 17 mostra que 84% dos alunos alegaram ter tido pouco ou nenhum problema ao executar o jogo a partir de seus computadores pessoais. Entretanto, apesar da arquitetura 107 Pires, C. E. et al. (baseada na Web) proposta para o jogo ter apresentado boa escalabilidade nesse experimento, testes com uma quantidade maior de usuários ainda necessitam ser realizados. RBIE V.23 N.3 – 2015 tratos nos quais o estudante sequer tem contato com os dados. Excetuando-se o jogo Qualidados, constata-se que a maioria dos jogos educacionais voltados para o ensino de Ciência da Computação abrange as áreas de Programação e Engenharia de Software. Desta forma, este artigo propõe um jogo educacional em uma área carente deste tipo de iniciativa. O foco do jogo Mr. Data Analyst está na detecção de problemas de qualidade de dados. O jogador se depara com cenários sintéticos ou reais e precisa apontar onde estão os problemas de qualidade. 7 Conclusões Figura 17: Análise de desempenho do jogo didático 6 Trabalhos Relacionados Um dos principais problemas enfrentados no ensinoaprendizagem de Ciência da Computação é assegurar o fator motivacional dos estudantes. A utilização de jogos educacionais é uma forma de fomentar o interesse e salientar a importância do estudo das diversas áreas do curso [4, 23]. Neste contexto, é possível encontrar diversos trabalhos que propõem jogos educacionais voltados para o ensino de Ciência da Computação tanto para estudantes de nível superior quanto de ensino médio [3, 7, 8, 9, 12]. O jogo ProGame [3] apresenta uma série de desafios que estimulam o estudante a praticar seus conhecimentos sobre programação nas linguagens Python ou Java. O jogo Ilha de Requisitos [7] é voltado para revisão de conhecimento sobre engenharia de software. No jogo, o estudante faz o papel de um aventureiro localizado em uma ilha deserta e precisa resolver desafios para conseguir fugir. O jogo Plant-Ação [9] visa auxiliar o ensinoaprendizagem das disciplinas de introdução à programação. Através de uma série de ações, o jogador deve montar uma sequência de passos que levem o personagem a realizar uma plantação. O ato de plantar no jogo é refletido em um algoritmo. O jogo Qualidados [12] simula uma empresa de TI na qual o jogador faz o papel de um analista de dados e tem a sua disposição: servidores alocados a uma lista de projetos e ferramentas de qualidade de dados. Cada projeto possui uma descrição com seus objetivos e atributos que revelam a qualidade de dados atual e a desejada. O jogador deve selecionar um projeto, alocar servidores para a sua realização e aplicar as ferramentas de qualidade de dados adequadas ao seu projeto. Diferentemente de Mr. Data Analyst, o jogo Qualidados foca na correção de problemas de qualidade de dados que podem ocorrer em projetos de TI. Os projetos são na verdade cenários abs- 108 Os jogos didáticos são aplicações utilizadas facilmente e costumam despertar grande fascínio pelos jovens estudantes. Este trabalho apresentou um jogo didático para apoiar a aprendizagem de banco de dados relacionais. Os conhecimentos explorados no jogo se restringem inicialmente aos conceitos básicos de bancos de dados relacionais - esquema, tabelas, linhas, colunas, tipos de dados e restrições de integridade, bem como aos diferentes tipos de problemas que podem afetar a qualidade dos dados. Esse processo ocorre com a inserção do jogador no ambiente de gerenciamento de dados de forma organizada e simplificada para que possa se adaptar de forma gradativa com os novos termos e características que podem se intensificar em número e dificuldade com o avanço de níveis. O jogador assume o papel de um analista de dados e tem que avaliar a qualidade dos dados em diferentes cenários. O jogo é voltado para estudantes de graduação e ensino médio. A proposta é trabalhar o lado motivacional dos estudantes para tentar combater a evasão que ocorre nos primeiros anos do curso e despertar o interesse vocacional pela profissão. Os resultados obtidos durante a realização dos experimentos indicam que o jogo é capaz de melhorar a aprendizagem dos alunos, ao mesmo tempo em que serve como uma opção de divertimento. Como trabalhos futuros, além de aperfeiçoar a apresentação do jogo (interface), pretende-se adicionar novas funcionalidades ao mesmo como, por exemplo, a capacidade do jogador poder indicar nos cenários como os problemas devem ser corrigidos (incluindo a ordem de correção), de modo a aumentar a qualidade dos dados. Além disso, há a intenção de adicionar à arquitetura do jogo um módulo para criação automática de cenários sintéticos, o que facilitaria consideravelmente o trabalho do professor. Pires, C. E. et al. Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais Anexo I Anexo II Problemas de Qualidade de Dados Exercício 1 – Banco de Dados: Cinema Problema PQ1 Grão A Nome Valor ausente PQ2 A PQ3 A PQ4 PQ5 A A PQ6 A Erro ortográfico Informação em excesso Substring inválido PQ7 A Violação de sintaxe Violação de domínio Valor incorreto PQ8 PQ9 A A Valor impreciso Violação de restrição de domínio de negócio Valor desatualizado PQ10 A PQ11 L PQ12 L PQ13 L PQ14 L PQ15 TU PQ16 TU Violação da dependência entre atributos Inversão de valores entre atributos Tupla semi-vazia ou vazia Violação de dependência funcional Utilização de sinônimos Valor não único PQ17 TU Linha duplicada PQ18 TU PQ19 TU PQ20 TU Redundância sobre a mesma entidade Violação de restrição de domínio de negócio Circularidade entre tupla em autorrelacionamento PQ21 MT Referência inexistente PQ22 MT Referência existente, mas errada PQ23 MT Redundância sobre a mesma entidade PQ24 MT Inconsistância sobre a mesma entidade PQ25 MT PQ26 MT Formatos de representação diferentes Unidade de medidas diferentes PQ27 MT Utilização de sinônimos PQ28 MT Violação de restrição de domínio PQ29 MT Domínio de violação de restrição Descrição Ausência de valor em um atributo que deveria conter dados Valor fora do domínio de valores válidos Valor do atributo não corresponde à situação real Valor contém erro de grafia Múltiplos valores introduzidos num único atributo textual Anomalia resultante do uso de abreviaturas ou pronomes de tratamento em nomes de pessoas Uso de múltiplos formatos para representar os dados de uma mesma coluna Uso de acrônimos ou abreviações Valor do campo não poderia ser aceito no mundo real Valor não corresponde ao valor atual Existência de inconsistências entre os valores dos atributos Introdução de valor no atributo errado A maioria dos atributos da tupla não está preenchida O valor de um atributo não está relacionado apenas a este, como deveria na vida real Expressões diferentes, mas com o mesmo sentido Duas linhas diferentes possuem valores iguais em um atributo de valor único Uma mesma entidade encontra-se representada de forma igual ou semelhante em múltiplas linhas Aparentemente existe outro registro da mesma entidade Uma tabela possui mais/menos tuplas do que deveria Um registro na tabela que são, ao mesmo tempo, gerente e subordinado da mesma pessoa, por exemplo Refere-se a uma violação de integridade referencial Valor do atributo não viola a integridade referencial, contudo é incorreto A mesma entidade encontra-se representada sob formas iguais ou diferentes em várias tabelas Conflitos nos valores dos atributos de uma entidade representada em mais do que uma tabela O valor do atributo surge sob diferentes formatos de representação consoante a tabela O valor do atributo surge sob variadas unidades de medida consoante à tabela Expressões sintaticamente diferentes, mas com igual significado em tabelas diferentes Um valor em uma tabela é inconsistente, de acordo com dados em outra tabela Violação de restrição inerente ao domínio, envolvendo os relacionamentos entre múltiplas relações Tabela 3: Lista de problemas de qualidade de dados Código Filme Indicação Data Horário Sala 8290 Stalingrado 14 15.09.2012 19:00 5 2872 Rio Livre 13/02/2011 15:00 4 2287 Titanique 10 09/11/2010 16:00 2 2876 300 14 18/09/2013 21:00 1 9987 Drácula 14 23/10/2014 19:00 5 2876 Lista de Schindler 14 03/02/2011 20:00 3 Livre 08/06/2012 15:30 1 Livre 19/01/2011 16:00 2 6227 7726 Tarzan Tabela 4: Tabela “Cartaz”, nível ETG Código Data Hora Tipo Valor Sala Funcionário 8376 18.08.2009 17:10 Crédito 15,00 4 Rui 2276 24.09.2011 18:56 Débito 18,00 2 Sheila 1127 06/08/2012 19:35 Espécie 20,00 2 Lucas 3873 12.11.2008 13:08 Crédito 1 Ney 3367 16.10.2012 12:54 Crédito 20,00 3 Rui 2228 15.10.2011 19:65 Débito 18,00 3 Pedro 2287 13.03.2006 22:15 Débito 10,00 2 Lucas 3380 22.07.2014 20h19 Espécie 25,00 -5 Paulo 3368 16.10.2012 12:55 Crédito 20,00 3 Rui Tabela 5: Tabela “Vendas”, nível ADJ Número Capacidade 3D 2 600 Sim 1 5oo Não 5 340 Não 4 280 Não 3 490 Sim 7 330 Não 6 210 Talvez Tabela 6: Tabela “Salas”, nível ADP Número Filme Data Horário Sala Poltrona Promocional 88276 Annabelle 13/10/2014 22h30 45-D 3 Não 33776 Carros 2 30/02/2014 16h15 4 12-A Não 22561 Festa no Céu 28/10/2014 20h00 1 15-C Não 55344 Gibraltar 27/10/2014 17h25 8 22-A Sim 22455 Interestelar 15/10/2014 25h30 6 11-B Não 33627 Made in China 22/09/2014 17h30 5 23-C Não 51411 O Juiz 26/10/2014 19h00 7 23-A Não 22467 Scarface 27/09/2014 18h10 2 26-G Sim 109 Pires, C. E. et al. 22356 O Juiz 26/10/2014 RBIE V.23 N.3 – 2015 19h00 7 23-A Não Tabela 7: Tabela “Ingressos”, nível ADP 1135272 Luana Aparecida Dias Escola Normal 23/02/2012 14:00 M252 2262524 Paula L. Vasconcelos Escola Normal 23/Fev/12 08:00 M441 2272625 Simão Limas Gois UFCG 21/02/2012 14:00 M542 Ticiana Guedes Melo UEPB 21/02/2012 M265 14:00 Matrícula Nome Nascimento Admissão Sexo Nacionalidade 2522442 272728 Sandro D. Rocha RG 166515 08/02/1989 03/02/2012 M Brasileira 226651 Dr. Juan Antonio Diniz 15/04/1978 11/12/2011 M Argentina Tabela 12: Tabela “Cartões de Prova”, nível ADJ 288272 Simone Andrade Neves 22/06/1986 17/08/2013 M Brasileira Código Descrição Vagas VagasDeficientes Cidade Salário 228711 Roberta Alves Paes 23/03/1988 06/06/2011 F Brasileira 982726 Juan Gonzales Ortega 21/09/1991 05/10/1993 M Portenha M099 Motorista 3 1 João Pessoa 1251,00 M252 Assistente Social 10 2 Campina Grande 1326,00 M526 Cajazeiras 5 1 Fiscal 2277,00 M251 Motorista 2 1 Patos 1265,00 M987 Supervisor 3 1 Cajazeiras 2098,00 M262 Cozinheiro -2 1 Sousa 813,00 M441 Administrador 3 1 Campina Grande 2526,00 M232 Médico 1 4 Pombal 6352,00 Tabela 8: Tabela “Funcionários”, nível ADS Sala Capacidade VagasCadeirantes Situação 4 250 10 Liberada 1 110 120 Liberada 2 155 5 Liberada 5 180 8 Não disponível 3 300 10 Liberada 6 220 5 Indisponível Tabela 13: Tabela “Cargos”, nível ADP Tabela 9: Tabela “Salas”, nível ADS Código DataReserva Horário DataExpiração Sala Poltrona Funcionário R37378 12/12/2012 21:00 14/12/2012 4 183 288272 R29988 11/02/2014 21:00 14/12/2012 3 255 226651 R43435 01/12/2014 17:30 03/12/2014 5 106 982726 R98711 14/05/2010 17:00 12/05/2010 1 95 288272 R29989 11/02/2014 21:00 14/12/2012 3 255 228711 R44222 03/01/2012 14:30 05/01/2012 2 109 288272 R73662 22/02/2012 19:00 24/02/2012 1 32 982726 R44113 05/10/2009 17:30 07/10/2009 4 350 288272 Tabela 10: Tabela “Reservas”, nível ADS Exercício 2 – Banco de Dados: Concursos Públicos Inscrição Nome CPF Naturalidade Sexo Cargo 7262188 Carlos Andrade Costa 99627722111 São Paulo M Analista 1227762 Timóteo Guedes Lira 33366654355 São Carlos M Analista 2226554 Ticiane A. Souza 37363635211 C. Grande F Motorista 3383262 Yana Marinho Chagas 33883999001 Gramado F Auxiliar 1116522 Tales A. Drummond 12278990222 Coritiba M Secretario 2226533 Simone Freitas Dias 33661551112 Limeira F Professora Poliana Soares Santos 62552442222 Recife F Consultor Antonio B. Costa 37365533327 Aracaju M Docente 3367771 Tabela 11: Tabela “Candidatos”, nível ETG Inscrição Candidato Local Data Horário Cargo 7262551 Mário S. Gomes Escola Normal 20/02/2012 08:00 M733 3363617 Arão Orestes Silva Escola Municipau 20/02/2012 14:00 M265 1262625 Sandra N. Goes UFCG 21/02/2012 0800 M262 2262524 Antonieta Dantas UFCG 20/02/2012 08:00 M726 2727262 Vânia Eduarda Sá UEPB 21/02/2012 14:00 M252 110 Código Candidato Data Situação Cargo Valor A282882 Douglas Miguel Sá 23/03/2014 09:22 Pago M262 65,00 A262554 Diana Marques Souza 12/04/2014 15:21 Pendente M232 75,00 A272662 Paulo Gomes Dias 31/02/2014 08:23 Pago M251 60,00 A726252 Ricardo A. Marinho 25/03/2014 10:32 Pago M987 65,00 A724431 Bruna Leite Guedes 06/04/2014 12:55 Pago M262 65,00 A888222 Maria Porto França 20/04/2014 05:40 Pendente M441 70,00 A871622 Yana Alencar Marinho 01/04/2014 09:22 Pendente M999 65,00 A321466 Roberta Alves Flores 09/03/2014 08:01 Pago M252 70,00 A871112 Romão Cesar Vilar 22/03/2014 06:44 Pago M987 65,00 A888223 Maria P. França 20/04/2014 05:43 Pago M441 70,00 A726262 Patrícia Gomes Alvarez 25/03/2014 08:12 Pago M099 75,00 Tabela 14: Tabela “Inscrições”, nível ADP Código Entidade Inscrição Realização Resultado Vagas 2289 PRF 20/02/2012-28/03/2012 14/07/2012 16/09/2012 452 2776 CEF 16/03/2013-18/04/2013 16/05/2013 22/08/2013 526 2265 INSS 11/01/2009-23/02/2009 22/06/2009 19/05/2009 335 9982 Dataprev 03/04/2011-07/05/2011 13/07/2011 15/08/2011 225 6252 RFB 18/11/2009-25/12/2009 05/03/2010 02/06/2010 412 Tabela 15: Tabela “Concursos”, nível ADS CPF Nome Nascimento Naturalidade Sexo 38377763535 William Alves de Souza 08/09/1978 Rio de Janeiro Masculino 26265252542 Gustavo M. Dias 17/12/1976 Fortaleza - CE Masculino 99282727262 Poliana Andrade Silva 09/08/1992 Belém Feminino 28872626277 Damião L. Gondim 07/06/1956 São Carlos Feminino 49472628290 Tarsila Andrade Rocha 28/09/1978 Porto Alegre Feminino 30389373736 Maria Dolores Meira 07/10/1976 Brasília Feminino 38363637373 A/C Túlio Patrício Salgado 19/02/1992 Belo Horizonte Masculino 37363638399 Rubens Benário Souza 08/05/1956 Poa Masculino Pires, C. E. et al. Um Jogo Educacional para Detecção de Problemas de Qualidade de Dados em Bancos de Dados Relacionais Tabela 16: Tabela “Candidatos”, nível ADS Número CPF Concurso Cargo Cidade Situação 2727262 28872626277 2265 Auditor Taubaté Pago 8871716 36265252542 2289 Policial Belém Pendente 9019181 90389373736 6252 Analista Fiscal Maceió Feminino 2273736 88363637373 2265 Analista São Paulo Pago 2727888 59472628290 2289 Policial Belo Orizonte Pago 5424322 60389373736 2776 Caixa Brasília Pendente 8766151 99282727262 9982 Programador São Paulo Pago 5424322 37363638399 2276 Caixa Fortaleza Pago 7262552 18377763535 9982 Programador Rio de Janeiro Pago 1266667 49472628290 8888 Programador Curitiba Pendente Tabela 17: Tabela “Inscrições”, nível ADS Anexo III ETG 1 ADJ 1 1 PQ16 PQ17 2 5 2 PQ02 PQ04 1 1 1 1 5 2 1 ADS PQ21 Total 2 2 3 2 PQ12 PQ15 1 2 ADP Total PQ06 PQ07 PQ11 2 8 3 4 8 7 1 2 2 4 2 PQ12 PQ15 6 9 16 1 Tabela 18: Distribuição dos problemas de qualidade no Exercício 1, por nível do jogo PQ01 ETG 1 PQ05 PQ06 1 ADJ 1 PQ11 ADS 1 1 1 1 3 3 1 1 2 2 2 PQ16 PQ17 PQ21 2 2 2 1 PQ08 1 ADP Total PQ07 1 4 2 6 2 7 2 2 4 2 Total 5 2 4 Tempo Disponibilizado. Você conseguiu terminar as partidas antes do tempo esgotar? ( ) Sim, todas; ( ) A maioria; ( ) Uma pequena parte; ( ) Não, nenhuma Utilidade. Em qual(is) das opções abaixo você acha que o jogo lhe foi útil? ( ) Aumentar a nota de alguma disciplina; ( ) Aprender conceitos de banco de dados; ( ) Passar o tempo; ( ) Diversão; ( ) Nada ( ) Outro Desempenho. Como você avalia o desempenho geral do jogo no seu computador? ( ) Ótimo ( ) Bom ( ) Regular ( ) Ruim ( ) Péssimo Questionário 2 – Aprimoramento do jogo Distribuição de Problemas de Qualidade PQ01 PQ02 PQ04 PQ05 expostas? ( ) Estão bem expostas e eu consegui identificar todas sem dificuldade; ( ) Estão bem expostas, mas algumas eu não percebi; ( ) Não estão tão bem expostas, por isso, senti dificuldade de jogar; ( ) Não estão bem expostas, mas eu consegui jogar normalmente; ( ) Outro 2 1 9 1 12 2 Tabela 19: Distribuição dos problemas de qualidade no Exercício 2, por nível do jogo Anexo IV Questionário 1 – Aplicabilidade do jogo Navegação. Você conseguiu navegar sem dificuldades pelo jogo? ( ) O tempo todo; ( ) Na maior parte do tempo; ( ) Nunca; ( ) Às vezes (i) O que você achou da interface (aparência) do jogo? Alguma sugestão? (ii) Você sentiu dificuldade de identificar alguma funcionalidade (por exemplo, identificar problemas de qualidade, encontrar tabelas de erros, ver descrição dos problemas de qualidade de cada cenário, ...) por causa da interface? Qual(is)? (iii) Sentiu falta de alguma funcionalidade no jogo? Qual(is)? (iv) Foi fácil entender a forma de avaliação feita pelo jogo após concluir as suas marcações de erros? Por quê? (v) Você teve algum benefício com as dicas disponibilizadas em cada cenário? Qual(is)? (vi) Ficou confuso de como jogar em algum momento? Em que momento? Agradecimentos Os autores gostariam de agradecer o apoio recebido do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) por ter possibilitado e financiado esta pesquisa. Agradecemos também à equipe da EEEFM Dr. Hortênsio de Sousa Ribeiro (Premen), em nome do Prof. Ednaldo de Farias e das alunas Waleska F. Xavier, Liliane de A. Cardoso, Martha Suellen B. de Lima e Eduarda M. Albuquerque Castro. Legibilidade. As funcionalidades do jogo estão bem 111 Pires, C. E. et al. RBIE V.23 N.3 – 2015 Referências [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 112 J. R. Bittencourt, L. M. Giraffa. Modelando Ambientes de Aprendizagem Virtuais utilizando Role-Playing Games. In Anais do 14º Simpósio Brasileiro de Educação (SBIE), Rio de Janeiro, páginas 47-70, 2003. C. Batini, M. Scannapieco. Data quality: concepts, methodologies and techniques, Springer. 2006. V. Dantas, P. Freitas, L. Alencar. ProGame: um jogo para apoiar o ensino aprendizagem de programação. In Anais do 1st Workshop on Applications to Provide Learning and Teaching Support do 22o Simpósio Brasileiro de Informática na Educação (SBIE), Aracaju, 2011. B. Feijó, F. Soares, F., E. Clua. Introdução à Ciência da Computação com Jogos. Editora Campus Elsevier. 2009. V. Ganti, A. D. Data Cleaning: A Practical Perspective, Morgan & Claypool Publishers. 2013. D. Geary. Core HTML5 Canvas: Graphics, Animation, and Game Development. Prentice Hall. 2012. R. Q. Gonçalves, M. Thiry, A. Zoucas. Promovendo a Aprendizagem de Engenharia de Requisitos de Software através de um jogo Educativo. In Anais do 21º Simpósio Brasileiro de Informática na Educação (SBIE), João Pessoa, 2010. D. L. Marques, L. F. S. Costa, M. A. A. Silva, A. D. D. S. Rebouças. Atraindo Alunos do Ensino Médio para a Computação: uma Experiência Prática de Introdução a Programação utilizando Jogos e Python. In Anais do 22º Simpósio Brasileiro de Informática na Educação (SBIE), Aracaju, 2011. V. K. S. L. Melo, R. G. de Almeida, R. A. D’Emery, A. C. Félix. Desenvolvimento de um Jogo Educacional para auxiliar o ensinoaprendizagem de Introdução à Programação. In Anais da 19ª Conferência Internacional de Informática na Educação (TISE), Fortaleza, páginas 615-618, 2014. P. Oliveira. Detecção e Correção de Problemas de Qualidade dos Dados: Modelo, Sintaxe e Semântica. Tese de Doutorado. Universidade do Minho, Portugal, 2009. P. Oliveira, F. Rodrigues, P. R. Henriques et al. A Taxonomy of Data Quality Problems. In 2nd [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] Int. Workshop on Data and Information Quality held in conjunction with CAiSE’05. 2005. G. F. Piccinin, S. R. Santos, S. L. Romano, M. M. Moro, M. M. QualiDados: Jogo Didático para Consolidação de Conceitos de Qualidade de Dados. In Anais da Sessão de Demos e Aplicações do 28º Simpósio Brasileiro de Banco de Dados (SBBD), Recife, páginas 55-60, 2013. E. Rahm, H.-H. Do. Data Cleaning: Problems and Current Approaches. IEEE Data Engineering Bulletin, 23(4):3-13, 2000. C. J. Rijsbergen. Information Retrieval, 2nd Edition Stoneham, MA: Butterworths, 1979. http://www.dcs.gla.ac.uk/Keith/Preface.html. S. Rogers. Level Up!: The Guide to Great Video Game Design. Editora Wiley. 2010. S. Sadiq. Handbook of Data Quality, Research and Practice, Springer. 2013. J. Schell. The Art of Game Design. Editora Elsevier. 2008. P. Schuytema. Design de Games: Uma Abordagem Prática. Cengage Learning. 2008. J. Seidelin. HTML5 Games: Creating Fun with HTML5, CSS3, and WebGL. Wiley. 2011. A. Silberschatz, H. F. Korth, S. Sudarshan. Sistema de Banco de Dados. Editora Campus, 6ª Edição. 2012. R. E. Silva, S. W. Martins. Ensino de Ciência da Computação através do Desenvolvimento de Jogos. In 7º Congresso Iberoamericano de Informática na Educação, Monterrey, páginas 1285-1295, 2004. R. Singh, K. Singh. A Descriptive Classification of Causes of Data Quality Problems in Data Warehousing. International Journal of Computer Science Issues, 7(3):41-50, 2010. A. V. Wangenheim, C. G. Wangenheim. Ensinando Computação com Jogos, Editora Bookess. 2013. D. Ballou, S. Madnick, R. Y. Wang. Assuring Information Quality. Journal of Management Information and Systems, 20(3):9-11, 2003. P. Christen. Febrl: an open source data cleaning, deduplication and record linkage system with a graphical user interface. In 14th ACM SIGKDD Int. Conference on Knowledge Discovery and Data Mining, páginas 1065-1068, 2008.