Você está na página 1de 16

Fabio Ginzel

Mario Matiusso Jr
Projeto de Desenvolvimento de Data Warehouse
Fase 3
Santo Andr SP
Maio / 2014
Universidade Federal do ABC
Bacharelado em Cincia da Computao
MC5005 - Banco de Dados de Apoio Tomada de Deciso
Turma A - Noturno - Santo Andr

Prof. Dr. Mrcio K. Oikawa

2

SUMRIO

INTRODUO .....................................................................................................................................3
OBJETIVO ............................................................................................................................................4
METODOLOGIA ..................................................................................................................................4
RESULTADOS E DISCUSSO ...........................................................................................................4
FASE 1 ..................................................................................................................................... 4
Fase 1 - Tarefa 1 ................................................................................................ 5
Fase 1 - Tarefa 2 ................................................................................................ 5
Fase 1 - Tarefa 3 ................................................................................................ 5
Fase 1 - Tarefa 4 ................................................................................................ 6
Fase 1 - Dificuldades Encontradas ..................................................................... 7
FASE 2 ..................................................................................................................................... 8
Fase 2 - Descrio do cenrio (problema a ser resolvido) ................................. 8
Fase 2 - Perguntas respondidas pelo Data Warehouse....................................... 8
Fase 2 - Modelo fato dimensional ...................................................................... 9
Fase 2 - Modelo lgico .................................................................................... 10
Fase 2 - Dificuldades encontradas ................................................................... 11
FASE 3 ................................................................................................................................... 12
Fase 3 Popular banco de dados ..................................................................... 12
Fase 3 Consultas ........................................................................................... 13
BIBLIOGRAFIA ................................................................................................................................ 16


3

INTRODUO

Fazemos escolhas o tempo todo em nossas vidas. Tomamos deciso sobre o que fazer, o
que escolher, e mesmo que optemos por no tomar deciso, este fato em si j uma tomada de
deciso. Alm disso, a anlise da deciso importante neste processo, levando-se em
considerao as consequncias, ou mesmo as pessoas envolvidas na deciso. E todo esse fluxo
de informaes ocorre em um ambiente dinmico, em que temos que ter a acurcia de perceber
tudo o que est ocorrendo neste ambiente.
Toda a competio que temos hoje com a globalizao fazem as companhias buscarem
sempre a tomada de deciso de forma rpida. Devido a isso, as empresas, para que seu
processo de tomada de deciso seja o mais embasado em dados consistentes, esto construindo
sistemas que organizem toda a informao da empresa para que ela esteja disponvel de acordo
com as necessidades de cada rea operacional atualmente. Um sistema muito utilizado o Data
Warehouse (DW).
Nos ltimos anos tivemos o desenvolvimento da ferramenta de data warehouse, e embora
ela no possua uma definio que completamente aceita por todos os autores, Inmon (1997)
consegue nos dar uma viso do que a ferramenta: Um data warehouse um conjunto de
dados baseado em assuntos, integrado, no voltil, e varivel em relao ao tempo, de apoio s
decises gerenciais. Como diz o autor, pelo fato dos dados no serem volteis, eles no podem
ser excludos. Apenas a carga e a consulta podem ser feitas no banco de dados.
O principal objetivo do Data Warehouse satisfazer as necessidades do seu usurio,
respondendo as questes necessrias. Ele complexo, pois costuma desenvolver diversos
sistemas de comunicao, servidores, dentre outros. Por fim, o Data Warehouse consegue reunir
em um nico lugar, informaes que antes estavam espalhadas e dispersas, ajudando a
organizao no planejamento e definio de qual a melhor estratgia a ser tomada.

4

OBJETIVO

O objetivo deste trabalho criar um Data Warehouse para aplicao no sistema de
matrcula da Universidade Federal do ABC, onde sero utilizados dados reais, e simular um
ambiente profissional com as dificuldades enfrentadas no dia-dia.
METODOLOGIA

O projeto foi dividido em trs fases. A primeira fase, basicamente, consistiu na preparao
dos dados. Foi montado o stage, partir dos dados capturados em pdf e posteriormente
estruturados. Tambm foi construdo um banco de dados relacional para dar incio ao
desenvolvimento do DW. Na segunda fase realiza-se a modelagem e a construo do data
warehouse. Esta etapa foi construda baseada em quatro atividades a serem realizadas. Foram
elas: construo do modelo fato dimensional, construo do modelo lgico (modelo estrela/ floco-
de-neve), construo do modelo fsico e carregamento dos dados no modelo fsico. A terceira
fase contemplou as atividades finais para concluso do data warehouse, incluindo a configurao
do servidor OLAP e a construo da interface de visualizao de dados e relatrios.
RESULTADOS E DISCUSSO
FASE 1

