4 PROJETO DE SOLUÇÃO PARA O EXTRATOR DE DADOS
4.2 MODELAGEM DA SOLUÇÃO DE COLETA PROPOSTA
5.4.3 Modelo Dimensional
Após os tweets serem armazenados no banco de dados, modelo relacional, estes dados são tratados, transformados e carregados em um novo modelo de banco de dados, mo- delo dimensional, necessário para facilitar e agilizar as pesquisas dos dados. Esta sessão abor- da o modelo dimensional da proposta de solução.
Para melhor explicar este modelo, segue figura 42.
Figura 42 - Modelo Dimensional
Fonte: Autor
O modelo dimensional da proposta de solução é composto por dez tabelas, dentre as quais oito são tabelas de dimensão, uma é tabela fato e outra é uma tabela de estagiamento, sendo elas: dim_pessoa, dim_evento, dim_partido, dim_tempo, dim_termo, dim_assunto, dim_cargo, dim_semente, est_fato e fato_tcc. Segue abaixo, o detalhamento de cada tabela.
Tabela dim_pessoa
Esta tabela é responsável por conter informações da dimensão pessoa. Contempla o nome das pessoas (candidatos eleições 2014) da proposta de solução. A tabela possui dois campos: id e nome_pessoa.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo nome_pessoa armazena os nomes das pessoas da proposta de solução. Este cam- po é do tipo varchar(255).
Tabela dim_evento
Esta tabela é responsável por conter informações da dimensão evento. Contempla o nome dos eventos da proposta de solução. A tabela possui dois campos: id e evento.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo evento armazena os eventos da proposta de solução. Este campo é do tipo var- char(45).
Tabela dim_partido
Esta tabela é responsável por conter informações da dimensão partido. Contempla a sigla dos partidos da proposta de solução. A tabela possui dois campos: id e partido.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo partido armazena a sigla dos partidos da proposta de solução. Este campo é do tipo varchar(45).
Tabela dim_tempo
Esta tabela é responsável por conter informações da dimensão tempo. Contempla o dia, mês e ano do tweets capturados. A tabela possui quatro campos: id, dia, mes e ano.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental automático.
b) O campo dia armazena o dia da captura do tweet. Este campo é do tipo int(11). c) O campo mes armazena o mês da captura do tweet. Este campo é do tipo int(11). d) O campo ano armazena o ano da captura do tweet. Este campo é do tipo int(11).
Tabela dim_termo
Esta tabela é responsável por conter informações da dimensão termo. Contempla os termos mais frequentes existentes nos tweets capturados pelo coletor. A tabela possui dois campos, sendo eles: id e termo.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo termo armazena os termos mais frequentes existentes nos tweets capturados pelo coletor. Este campo é do tipo varchar(255).
Tabela dim_assunto
Esta tabela é responsável por conter informações da dimensão assunto. Contempla os assuntos mais frequentes existentes nos tweets capturados pelo coletor. A tabela possui dois campos, sendo eles: id e assunto.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo assunto armazena os assuntos mais frequentes existentes nos tweets capturados pelo coletor. Este campo é do tipo varchar(255).
Tabela dim_cargo
Esta tabela é responsável por conter informações da dimensão cargo. Contempla os cargos dos candidatos da proposta de solução. A tabela possui dois campos, sendo eles: id e cargo.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo cargo armazena os cargos dos candidatos da proposta de solução. Este campo é do tipo varchar(255).
Tabela dim_semente
Esta tabela é responsável por conter informações da dimensão semente. Contem- pla as sementes da proposta de solução. A tabela possui dois campos, sendo eles: id e semen- te.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo semente armazena as sementes da proposta de solução. Este campo é do tipo varchar(255).
Tabela est_fato
Esta tabela é responsável por realizar o estagiamento dos dados para a tabela fa- to_tcc. Esta tabela possui nove campos, sendo eles: id, id_cargo, id_evento, id_partido, id_pessoa, id_tempo, id_assunto, id_termo e id_semente.
a) O campo id é a chave primária da tabela. Este campo é do tipo int(11) e incremental au- tomático.
b) O campo id_cargo contempla o id dos cargos dos candidatos. Este campo é foreign key e referencia o campo id da tabela dim_cargo. Este campo é do tipo int(11).
c) O campo id_evento contempla o id dos eventos. Este campo é foreign key e referencia o campo id da tabela dim_evento. Este campo é do tipo int(11).
d) O campo id_partido contempla o id dos partidos. Este campo é foreign key e referencia o campo id da tabela dim_partido. Este campo é do tipo int(11).
e) O campo id_pessoa contempla o id das pessoas. Este campo é foreign key e referencia o campo id da tabela dim_pessoa. Este campo é do tipo int(11).
f) O campo id_tempo contempla o id do tempo em que os tweets foram capturados. Este campo é foreign key e referencia o campo id da tabela dim_tempo. Este campo é do tipo int(11).
g) O campo id_assunto contempla o id dos assuntos. Este campo é foreign key e referencia o campo id da tabela dim_assunto. Este campo é do tipo int(11).
h) O campo id_termo contempla o id dos termos. Este campo é foreign key e referencia o campo id da tabela dim_termo. Este campo é do tipo int(11).
i) O campo id_semente contempla o id das sementes. Este campo é foreign key e referencia o campo id da tabela dim_semente.
Tabela fato_tcc
Esta tabela é a tabela fato do modelo dimensional. Esta tabela possui também no- ve campos, sendo eles: seq_cargo, seq_evento, seq_partido, seq_pessoa, seq_tempo, seq_assunto, seq_termo, seq_semente, quantidade.
a) O campo seq_cargo contempla o id dos cargos dos candidatos. Este campo é foreign key e referencia o campo id da tabela dim_cargo. Este campo é do tipo int(11).
b) O campo seq_evento contempla o id dos eventos. Este campo é foreign key e referen- cia o campo id da tabela dim_evento. Este campo é do tipo int(11).
c) O campo seq_partido contempla o id dos partidos. Este campo é foreign key e referen- cia o campo id da tabela dim_partido. Este campo é do tipo int(11).
d) O campo seq_pessoa contempla o id das pessoas. Este campo é foreign key e referen- cia o campo id da tabela dim_pessoa. Este campo é do tipo int(11).
e) O campo seq_tempo contempla o id do tempo em que os tweets foram capturados. Es- te campo é foreign key e referencia o campo id da tabela dim_tempo. Este campo é do tipo int(11).
f) O campo seq_assunto contempla o id dos assuntos. Este campo é foreign key e refe- rencia o campo id da tabela dim_assunto. Este campo é do tipo int(11).
g) O campo seq_termo contempla o id dos termos. Este campo é foreign key e referencia o campo id da tabela dim_termo. Este campo é do tipo int(11).
h) O campo seq_semente contempla o id das sementes. Este campo é foreign key e refe- rencia o campo id da tabela dim_semente.
i) O campo quantidade armazena a quantidade total de cada conjunto de dimensões. Este campo é do tipo int(11).