Um Jogo Didático para Detecção de Problemas

Propaganda
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.
Download