A fase 1 do projeto consiste nas seguintes atividades:
Tarefa 1: Obter as fontes originais de dados (arquivos pdf);
Tarefa 2: Processar as fontes de dados para criar arquivos estruturados;
Tarefa 3: Carregar os arquivos estruturados em um SGBD;
Tarefa 4: Construir um banco de dados relacional com os dados obtidos.




5

Fase 1 - Tarefa 1
As fontes de dados foram disponibilizadas pelo professor atravs do TIDIA. Foram
disponibilizados 4 arquivos em formato PDF contendo os dados:
Cancelamento de disciplinas;
Matrculas deferidas;
Relao Turmas/Salas/Docentes;
Relao T.P.I das disciplinas.
Fase 1 - Tarefa 2
Os arquivos PDF foram processados em formato CSV e tambm disponibilizados atravs
do TIDIA. Nenhum trabalho de formatao dos arquivos foi necessrio.
Fase 1 - Tarefa 3
Esta tarefa consistiu em criar as tabelas stage, ou seja, basicamente um espelho dos
arquivos CSV.
Os passos para realizao desta tarefa foram:
1. Foi criado o banco de dados utilizando o PostgreSQL;
2. Foram criadas 4 tabelas stage_NomeDoArquivo, seguindo a mesma estrutura do arquivo
CSV;
3. Com ajuda do software TextPad e aproveitando-se da estrutura dos arquivos CSV, foram
criados scripts de insero dos dados nas tabelas stage (INSERT);
4. Foi feita a populao das tabelas executando os scripts criados no passo anterior.
Por fim temos as tabelas stage criadas e populadas.

6
Fase 1 - Tarefa 4
Nesta tarefa, criamos um modelo relacional de acordo com o diagrama abaixo:

Figura 1: Modelo Relacional

A populao do das novas tabelas relacionais foram feitas realizando consultas as tabelas
stage, criadas anteriormente.
Afim de criar melhor consistncia algumas chaves artificiais tiveram de ser utilizadas.

7

Fase 1 - Dificuldades Encontradas
As principais dificuldades apareceram durante as consultas realizadas para populao do
modelo relacional da tarefa 4, devido principalmente a qualidade ruim dos dados dos arquivos
CSV.
Abaixo segue um resumo das dificuldades encontradas e suas resolues:
Modelo relacional Case Sensitive: Os dados da fonte de dados CSV no segue um
padro nos diversos arquivos.
o Resoluo: Padronizar os dados.
Caracteres especiais: Alguns nomes de alunos contm caracteres especiais.
o Resoluo: Remoo dos caracteres especiais.
Consistncia dos dados de cancelamento: Matrculas canceladas de alunos com
matrculas no deferidas.
o Resoluo: Remoo dos dados inconsistentes.
Disciplinas com nome diferente e mesmo cdigo: Algumas disciplinas com diferentes
descries possuem o mesmo cdigo.
o Resoluo: Foi utilizada a tcnica de chave primria artificial.
Disciplinas com inconsistncias nos dados de aula e nenhum aluno matriculado
o Resoluo: Remoo dos dados inconsistentes.
Dados duplicados: Foram encontrados alguns dados duplicados com cases diferentes.
o Resoluo: Remoo dos dados duplicados.


8

FASE 2

A fase 2 do projeto consiste nas seguintes atividades:
Construo do modelo fato dimensional;
Construo do modelo lgico, a partir do modelo fato dimensional;
Construo do modelo fsico no PostgreSQL.

Fase 2 - Descrio do cenrio (problema a ser resolvido)
necessria a construo de um Data Warehouse para o sistema de matrculas da
UFABC com o intuito de suportar a tomada de deciso dos responsveis pela gesto das
disciplinas ofertadas aos alunos da Universidade.
O sistema deve ser apto a responder a um conjunto de questes fundamentais para uma
correta alocao dos recursos (estruturais e humanos) que a Universidade dispe sendo as
mesmas parcialmente dispostas abaixo.

Fase 2 - Perguntas respondidas pelo Data Warehouse
Os seguintes questionamentos so respondidos pelo Data Warehouse:
1. Quais dias e horrios da semana possuem mais aulas em Santo Andr e So
Bernardo do Campo?
2. Quais disciplinas esto sendo ofertadas somente em um dos turnos (matutino ou
noturno)?
3. Para os alunos que cancelaram alguma disciplina, qual o percentual de crditos so
cancelados (em relao aos crditos inicialmente deferidos na matrcula)?
4. Para os alunos que cancelaram alguma disciplina, quantas disciplinas so
canceladas?
5. Quais salas so mais usadas em Santo Andr e So Bernardo do Campo?
H dias e horrios em que as aulas so mais concentradas?
6. Quantas disciplinas tem aulas tericas em salas diferentes?
9

7. Quantos alunos tm aulas em Santo Andr e So Bernardo do Campo no mesmo
dia? E na mesma semana?
8. Quantos professores tm aulas em Santo Andr e So Bernardo do Campo no
mesmo dia? E na mesma semana?
9. Quantos professores esto dando aulas de diferentes turmas, mas da mesma
disciplina?
10. Quais professores esto ministrando mais crditos no quadrimestre?

Fase 2 - Modelo fato dimensional
O modelo dimensional escolhido para a elaborao do Data Warehouse foi o modelo Floco
de Neve (Snow Flake), o qual reduz o espao de armazenamento dos dados.
Esse modelo apresenta dimenses que se relacionam entre si, de modo que o nmero de
tabelas torna-se superior, entretanto, o espao consumido em disco apresenta reduo.

Figura 2: Modelo Fato Dimensional



10

Fase 2 - Modelo lgico

Figura 3: Modelo Lgico






11

Fase 2 - Dificuldades encontradas
As principais dificuldades encontradas abordavam os questionamentos propostos para o
Data Warehouse, j que o que o modelo relacional, elaborado na fase anterior do projeto (fase 1),
se mostrava ineficaz para apresentar solues aos mesmos.
Devido essa adversidade encontrada, foi necessria a construo de um modelo
dimensional, o qual apresenta caractersticas mais propcias para as aplicaes de Data
Warehouse, de modo a orientar o seu desenvolvimento de forma mais estruturada.

12

FASE 3
A fase 3 do projeto consiste nas seguintes atividades:
Popular os fatos e dimenses do modelo;
Implementao e Realizao de consultas utilizando ferramenta OLAP.

Fase 3 Popular banco de dados
As consultas realizadas nas tabelas do modelo relacional para populao dos fatos so
mostradas abaixo:
--fato matricula
insert into
fato_matricula(id_turno,id_disciplina,id_campus,ra_aluno,id_cancelamento
)
select
case when B.turno = 'N' then 1 else 2 end
,(select id_disciplina from dim_disciplina A1 where A1.codigo =
C.codigo)
,B.idcampus,A.ra,case when A.cancelado = true then 2 else 1 end
from matricula A
inner join turma B on (A.turma = B.id)
inner join disciplina C on (B.iddisciplina = c.id)


--fato aula
insert into fato_aula
(id_tipoaula,id_professor,id_campus,id_sala,id_dia,credito)
select
case when A.tipoaula = 'T' then 1 else 2 end,
(select A1.id from dim_professor A1 where A1.nome = B.nome),
A.idcampus,
(select A2.id from dim_sala A2 where A2.sala = A.salaaula),
(select A3.id from dim_dia A3 where A3.dia = A.diaaula and A3.inicio =
A.inicioaula and A3.fim = A.fimaula),
coalesce(case when A.tipoaula ='T' then
case when A.frequencia like 'semanal%' then D.t else D.t/2.0 end
else
case when A.frequencia like 'semanal%' then D.p else D.p/2.0 end
end,0)
from aula A inner join professor B on (A.idprofessor = B.id)
inner join turma C on (A.idturma = C.id)
inner join disciplina D on (D.id = C.iddisciplina)

13

Fase 3 Consultas
Abaixo segue alguns exemplos de perguntas respondidas utilizando a ferramenta
SpagoBI.
1. Quais dias e horrios da semana possuem mais aulas em Santo Andr e So
Bernardo do Campo?

Figura 4: Resposta a pergunta 1



14

2. Quais disciplinas esto sendo ofertadas somente em um dos turnos (matutino ou
noturno)?

Figura 5: Resposta a pergunta 2

3. Para os alunos que cancelaram alguma disciplina, qual o percentual de crditos so
cancelados (em relao aos crditos inicialmente deferidos na matrcula)?

Figura 6: Resposta a pergunta 3

15
4. Quais salas so mais usadas em Santo Andr e So Bernardo do Campo?
H dias e horrios em que as aulas so mais concentradas?


Figura 7: Resposta a pergunta 4


16

BIBLIOGRAFIA

INMON, W. H. Como construir o Data Warehouse. Rio de Janeiro, 1997. Editora Campus.