FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY
PROTÓTIPO DE SISTEMA DE BANCO DE DADOS
INTELIGENTE PARA ANÁLISE DE DADOS DE UM...
FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY
PROTÓTIPO DE SISTEMA DE BANCO DE DADOS
INTELIGENTE PARA ANÁLISE DE DADOS DE UM...
FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY
FATEC CRUZEIRO – SP
DELGADO, Dênis Souza; ALBERTINO, Douglas Vasconcellos.
Pro...
DÊNIS DELGADO DE SOUZA
DOUGLAS ALBERTINO VASCONCELLOS
PROTÓTIPO DE SISTEMA DE BANCO DE DADOS INTELIGENTE PARA
ANÁLISE DE D...
AGRADECIMENTOS
Agradecemos primeiramente ao nosso Orientador Walmir, por nos oferecer a
oportunidade de realizar este gran...
“Ser o homem mais rico do cemitério não me interessa. Ir para a cama à noite dizendo que
fizemos algo maravilhoso, isso im...
DELGADO, Dênis Souza, ALBERTINO, Douglas Vasconcellos. Protótipo de Sistema
de Banco de Dados Inteligente para Análise de ...
DELGADO, Dênis Souza, ALBERTINO, Douglas Vasconcellos. Protótipo de Sistema
de Banco de Dados Inteligente para Análise de ...
LISTA DE FIGURAS
Figura 1: Representação da Utilização do Banco de Dados...........................................18
Figu...
LISTA DE TABELAS
Tabela 1: Capacidade do PostgreSQL..........................................................................
LISTA DE ABREVIATURAS E SIGLAS
ANSI – American National Standarts Institute - Instituto Nacional Americano de Padronização...
Prepocessor – Processador de Hyper Texto
SGBD – Sistema Gerenciador de Banco de Dados
SQL - Structured Query Language – Li...
SUMÁRIO
1. BANCO DE DADOS E INTELIGÊNCIA DE NEGÓCIOS.............................................17
1.1. Banco de dados......
1.16. Base de Dados Histórica................................................................................................
INTRODUÇÃO
O Vale do Paraíba teve uma importância histórica para o país, em especial no ciclo do
café (séculos XVIII e XIX...
Mineração.
As ferramentas de Mineração de Dados são comumente utilizadas em particular em
grandes empresas que fazem uso d...
17
1. BANCO DE DADOS E INTELIGÊNCIA DE NEGÓCIOS
1.1.Banco de dados
Banco de dados é qualquer sistema que seja capaz de reu...
18
Figura 1: Representação da Utilização do Banco de Dados1
.
1.2.Sistema Gerenciador de Banco de Dados
Sistema Gerenciado...
19
um banco de dados, para poderem realizar as consultas e cálculos. Esse padrão de linguagem
é chamado de DDL (Data Defin...
20
1.2.2. Linguagem de Manipulação de Dados
A Linguagem de Manipulação de Dados faz:
• A busca da informação armazenada no...
21
Modelagem Física considera os limites que os SGDBs impõem e os requisitos não
funcionais dos programas que acessam os d...
22
• MER – Modelo de Entidade Relacionamento
Figura 3: Exemplo Modelo Entidade Relacionamento.
Fonte: Os autores.
• Modelo...
23
1.4.Linguagem SQL
SQL é uma linguagem originalmente desenvolvida para ser um padrão em termos de
desenvolvimento de ban...
24
Por ter uma natureza declarativa foi tratada como uma novidade para a época. Os
sistemas gerenciadores de banco de dado...
25
Comandos como ‘SELECT * FROM Cidade’ retornaria todos os valores contidos na
tabela.
Por meio destes códigos é possível...
26
Retira o privilégio de inserção de dados do usuário João, na tabela
ADM_Departamento.
• DDL (Data Definition Language –...
27
1.5.SGBDs Livres e Proprietários
Quando se trata de Sistemas Gerenciadores de Banco de Dados, deve-se abordar
também o ...
28
1.5.1. PostgreSQL
O SGBD, objeto-relacional hoje conhecido por PostgreSQL, é derivado do
pacote Postgres escrito na Uni...
29
Figura 6: Interface do PostgreSQL.
Fonte: Os autores.
1.5.2. MySQL
O MySQL é um SGBD relacional que teve a origem na dé...
30
esta ferramenta não era rápida para atender as suas rotinas de baixo de nível por serem mais
rápidas que as normais.
Po...
31
1.5.3. SQL Server 2008 R2
O SQL Server é o SGBD desenvolvido pela Microsoft e é uma ferramenta paga. Tem
um amplo conju...
32
• Views do dicionário de dados
São views estáticas que, em sua maioria, referem-se a objetos do banco de dados e
podem ...
33
1.6.1. PHP
PHP é uma linguagem programação web que tem como seu nome Hypertext
Preprocessor. Voltado para o lado do ser...
34
1.6.2. PHP 3
Primeira versão que se assemelha mais com o que se vê no PHP da atualidade, criada
por Andi Gutmans e Zeev...
35
Figura 7: PHP Editor, exemplo de aplicativo para desenvolvimento de páginas em
PHP.
Fonte: Os autores.
1.7.Data Warehou...
36
“Data warehousing and business intelligence are techniques to provide business
people with the information and tools th...
37
campo sexo, ao invés de indicado por “M” ou “F”, muda-se para “1” para indicar o sexo
masculino e “2” para o sexo femin...
38
Então, por possuir atributos de valores numéricos, eles estão relacionados diretamente com as
dimensões de um determina...
39
Figura 8: Exemplo de Modelo Estrela.
Fonte: Os autores.
Ao efetuar todas estas etapas, utilizam-se as ferramentas OLAP ...
40
1.9.Inteligência Artificial
Inteligência Artificial é uma área da Ciência da Computação que pretende auxiliar na
tomada...
41
tomada de alguma decisão estratégica de maneira gerencial em uma empresa.
Para isso existem algumas etapas a serem segu...
42
desses modelos, de modo a verificar se há necessidade de se voltar a algum processo anterior.
• Execução (Deployment)
É...
43
1.9.4. Regra de Classificação
Classificação consiste em descobrir padrões e/ou modelos comportamentais, escrevê-
los e ...
44
1.10. Linguagem de Programação Java
Esta linguagem foi desenvolvida inicialmente para ser usada como precursora de
nova...
45
Uma das principais vantagens do Java é o seu código aberto que pode ser
alterado, de acordo com as suas necessidades, e...
46
1.11. Fato Histórico
A importância histórica do Vale do Paraíba se inicia no ciclo do ouro (século XVIII), com
o Caminh...
47
produziu o também chamado de “ouro verde” para o país, o que era de agrado da Coroa
Portuguesa, visto como um modo simp...
48
FERRAMENTAS PARA A IMPLEMENTAÇÃO DA INTELIGÊNCIA DE NEGÓCIOS
1.12. DBDesigner 4
A ferramenta de Modelagem de Dados DBDe...
49
Tabela
Tamanho Máximo de uma Linha 1.6 TB
Tamanho Máximo de um
Campo
1 GB
Máximo de Linhas por Tabela Ilimitado
Máximo ...
50
Os módulos mais importantes do Pentaho são:
• Pentaho BI Platform;
• Pentaho Data Integration - PDI (Kettle);
• Analysi...
51
O Pentaho BI Plataform é um framework que contém elementos para Análise e
Relatórios de fácil utilização, esta ferramen...
52
License). Com esta plataforma é possível fazer uma coleta de dados com a possibilidade de
realizar uma transformação co...
53
1.14.4. Weka
Weka é um software que contém vários algoritmos de aprendizado de máquina para
tarefas de mineração de dad...
54
Figura 12: Interface utilizando o Classificador de Redes Bayes
Fonte: Os autores.
1.15. Linguagem de Programação Web PH...
55
segura e necessita de menos capacidade de processamento por parte do usuário para
visualização da página, possui progra...
56
DESENVOLVIMENTO E IMPLEMENTAÇÃO
1.16. Base de Dados Histórica
Considerado o fato de que naquela época não havia um méto...
57
Figura 13: Planilha com os dados obtidos pelo historiador.
Fonte: Os autores.
1.17. Modelagem de Dados
Quanto ao desenv...
58
que descreve o nome da propriedade possui cerca de 50 caracteres, para isso utilizou-
se o tipo de dado Integer. Nesta ...
59
Figura 14: Modelo Lógico Relacional do Banco de Dados Histórico.
Fonte: Os autores.
60
1.18. Desenvolvimento do Banco de Dados no PostgreSQL
O desenvolvimento do Banco de Dados no PostgreSQL foi baseado na ...
61
1.18.1. Questões Respondidas via Comandos SQL
• Quanto aos Inventários
1. Nº total de inventários
select count(n_ivtr) ...
62
)as conta_nao_cafeicultor_escravista;
• Quanto aos cafeicultores escravistas
1. Sexo
- Homens
select distinct escravos....
63
select distinct escravos.n_ivt from escravos, inventariado
where escravos.n_ivt = inventariado.n_ivtr and inventariado....
64
3. Tipo de proprietário e o nº de escravos possuídos pelos mesmos
- Mini (1 a 4 escravos)
- Pequeno (5 a 19 escravos)
-...
65
1. Total
select count(escravos.n_ivt) from escravos, inventariado
where escravos.n_ivt = inventariado.n_ivtr and invent...
66
3. Estado conjugal
- Casados
select count(escravos.n_ivt) from escravos, inventariado
where escravos.n_ivt = inventaria...
67
select case
when escravos.idade >=0.0000001 and escravos.idade <= 14 then 'crianças'
when escravos.idade >= 15 and escr...
68
• Cruzando Informações
1. Sexo e nacionalidade.
- Africanos
select sexo, nasc_esc, count(sexo) as total_sexo, count(nas...
69
select sexo,count(sexo) qtd_sexo, nasc_esc, count(nasc_esc) as qntd_nacionalidade,
avg(idade) from escravos where idade...
70
select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on
(b.n_proc_esc = a.n_proc_esc) ...
71
72
9. Estado conjugal, ofício e sexo.
select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b...
73
select oficio, count(oficio) from oficio_escravo as b inner join escravos as a
on (b.n_ofic_esc = a.n_ofic_esc) where n...
74
15. Oficio e Sexo
select sexo, count(n_ofic_esc) from escravos
where n_ofic_esc <> 0 and sexo = 'F' group by sexo;
sele...
75
from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA' and sexo = 'M'
and nasc_esc = 'A' group by sexo, nasc_...
76
1. Estado e quantidade.
select estd_cult, count(estd_cult) from culturas where qntd != 1 group by estd_cult order by
es...
77
2. Valor unitário, estado e quantidade.
select distinct valor_unit, estd_cult, qntd from culturas where qntd != 1;
3. V...
78
from terras,inventariado where inventariado.n_ivtr = terras.n_ivt and inventariado.profissao like
'%CAFEICULTOR%'
group...
79
1.19. Processo de ETL Manual, Base de Dados Inicial
Após feita a modelagem de dados e a definição da sua organização, f...
80
Figura 15: Exemplo de ETL Manual, trocando ponto por vírgula nos campos de valor.
Fonte: Os autores.
81
1.20. Modelagem Multidimensional
A Modelagem Multidimensional é considerada uma das etapas mais importantes do
projeto,...
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico
Próximos SlideShares
Carregando em…5
×

Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico

297 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
297
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de Uma Região do Vale Histórico

  1. 1. FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY PROTÓTIPO DE SISTEMA DE BANCO DE DADOS INTELIGENTE PARA ANÁLISE DE DADOS DE UMA REGIÃO DO VALE HISTÓRICO Dênis Delgado de Souza Douglas Albertino Vasconcellos Monografia apresentada à Faculdade de Tecnologia Prof. Waldomiro May, como requisito para a conclusão da graduação no Curso Superior de Tecnologia da Informação com ênfase em Banco de Dados. Cruzeiro – SP 2011
  2. 2. FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY PROTÓTIPO DE SISTEMA DE BANCO DE DADOS INTELIGENTE PARA ANÁLISE DE DADOS DE UMA REGIÃO DO VALE HISTÓRICO Dênis Delgado de Souza Douglas Albertino Vasconcellos Monografia apresentada à Faculdade de Tecnologia Prof. Waldomiro May, como requisito para a conclusão da graduação no Curso Superior de Tecnologia da Informação com ênfase em Banco de Dados. Orientador: Professor Mestre José Walmir Gonçalves Duque. Área de concentração: Informática Ênfase: Sistema de Informação Linha de Estudo: Business Intelligence Cruzeiro – SP 2011
  3. 3. FACULDADE DE TECNOLOGIA PROF. WALDOMIRO MAY FATEC CRUZEIRO – SP DELGADO, Dênis Souza; ALBERTINO, Douglas Vasconcellos. Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de uma Região do Vale Histórico. 92 fls Monografia (TCC) - Faculdade de Tecnologia Waldomiro May, FATEC – Cruzeiro, 2011. Orientação: Mestre José Walmir Gonçalves Duque Palavras-chave: Business Intelligence. Data Warehouse. Dados Históricos.
  4. 4. DÊNIS DELGADO DE SOUZA DOUGLAS ALBERTINO VASCONCELLOS PROTÓTIPO DE SISTEMA DE BANCO DE DADOS INTELIGENTE PARA ANÁLISE DE DADOS DE UMA REGIÃO DO VALE HISTÓRICO Monografia apresentada à Faculdade de Tecnologia Prof. Waldomiro May para conclusão da graduação no Curso Superior de Tecnologia em Informática, com ênfase em Banco de Dados. Área: Informática Ênfase: Sistema de Informação Linha de Estudo: Business Intelligence Orientador: Professor Mestre José Walmir Gonçalves Duque ______________________________________ Instituição: Faculdade de Tecnologia Prof. Waldomiro May ______________________________________ 1° Examinador: Professor Mestre Leopoldo Edgardo Messenger Parada Instituição: Faculdade de Tecnologia Prof. Waldomiro May ______________________________________ 2° Examinador: Professor Doutor Luis Fernando de Almeida Instituição: Faculdade de Tecnologia Prof. Waldomiro May ______________________________________ 3° Examinador: Mestre José Walmir Gonçalves Duque Instituição: Faculdade de Tecnologia Prof. Waldomiro May ______________________________________ Aprovado em: ___/___/2011 NOTA: ____ Cruzeiro – SP 2011
  5. 5. AGRADECIMENTOS Agradecemos primeiramente ao nosso Orientador Walmir, por nos oferecer a oportunidade de realizar este grande projeto e toda sua confiança que nos foi depositada. Ao Historiador Breno, por sua confiança, suporte e auxílio dado. Aos Professores Luis Fernando e Leopoldo, que sempre estiveram de prontidão a ajudar no que fosse necessário. A nossa família, que sempre foi e será nossa fonte de força e orgulho. E a todos os nossos amigos e outros professores, que nos ajudaram de alguma forma.
  6. 6. “Ser o homem mais rico do cemitério não me interessa. Ir para a cama à noite dizendo que fizemos algo maravilhoso, isso importa para mim.” STEVE JOBS 1955/2011
  7. 7. DELGADO, Dênis Souza, ALBERTINO, Douglas Vasconcellos. Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de uma Região do Vale Histórico. 2011. [Trabalho de Graduação de Curso]. Faculdade de Tecnologia Waldomiro May, Cruzeiro – 2011. RESUMO O presente trabalho almeja desenvolver um sistema inteligente de banco de dados que armazene informações e faça inferências em dados históricos da região do Vale do Paraíba. Estes dados são referentes a inventários de fazendeiros cafeicultores escravistas dos séculos XVIII e XIX. O projeto é desenvolvido em conjunto com historiador da universidade USP, o qual tem por objetivo descobrir as semelhanças, diferenças, entre outras informações referentes aos proprietários da época. A proposta baseia-se em armazenamento e descoberta de novas informações que visam atender as necessidades do historiador. Ao longo da pesquisa serão abordados aspectos em que a tecnologia poderá auxiliar no âmbito histórico desta região. Palavras-chave: Business Intelligence. Data Warehouse. Dados Históricos.
  8. 8. DELGADO, Dênis Souza, ALBERTINO, Douglas Vasconcellos. Protótipo de Sistema de Banco de Dados Inteligente para Análise de Dados de uma Região do Vale Histórico. 2011. [Trabalho de Graduação de Curso]. Faculdade de Tecnologia Waldomiro May, Cruzeiro – 2011. ABSTRACT The work present has the desire to develop an intelligent database that have all the information to make inferences on the historical Vale do Paraiba Region. These historical statistics associated to inventories of the farmers (coffee growers) in addition to the slavery of XVIII and XIX centuries in Bananal City. The project is jointly by the historian of University USP, which requirements to discover existing similarities and differences between the farmers of that epoch. This project is based on discover and keeping new information, which aim to resolve needs of the historian. The Data Warehouse technology have the purpose of assisting and give more possibilities to make all this information useful to work on it. . Palavras-chave: Business Intelligence. Data Warehouse. Dados Históricos.
  9. 9. LISTA DE FIGURAS Figura 1: Representação da Utilização do Banco de Dados...........................................18 Figura 2: Exemplo Modelo Lógico Relacional..................................................................21 Figura 3: Exemplo Modelo Entidade Relacionamento.....................................................22 Figura 4: Exemplo Modelo Físico.....................................................................................22 Figura 5: Quadro comparativo entre SGBDs...................................................................27 Figura 6: Interface do PostgreSQL...................................................................................29 Figura 7: PHP Editor, exemplo de aplicativo para desenvolvimento de páginas em PHP. ..........................................................................................................................................35 Figura 8: Exemplo de Modelo Estrela..............................................................................39 Figura 9: Ferramentas que compõe o Pentaho Mondrian...............................................50 Figura 10: Quadro explicativo entre a utilização de Análise ou Relatório no BI suíte.....51 Figura 11: Interface de entrada do Weka.........................................................................53 Figura 12: Interface utilizando o Classificador de Redes Bayes.....................................54 Figura 13: Planilha com os dados obtidos pelo historiador.............................................57 Figura 14: Modelo Lógico Relacional do Banco de Dados Histórico...............................59 Figura 15: Exemplo de ETL Manual, trocando ponto por vírgula nos campos de valor..80 Figura 16: Modelagem Multidimensional do Banco de Dados Histórico.........................82 Figura 17: Utilização da Ferramenta Kettle para classificação dos dados......................83 Figura 18: Classificação seguindo as especificações do utilizador.................................85 Figura 19: Utilização do Value Mapper para distinguir o número de propriedades.........86 Figura 20: Exportação dos dados transformados para o BD no PostreSQL...................87 Figura 21: Importação dos Dados na planilha Excel para o PDI.....................................88 Figura 22: Modelagem Multidimensional aplicada no Workbench..................................90 Figura 23: Utilização do Pentaho BI Plataform com análise da ferramenta Saiku..........93
  10. 10. LISTA DE TABELAS Tabela 1: Capacidade do PostgreSQL.............................................................................48
  11. 11. LISTA DE ABREVIATURAS E SIGLAS ANSI – American National Standarts Institute - Instituto Nacional Americano de Padronização API - Application Programming Interface, em português, Interface de Programação de Aplicativos. DCL – Data Control Language – Linguagem de controle de Dados DDL - Data Definition Language – Linguagem de Definição de Dados DER – Diagrama de Entidade e Relacionamento DM – Data Marts DM – Data Mining – Mineração de Dados DML - Data Manipulation Language – Linguagem de Manipulação de dados DW – Data Warehouse EER - Enhanced Entity Relationship, em português, Entidade e Relacionamento Aprimorado GNU-GPL - General Public License, em português, Licença Publica Geral ISAM - Indexed Sequential Access Method, em português, Método de Acesso Indexado Seqüencial JVM - Java Virtual Machine – Máquina Virtual Java KDD – Knowledge Discovery in Databases - Descoberta de Conhecimento em Bases de Dados OLAP – On Line Analytical Processing – Processo Analitico On-Line PAT – Pentaho Analysis Tool PDI – Pentaho Data Integration PHP – Hypertext Preprocessor - Personal Home Page Tools que mudou para Hypertext
  12. 12. Prepocessor – Processador de Hyper Texto SGBD – Sistema Gerenciador de Banco de Dados SQL - Structured Query Language – Linguagem Estruturada de Pesquisa SW – Schema Workbench TI – Tecnologia da Informação
  13. 13. SUMÁRIO 1. BANCO DE DADOS E INTELIGÊNCIA DE NEGÓCIOS.............................................17 1.1. Banco de dados....................................................................................................................17 1.2. Sistema Gerenciador de Banco de Dados............................................................................18 1.2.1. Linguagem de Definição de Dados...............................................................................19 1.2.2. Linguagem de Manipulação de Dados.........................................................................20 1.3. Modelo de Dados.................................................................................................................20 1.4. Linguagem SQL..................................................................................................................23 1.4.1. Características da Linguagem SQL..............................................................................24 1.4.2. Subdivisões da Linguagem SQL..................................................................................25 1.5. SGBDs Livres e Proprietários.............................................................................................27 1.5.1. PostgreSQL...................................................................................................................28 1.5.2. MySQL.........................................................................................................................29 1.5.3. SQL Server 2008 R2 ....................................................................................................31 1.5.4. Oracle 10g ....................................................................................................................31 1.6. Ferramentas de Desenvolvimento Web...............................................................................32 1.6.1. PHP...............................................................................................................................33 1.6.2. PHP 3............................................................................................................................34 1.6.3. PHP 4 ...........................................................................................................................34 1.6.4. PHP 5............................................................................................................................34 1.7. Data Warehouse...................................................................................................................35 1.7.1. Introdução.....................................................................................................................35 1.7.2. Construção de um Data Warehouse..............................................................................36 1.7.3. Modelagem Multidimensional......................................................................................37 1.8. OLAP – On-line Analytical Processing...............................................................................39 1.9. Inteligência Artificial...........................................................................................................40 1.9.1. Data Mining..................................................................................................................40 1.9.2. Regra de Associação.....................................................................................................42 1.9.3. Regra de Clusterização.................................................................................................42 1.9.4. Regra de Classificação..................................................................................................43 1.9.4.1. Árvore de Decisão J48...........................................................................................43 1.10. Linguagem de Programação Java......................................................................................44 1.11. Fato Histórico....................................................................................................................46 FERRAMENTAS PARA A IMPLEMENTAÇÃO DA INTELIGÊNCIA DE NEGÓCIOS....48 1.12. DBDesigner 4....................................................................................................................48 1.13. Utilização do SGBD PostgreSQL......................................................................................48 1.14. Pentaho Business Intelligence...........................................................................................49 1.14.1. Pentaho BI Plataform..................................................................................................50 1.14.2. Pentaho Data Integration (Kettle)...............................................................................51 1.14.3. Analysis View – Mondrian Workbench.....................................................................52 1.14.4. Weka...........................................................................................................................53 1.15. Linguagem de Programação Web PHP.............................................................................54 DESENVOLVIMENTO E IMPLEMENTAÇÃO.................................................................56
  14. 14. 1.16. Base de Dados Histórica....................................................................................................56 1.17. Modelagem de Dados........................................................................................................57 1.18. Desenvolvimento do Banco de Dados no PostgreSQL.....................................................60 1.18.1. Questões Respondidas via Comandos SQL................................................................61 1.19. Processo de ETL Manual, Base de Dados Inicial..............................................................79 1.20. Modelagem Multidimensional...........................................................................................81 1.21. Processo de ETL Automatizado, Base de Dados Final.....................................................83 1.22. Aplicação da Modelagem Multidimensional com o Schema Workbench.........................89 1.23. Pentaho BI Server..............................................................................................................92 CONSIDERAÇÕES FINAIS............................................................................................94 REFERÊNCIAS BIBLIOGRÁFICAS................................................................................96
  15. 15. INTRODUÇÃO O Vale do Paraíba teve uma importância histórica para o país, em especial no ciclo do café (séculos XVIII e XIX), quando grandes fazendas foram construídas na região, o que, consequentemente, aumentou a atividade produtiva que era fortemente alicerçada na mão-de- obra escrava nas fazendas cafeeiras de Bananal, entre 1830 e 1888. O corte cronológico inicial se justifica pelo fato de ter sido nesta década que a produção de café se acelerou na região, transformando o município em uma típica zona de plantação e, o final, em razão do término do sistema escravista. A Universidade de São Paulo (USP) tem realizado uma pesquisa por meio de um historiador/pesquisador no museu Major Novaes, Cruzeiro/SP, que consiste na digitalização de documentos históricos, os quais são inventariados das pessoas da época de 1830-1880 que morreram e deixaram bens, como escravos, fazendas e até mesmo dívidas. O objetivo central desta pesquisa é examinar a exploração do trabalho escravo nas propriedades rurais cafeeiras, no período 1830-1888. Atualmente, a Tecnologia da Informação (TI) oferece inúmeros recursos que favorecem análises de grandes bases de dados. Em especial, a área de Bancos de Dados Multidimensionais ou Data Warehouses permite a realização de análises de dados por meio de técnicas, métodos e ferramentas, além disso, possibilita tratar os dados e extrair conhecimentos a partir deles, a princípio, invisíveis a olho nu e praticamente impossíveis de serem extraídos, senão por meios automatizados. Para a utilização em Data Warehouses, podem ser aplicadas as técnicas de OLAP e Mineração de Dados (do inglês, Data Mining). OLAP é uma ferramenta de apoio à decisão que auxilia grandes empresas a identificar qual informação melhor se assemelha com a desejada. DM, do inglês Data Mining, é responsável pela mineração dos dados. As áreas conhecidas como KDD – Knowledge Discovery in Databases (KDD), em português, Descoberta de Conhecimento em Bases de Dados. A área de KDD, apesar de mais ampla, é comumente mencionada como Mineração de Dados. No entanto, no final, o usuário do sistema é quem ajuda a interpretar as informações oriundas de inferências realizadas pela
  16. 16. Mineração. As ferramentas de Mineração de Dados são comumente utilizadas em particular em grandes empresas que fazem uso de aplicações de Business Intelligence (BI), em português, Inteligência de Negócios. Importante ressaltar o aspecto desafiador da tarefa de Mineração de Dados, em uma base de dados histórica, na fase de preparação dos dados para a realização de inferências, pois, nem sempre esses estão presentes em situações ideais. O pesquisador/historiador, ao realizar a leitura/interpretação de documentos históricos, nem sempre os tem em boas condições físicas ou, até mesmo, encontra dificuldades para o seu entendimento devido à falta de padronização no seu preenchimento naqueles períodos históricos. Pretende-se com este trabalho, sob o ponto de vista histórico, contribuir para o resgate da memória da história da região do Vale Histórico, em específico, naquilo que não é possível ser percebido a partir de uma simples análise manual.
  17. 17. 17 1. BANCO DE DADOS E INTELIGÊNCIA DE NEGÓCIOS 1.1.Banco de dados Banco de dados é qualquer sistema que seja capaz de reunir e armazenar informações relacionadas a um assunto qualquer, com uma ordenação e classificação. O agrupamento e classificação podem ser feitos de diversas formas, variam desde listas telefônicas até agendas e sistemas inteligentes de banco de dados, assuntos estes que serão abordados durante este trabalho nos próximos capítulos. Uma coleção de dados armazenada de forma organizada e sistemática pode ser considerada um banco de dados, pois estão agrupadas, de forma que se possa entender os seus relacionamentos e o seu significado no mundo real. Pode-se tomar como exemplo de banco de dados uma lista telefônica, com nomes e telefones de assinantes. “Um banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem ser gravados e possuem um significado implícito” (Elmasri, Navathe p. 4, 2004). “Um banco de dados relacional é uma representação lógica de dados que permite acesso aos dados sem considerar sua estrutura física. Um banco de dados relacional armazena dados em tabelas.” (Deitel p. 896, 2006). Um dos objetivos de um sistema de banco de dados é de criar um ambiente onde as informações fiquem seguras e fáceis de recuperar, caso haja algum tipo de falha no sistema de segurança. Contudo, um sistema de Banco de dados é muito importante não só na área de computação, mas também voltado para áreas como a saúde e ciências humanas, facilitando, por muitas vezes, o acesso e cadastro de pessoas e/ou produtos e para obter conhecimento de padrões e perfis que antes não eram perceptíveis.
  18. 18. 18 Figura 1: Representação da Utilização do Banco de Dados1 . 1.2.Sistema Gerenciador de Banco de Dados Sistema Gerenciador de Banco de Dados é um programa que tem como objetivo principal armazenar e gerenciar banco de dados, com melhoria de acesso e uma correta manutenção nestes. “Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que habilitam o usuário criar e manipular um banco de dados. O Sistema Gerenciador de Banco de Dados é um software de propósito geral, que facilita o processo de definição, construção e manipulação de um banco de dados”. (ELMASRI, NAVATHE p.4, 2004). De forma mais exemplificada, pode-se dizer que é um aplicativo onde ficarão armazenados os dados referentes a um banco de dados. Este aplicativo controlará as informações que estão alocadas no banco de dados e pode realizar consultas, seleções e cálculos. Os SGBDs fazem uso de linguagem SQL, uma linguagem padrão de manipulação de 1 O.K. Takai; I.C.Italiano; J.E. Ferreira. Introdução a Banco de Dados 2005. Disponível em http://www.ime.usp.br/~jef/apostila.pdf. Acessado em Novembro de 2011
  19. 19. 19 um banco de dados, para poderem realizar as consultas e cálculos. Esse padrão de linguagem é chamado de DDL (Data Definition Language) e DML (Data Manipulation Language). A DDL define os tipos de dados e qual a sua representatividade dentro do banco de dados e a DML é responsável pela manipulação dos dados em si. É função do SGBD garantir os métodos corretos de acesso a base dados, levando em conta fatores como a segurança de se permitir tal acesso. Integridade semântica, que é a garantia de que os dados estão sempre corretos, ou seja, cada campo dentro da base de dados estar com a informação que melhor lhe é respeitada. Segurança, não permitir violação de nenhuma forma na base de dados, seja ela de consistência ou até mesmo de alterações. Concorrência, evitar o conflito em acesso simultâneo a dados por transações e independência, ou a transparência nas informações, seja ela lógica ou física. 1.2.1. Linguagem de Definição de Dados A Linguagem de Definição de Dados (Data Definition Language, DDL) é responsável por resultar tabelas que são armazenadas em um arquivo especial chamado dicionário de dados. Um dicionário de dados é um arquivo que contém metadados, ou seja, dados sobre dados. Este arquivo é consultado antes que os dados sejam lidos ou modificados no BD. A estrutura de armazenamento e os métodos de acesso usados em um SGDB são especificados por um conjunto de definições em um tipo especial de DDL chamado linguagem de armazenamento e definição de dados. O resultado da compilação destas definições é um conjunto de instruções para especificar a implementação de detalhes do esquema do Banco de Dados, os quais estão normalmente ocultos à visão dos usuários.
  20. 20. 20 1.2.2. Linguagem de Manipulação de Dados A Linguagem de Manipulação de Dados faz: • A busca da informação armazenada no BD; • A inserção de novas informações nos BD; • A eliminação de informações no BD; • A modificação de dados armazenados no BD. No nível físico é preciso definir algoritmos que permitam um acesso eficiente aos dados. Nos níveis mais altos de abstração é dada ênfase à facilidade de uso. O objetivo é fornecer uma interação humana eficiente com o sistema. 1.3.Modelo de Dados A modelagem de dados é fundamental no desenvolvimento do Banco de Dados, é ela quem se torna responsável por identificar as tabelas, os atributos, as chaves e as relações entre estas tabelas. Tem objetivo de representar o ambiente observado, documentar e normalizar os dados, fornecer processos de validação e observar processos de relacionamentos entre objetos, que são as tabelas presentes na base de dados. Modelar é construir modelos, ou seja, definir como será construído um banco de dados, identificar todos os objetos possíveis e os ligar. Existem três tipos de modelagem: A Modelagem Conceitual determina e representa as regras de negócio sem limitações, esta é a etapa em que o usuário não precisa ter conhecimento técnico, pois o entendimento fica por análise de imagens que representam os relacionamentos de forma clara e objetiva. A Modelagem Lógica leva em conta limitações impostas por alguns sistemas de Banco de Dados; É a Modelagem Lógica que vai indicar os Objetos e os Atributos que estes possuem. Definem-se as chaves que representarão cada Objeto.
  21. 21. 21 Modelagem Física considera os limites que os SGDBs impõem e os requisitos não funcionais dos programas que acessam os dados. O modelo físico é derivado do modelo lógico, que é quem vai determinar os Scripts SQL. Na Modelagem de Dados existem os conceitos de Entidade e Atributo. Uma Entidade é definida como qualquer coisa no mundo real, aquilo que tem algum valor abstrato ou concreto, servindo para guardar informações. Exemplo: Pessoa, considerada uma entidade por guardar informações como nome, telefone, endereço e etc. Atributo é o que se pode relacionar como uma propriedade de uma entidade, levando em conta o exemplo citado se pode dizer que telefone, endereço e nome não atributos da entidade pessoa. Exemplos: • MLR – Modelo Lógico Relacional Figura 2: Exemplo Modelo Lógico Relacional. Fonte: Os autores.
  22. 22. 22 • MER – Modelo de Entidade Relacionamento Figura 3: Exemplo Modelo Entidade Relacionamento. Fonte: Os autores. • Modelo Físico Figura 4: Exemplo Modelo Físico. Fonte: Os autores.
  23. 23. 23 1.4.Linguagem SQL SQL é uma linguagem originalmente desenvolvida para ser um padrão em termos de desenvolvimento de banco de dados, padronizada pela ANSI (American National Standard Institute). Com o conhecimento dessa linguagem é possível desenvolver sistemas de bancos de dados. “SQL (Structured Query Language) é um conjunto de comandos de manipulação de banco de dados utilizado para criar e manter a estrutura desse banco de dados, além de incluir, excluir, modificar e pesquisar informações em tabelas.” (Oliveira p. 18, 2002) Ou seja, não se trata de uma linguagem autônoma de programação. A importância da linguagem SQL, hoje em dia, é indiscutível, pois todos os sistemas de banco de dados desenvolvidos são feitos com base neste padrão, mas esta linguagem não se apresenta somente em computadores de pequeno à grande porte, está presente em vários outros tipos de aplicativos e pode ser encontrada em celulares e outros sistemas de informação. SQL é facilmente integrada com linguagens de programação web como Java e PHP, com disponibilização do banco de dados de modo on–line, dessa forma, criam grandes portais com capacidade de armazenamento de dados. A história desta linguagem demonstra que não há como tratá-la sem a utilização dos modelos de relacionais, que são responsáveis por modelar as informações de forma a capacitar, por meio de códigos SQL, a manipulação dos dados. A razão do sucesso da Linguagem SQL se deve ao fato de existir um modelo matemático formal que serviu de base para seu desenvolvimento. O pai deste modelo, o matemático Edgar Frank Codd, divulgou as primeiras ideias no final da década de 60 e, em junho de 1970, publicou o artigo "A Relational Model of Data for Large Shared Data Banks", na revista "Communications of the ACM". Esse material é um marco na área de banco de dados e rendeu a Codd, em 1981, o prêmio Turing. Ao se valer de álgebra relacional para expressar as ações realizadas nas tabelas, também conhecidas como relações na terminologia da matemática, pode-se realizar opções fundamentais da teoria de conjuntos, essenciais para manipulação de dados. O surgimento da Linguagem SQL se deu em 1973 com o desenvolvimento do sistema R criado pela IBM e que se estendeu até 1979. Com o decorrer deste Sistema R, foi estipulado que uma linguagem comum com palavras simples da língua inglesa fosse desenvolvida.
  24. 24. 24 Por ter uma natureza declarativa foi tratada como uma novidade para a época. Os sistemas gerenciadores de banco de dados existentes utilizavam o modelo de dados hierárquico ou em rede. Até então, os programadores, para acessar o banco de dados, tinham que fazer procedimentos, ou seja, navegar até o local onde o banco estava para obter o dado que lhe era de interesse. Apesar de todo o trabalho de pesquisa ter sido iniciado e desenvolvido dentro da IBM, o primeiro sistema gerenciador de banco de dados relacional (SGBDR) disponível comercialmente foi o Oracle, lançado em 1979 por uma empresa chamada Relational Software (hoje, Oracle Corporation). 1.4.1. Características da Linguagem SQL Por meio da linguagem SQL é possível criar, alterar, remover informações de qualquer base dados, controlar de maneira sistemática o banco de dados, satisfazer questões e efetuar cálculos para se obter novos conhecimentos sobre os dados que já são previamente conhecidos, o que facilita a descoberta de novos conhecimentos. Exemplos de códigos: CREATE DATABASE BD_Historico; USE BD_Historico; CREATE TABLE Cidade ( cod_cid INTEGER IDENTITY (1,1), nome_cid VARCHAR(40) NULL, estado CHAR(2) NULL, PRIMARY KEY (cod_cid) ); Neste exemplo é demonstrada a criação de uma base de dados e também a criação de uma tabela simples no SGBD PostgreSQL, com base no padrão ANSI SQL.
  25. 25. 25 Comandos como ‘SELECT * FROM Cidade’ retornaria todos os valores contidos na tabela. Por meio destes códigos é possível descrever com precisão o número de inventários que existem, quantos são do sexo masculino e feminino, o seu estado conjugal e entre outras particularidades que dizem respeito somente a essa base dados, motivo de estudo deste projeto. 1.4.2. Subdivisões da Linguagem SQL • DCL (Data Control Language – Linguagem de controle de Dados) É a DCL que controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para visualizar ou até mesmo manipular as informações dentro da base de dados. É utilizada para negar ou permitir o acesso a usuários ou grupos de usuários. Contém elementos que serão úteis em um sistema multiusuário, onde a privacidade das informações é importante, a segurança das tabelas, assim como o controle dos privilégios dos usuários do BD. São comandos da DCL: GRANT – Usado para garantir recursos para usuários ou grupos de usuários dentro da base de dados. REVOKE – Nega ou retira a manipulação por um usuário ou grupo de usuário. Exemplos: GRANT SELECT, INSERT ON ADM_Departamento TO Joao; Dá os privilégios de seleção e inserção de dados para o usuário João, na tabela ADM_Departamento. REVOKE INSERT ON ADM_Departamento TO Joao;
  26. 26. 26 Retira o privilégio de inserção de dados do usuário João, na tabela ADM_Departamento. • DDL (Data Definition Language – Linguagem de Definição de Dados) DDL é a linguagem que descreve a estrutura do Banco de Dados, usada pelo administrador do banco de dados e que gera toda a estrutura física do banco de dados. Possui comandos de criação, alteração e exclusão de tabelas e visões. São comandos da DDL: CREATE TABLE – Permite ao usuário criar uma tabela. CREATE DATABASE – Realiza a criação de uma base de dados. ALTER TABLE - Altera uma definição na tabela. • DML (Data Manipulation Language – Linguagem de Manipulação de Dados) A DML é a linguagem que possibilita ao utilizador do banco de dados fazer o acesso às informações e manipulá-las conforme a modelagem dos dados. Por meio desta pode-se excluir, inserir, modificar e buscar informações dentro da base dados. Existem dois tipos básicos de DML: As DMLs procedurais requisitam ao usuário a especificação de qual dado é necessário e como este pode ser obtido. As DMLs não procedurais, por sua vez, requerem somente o dado necessário sem informar a maneira de como obtê-lo. Usualmente, de mais fácil aprendizado do que as procedurais, porém se não for especificado como obter os dados, torna-se um código ineficiente semelhante ao produzido por linguagens procedurais.
  27. 27. 27 1.5.SGBDs Livres e Proprietários Quando se trata de Sistemas Gerenciadores de Banco de Dados, deve-se abordar também o tema de software livre e proprietário, o qual vem ganhando cada vez mais força no mercado nos últimos anos. Se levado em consideração o objetivo acadêmico, softwares proprietários acabam vistos como inviáveis pelo seu custo elevado. Além disso, existe dificuldade em adquirir parcerias com grandes empresas. Isso posto, parte-se para a escolha dos sistemas livres que também atingem as necessidades acadêmicas da mesma maneira que os proprietários. Um exemplo de SGBD livre é o PostgreSQL, um sistema robusto, com grande capacidade de armazenamento de informações e uma rápida otimização nas consultas e cálculos na base dados. O PostgreSQL facilita também o aprendizado e leva em conta a parte de disponibilidade de materiais (documentação) em português. Existem vários exemplos de SGBDs pagos, como o SQL Server da Microsoft, Oracle, DB2 da IBM, dentre outros. Figura 5: Quadro comparativo entre SGBDs2 . 2 http://pt.scribd.com/doc/456573/Artigo-Comparacao-SGBDs-Geo acesso em Novembro de 2011.
  28. 28. 28 1.5.1. PostgreSQL O SGBD, objeto-relacional hoje conhecido por PostgreSQL, é derivado do pacote Postgres escrito na Universidade da Califórnia, em Berkeley. Com mais de uma década de desenvolvimento, o PostgreSQL é atualmente um dos mais difundidos bancos de dados livres. O projeto PostgreSQL foi liderado pelo Professor Michael Stonebraker e patrocinado pela Defense Advanced Research Projects Agency (DARPA), pelo Army Research Office (ARO), pela National Science Foundation (NSF) e pela ESL, Inc. A implementação do Postgres começou em 1986. Os conceitos iniciais para o sistema foram apresentados em The design of Postgres e a definição do modelo de dados inicial foi descrita em The Postgres Data Model (ambos os artigos publicados por - STONEBRAKER, Michael; ROWE, Lawrence A.). O sistema passou por diversas versões, desde então, sua primeira versão, que se tornou operacional, foi em 1987, e foi exibida em 1988 na conferência ACM-SIGMOD. Com o decorrer dos anos foram adicionadas diversas funcionalidades extras no software em si em busca de atingir novos padrões, cujo foco principal entre essas versões era a confiabilidade e a portabilidade. O PostgreSQL tem sido utilizado em muitos aplicativos diferentes, com inclusão de: sistema de análise de dados financeiros, pacote de monitoração de desempenho de motor a jato, banco de dados de acompanhamento de asteróides, banco de dados de informações médicas e vários outros tipos de sistemas de informações. A ampla utilização em instituições de ensino faz com que ele se popularize assim como a filosofia de software livre.
  29. 29. 29 Figura 6: Interface do PostgreSQL. Fonte: Os autores. 1.5.2. MySQL O MySQL é um SGBD relacional que teve a origem na década de 90 quando três desenvolvedores precisavam de uma interface SQL compatível com rotinas ISAM (Indexed Sequential Access Method, em português, Método de Acesso Indexado Sequencial) que eles utilizavam. Estes desenvolvedores eram David Axmark, Allan Larsson e Michael Widenius. A princípio tentaram utilizar a API (Application Programming Interface, em português, Interface de Programação de Aplicativos) mSQL em suas atividades e tabelas, mas logo foi observado que
  30. 30. 30 esta ferramenta não era rápida para atender as suas rotinas de baixo de nível por serem mais rápidas que as normais. Por meio desta API, escreveram em C e C++ uma nova API que deu origem ao MySQL. Haja vista o ótimo resultado que alcançaram, o MySQL começou a se popularizar e ficar cada vez mais difundido e seus criadores fundaram a MySQLAB, que é a responsável por fazer a manutenção do MySQL. Atualmente é um dos SGBDs mais utilizados juntamente com as ferramentas da Oracle e da Microsoft, pois o fato de ser uma ferramenta livre o tornou muito forte no mercado. O MySQL é distribuído com base em duas licenças que dependem do tipo de uso da ferramenta que, na maioria das vezes, é livre. A primeira licença é baseada na GNU-GPL (General Public License, em português, Licença Publica Geral) que estabelece o que se pode ou não fazer com a ferramenta e demais recursos, por seu código ser aberto é possível que o usuário faça as alterações e modificações que ele julgar necessárias. A licença do tipo GNU-GPL é divida nos conceitos: • Utilização - permite utilizar o software para qualquer fim; • Distribuição - pode ser distribuída livremente; • Didática - é permitido o estudo por meio do código-fonte. • Colaboração - para a evolução da ferramenta é permitido que o código seja alterado desde que o mesmo ainda continue sendo livre. O segundo tipo de licença é a comercial que é a quem lhe dá direito de se obter um suporte e até mesmo novos pacotes com mais ferramentas. O MySQL é um sistema de multiplataforma, ou seja, é capaz de rodar em diversos sistemas operacionais diferentes dentre Linux e Windows.
  31. 31. 31 1.5.3. SQL Server 2008 R2 O SQL Server é o SGBD desenvolvido pela Microsoft e é uma ferramenta paga. Tem um amplo conjunto de ferramentas de BI (Bussines Inteligence), o que facilita o seu uso em grandes empresas, por já possuir muitos componentes necessários para se aplicar estas técnicas ao tratamento de grande volume de informação. Com o SQL Server é possível a aplicação das técnicas de OLAP e até mesmo de Mineração de Dados, utilizando o próprio conjunto de aplicativos disponíveis com o mesmo, este é um dos benefícios da utilização desta ferramenta. Ao se utilizar uma visão acadêmica do SQL Server, foi possível realizar testes para seu melhor entendimento e comprovação de inúmeras possibilidades na manutenção de Banco de Dados e implementação de projetos de Data Warehouse. 1.5.4. Oracle 10g O Banco de Dados Oracle possui a letra G, que significa a abreviação de Grid, que são as sinergias que podem ser alcançadas alinhando as tecnologias Oracle às capacidades de Hardware existentes e futuras. A versão gratuita do Banco de Dados Oracle é limitada a um processador de 4Gb de dados e 1G de memória que é acompanhado do console de administração via Web e a ferramenta HTML DB pré-instaladas. Com o surgimento do Oracle 10g, em 2004, este possui cinco edições disponíveis (Enterprise, Standard, Standard Edition One, Personal, Lite), com a primeira versão do Oracle desenvolvida em 1979. Utiliza linguagem SQL para manipulação de dados e objetos e possui uma linguagem procedural própria chamada PL/SQL, baseada em SQL, mas com a robustez de uma linguagem de programação, utilizada no processamento de transações. O banco de dados Oracle é composto por objetos do sistema, contendo os metadados e por objetos do usuário e aplicações. No que diz respeito aos metadados, ele é composto por tabelas do sistema, com acesso restrito ao usuário por views (visões) e sinônimos. O Administrador do Banco de Dados Oracle constantemente acessa estes metadados por meio de duas categorias de objetos.
  32. 32. 32 • Views do dicionário de dados São views estáticas que, em sua maioria, referem-se a objetos do banco de dados e podem ser acessadas apenas quando o banco estiver aberto e disponível. Estas começam com: - “DBA_” - contém todas as informações de todos os objetos; - “ALL_” - contém todas as informações de todos os objetos que o usuário tem acesso; - “USER_” - contém informações sobre todos os objetos que o usuário seja dono, seguido de palavra que referencia o tipo de informação que ela contém. • Views de desempenho dinâmicas São views complementares às views do dicionário de dados, além de muitas delas terem informações da instância Oracle. Estas começam com V$ e geralmente tem seu nome no singular. Para fazer atualização de um banco de dados Oracle para o Oracle Database 10 g é utilizado o DBUA, uma interface gráfica que faz a projeção da atualização. 1.6.Ferramentas de Desenvolvimento Web As ferramentas de desenvolvimento Web possibilitam a implementação de web sites e portais. Um de seus pontos fortes é ter disponibilidade de interação com qualquer tipo de base dados, permitindo um controle de forma on–line das informações, o que facilita não só a divulgação, mas também o controle de acesso às mesmas.
  33. 33. 33 1.6.1. PHP PHP é uma linguagem programação web que tem como seu nome Hypertext Preprocessor. Voltado para o lado do servidor, gratuita e independente de plataforma, ou seja, é multiplataforma, funciona não somente em sistemas Windows, mas também em sistemas Linux. É hoje considerada uma das principais linguagens de programação da atualidade, é rápida com uma grande quantidade de bibliotecas com funções específicas. A utilização desta linguagem possibilita o desenvolvimento de páginas web dinâmicas e também o trabalho em conjunto com diversos tipos de banco de dados, desde os mais simples aos mais robustos, o que faz com que aja uma interação entre as páginas web e o banco de dados. Por ser uma linguagem Server side (lado do servidor, traduzida ao pé da letra) é executada no próprio servidor web. Outra facilidade do PHP é a possibilidade de trabalhar juntamente com a linguagem de desenvolvimento de páginas web HTML. O PHP foi criado originalmente em 1995, por Rasmus Lerdorf, é a sucessão do produto chamado PHP/FI, que foi criado inicialmente com códigos Perl, como scripts estatísticos para acesso a currículos on-line. Esta série de scripts foi nomeada de “Personal Home Page Tools”. Com o decorrer do tempo, novas funcionalidades foram requeridas, desse modo, Lerdof escreveu uma nova implementação que era baseada na linguagem de programação C, que possibilitou a capacidade de comunicação com uma base de dados e também o desenvolvimento simples de aplicativos para web de forma dinâmica. Rasmus disponibilizou o código de sua linguagem para todos, o que tornou o Open Source, o que permitiu que cada um o adequasse de acordo com as suas necessidades. Esta linguagem já possuía, até então, algumas funcionalidades do PHP já conhecidas e utilizadas na atualidade. Usavam-se variáveis no estilo Perl, e também a sintaxe embutida no HTML. Apesar da similaridade com as variáveis de Perl, ainda havia uma inconsistência nas variáveis da linguagem. Em 1997 a segunda versão da implementação C da linguagem teve um crescimento muito grande, estimado em cerca de 50.000 domínios, já tinham reportado o uso de PHP/FI, chegando a cerca de 1% dos domínios da internet. Oficialmente, a segunda versão do PHP/FI foi lançada em novembro de 1997 e após anos e anos em versões betas foi rapidamente substituída pelos alfas do PHP 3.0.
  34. 34. 34 1.6.2. PHP 3 Primeira versão que se assemelha mais com o que se vê no PHP da atualidade, criada por Andi Gutmans e Zeev Suraski, em 1997. Após descobrirem que a versão anterior de PHP/FI tinha muito a auxiliá-los, seus criadores a reescreveram totalmente, o que fez com que desenvolvessem suas próprias aplicações de E-Commerce de um projeto da Universidade que cursavam. Com o anúncio oficial da nova versão da linguagem, a antiga foi descontinuada. Posteriormente batizada simplesmente de PHP: Hypertext Preprocessor, tinha como característica a sua extensibilidade, além de oferecer uma infraestrutura capaz de interagir com diversos bancos de dados e APIs. Outras características chaves introduzidas no PHP 3.0 foram o suporte à sintaxe para orientação a objetos e uma sintaxe muito mais poderosa e consistente. Esta versão foi lançada oficialmente em junho de 1998, depois de diversos testes públicos. 1.6.3. PHP 4 Como o PHP 3.0 não havia sido projetado para suportar aplicações de grande porte e, por sua vez, de um nível de grande complexidade, foi visto como necessária a implementação de uma nova Engine “Zend Engine” (primeiros nomes dos autores da linguagem), com o objetivo de aperfeiçoar esta dificuldade. Ao se fazer deste objetivo um sucesso, a nova versão do PHP foi lançada em 1999. Esta, que seria chamada de PHP 4.0, era baseada nesta engine e com uma série de novas características, oficialmente lançada em maio de 2000. Uma das características chaves para o sucesso da linguagem foi o suporte a vários servidores web, sessões HTTP, e maneiras mais seguras de manipular entrada/saída de dados dos usuários. 1.6.4. PHP 5 PHP 5 foi lançado em julho de 2004, depois de um longo desenvolvimento e vários pre-releases. Ele principalmente introduziu o core, a Zend Engine 2.0 com um novo modelo de orientação a objetos e várias outras características.
  35. 35. 35 Figura 7: PHP Editor, exemplo de aplicativo para desenvolvimento de páginas em PHP. Fonte: Os autores. 1.7.Data Warehouse 1.7.1. Introdução O Data Warehouse é um sistema capaz de organizar e integrar informações por setores de aplicação, com retorno de resultados que expressem conhecimentos gerenciais para aplicação empresarial.
  36. 36. 36 “Data warehousing and business intelligence are techniques to provide business people with the information and tools they need to make both operational and strategic business decisions.” (KIMBALL; THORNTHWAITE; MUNDY, 2011, p. 21) O Data Warehouse é distribuído em base de dados específicas, chamadas Data Marts (DM), possui a função de armazenamento de dados referentes a uma área de atuação, por exemplo, o DM do setor de Vendas, que se torna responsável por armazenar todas as informações de vendas que foram feitas, o valor, a data em que foi feita, quem foi o responsável pela mesma e etc. A função do DM é registrar todas as informações referentes a setores ou considerado em modelagem multidimensional, os chamados Fatos da empresa. Quando se há um grande conjunto de informações separadas de modo setorizado e organizado, utiliza-se o Data Warehouse para inferir novos conhecimentos com base nas informações históricas da empresa; um detalhe visto como importante para o desenvolvimento de um DW é justamente a necessidade de que haja um grande volume de informações em relação ao tempo de atividade da empresa. Este sistema inteligente utiliza as informações históricas da empresa para traçar perfis com base nos dados ao longo dos anos. Ele é capacitado a observar, por exemplo, que a necessidade de colocar fraldas ao lado da cerveja, aos domingos, gera um lucro ao supermercado, por ser o homem quem fica responsável por efetuar as compras neste dia. Foi este o caso da empresa WalMart, precursora da utilização dos sistemas inteligentes para auxílio na organização empresarial. 1.7.2. Construção de um Data Warehouse O armazém de dados (possui este nome justamente por ter a função de um armazém onde se organizam os produtos por prateleiras ou até mesmo estantes), para ser criado, assim como dito anteriormente, necessita de um grande volume de dados e também escala de tempo, porém, há um ponto a ser analisado: Quando se trata de uma base de dados com um longo período de tempo, há grandes chances que essas informações não possuam mais o mesmo padrão de armazenamento ao longo do tempo. Um exemplo de transformação nos padrões adquiridos para a descrição do
  37. 37. 37 campo sexo, ao invés de indicado por “M” ou “F”, muda-se para “1” para indicar o sexo masculino e “2” para o sexo feminino, dentre outras variações que atrapalham na utilização destes dados para inferir novos conhecimentos. Quando não há uma padronização dos dados ao longo do tempo, utilizam-se técnicas de ETL (Extraction, Transformation and Load, ETC em português: Extração, Transformação e Carga). Este processo visa remover essas inconsistências nos dados e padronizá-los para a aplicação de técnicas de Data Warehouse. 1.7.3. Modelagem Multidimensional A Modelagem Multidimensional não segue o mesmo conceito em relação à Modelagem Entidade Relacionamento, por se tratar de definir fatos, e suas dimensões a esta modelagem é mais intuitiva. Uma forma de se identificar um determinado fato, suas dimensões e medidas é fazer as seguintes perguntas “O quê? Quando? Onde? Quem?”. Estas perguntas trazem consigo as respostas para definição das dimensões de um fato. Exemplo: Fato – Vendas, é visto como necessário o entendimento das vendas ao decorrer dos anos, então são feitas as seguintes perguntas; O quê? Produtos; Quando? Ano da Venda; Onde? Em qual cidade; Quem? Qual a loja que efetuou a venda. Após respondidas essas perguntas, quais os valores identificariam suas medidas? Este seria o atributo que identificará a proporção do fato, então os melhores atributos para este caso seriam Valor do Produto e a Quantidade Vendida. • Definindo Fatos, Dimensões e Medidas: Fatos – É uma coleção de atributos referentes à mesma incidência, a que representa uma determinada ação/evento de negócio vista com importância no contexto geral de trabalho. Dimensões – São elementos/atributos que participam das ocorrências dos fatos, têm como intuito identificar os dados, sejam eles exemplos como por mês, por região, por país etc. Medidas – Segundo Kimball, “são os atributos numéricos que representam um fato, a performance de um indicador de negócios relativo às dimensões que participam desse fato.”
  38. 38. 38 Então, por possuir atributos de valores numéricos, eles estão relacionados diretamente com as dimensões de um determinado fato. Ao dividir os fatos, suas dimensões e medidas são desenvolvidos o Star Schema ou Snow Flake, que fica responsável por representar a etapa final da modelagem multidimensional. • Modelos de representação da Modelagem Multidimensional Star Schema – O Star Schema ou mais conhecido como Modelo Estrela fica responsável por exibir de forma gráfica os fatos e suas dimensões; o fato localiza-se ao centro, enquanto suas dimensões o rodeiam fazendo ligação a este fato de negócio. Snow Flake – O modelo Snow Flake, também conhecido como modelo Floco de Neve, segue o mesmo conceito do Modelo Estrela, porém exibe a abstração de suas dimensões, por exemplo, em uma dimensão Data, esta possui sua variação em mês e semana.
  39. 39. 39 Figura 8: Exemplo de Modelo Estrela. Fonte: Os autores. Ao efetuar todas estas etapas, utilizam-se as ferramentas OLAP ou Data Mining para serem feitas inferências que retornem conhecimento útil para a organização. 1.8.OLAP – On-line Analytical Processing A ferramenta OLAP é a responsável por tornar possível a análise multidimensional dos dados de um Data Warehouse, com retorno de informações com base nas dimensões criadas. Para atender as questões estratégicas, esta ferramenta faz a união destas dimensões utilizando técnicas que podem alterar a forma de como esses dados são visualizados ou, até mesmo, como é denominada a forma de detalhamento das informações. Este tipo de análise tende a comparar valores entre períodos de tempo, seu percentual de variação, dentre outras funções estatísticas. Esta ferramenta é utilizada para que usuários de alto nível de uma empresa consigam utilizar dados operacionais sumarizados e torná-los em relatórios capazes de responder questões gerenciais.
  40. 40. 40 1.9.Inteligência Artificial Inteligência Artificial é uma área da Ciência da Computação que pretende auxiliar na tomada de decisões inteligentes, por intermédio de algoritmos e linguagem de programação. No contexto de trabalho esta ciência é utilizada em uma de suas vertentes que trata em específico de tomadas de decisões por meio de técnicas de KDD (Knowlegde Discovery in Datbabases) que possuem longa escala de tempo, para identificar novas ocorrências ou até mesmo inferir dados incompletos na Base de Dados. A IA foi a precursora para criação do conceito Mineração de Dados, com algoritmos estatísticos voltados a informações empresariais em Banco de Dados que, antes, para se fazer uma análise desta informação, se tornava inviável ou exigia grande tempo de trabalho e estudo. 1.9.1. Data Mining Esta tecnologia provém de algoritmos matemáticos estatísticos que tem como intuito auxiliar na transformação de um conjunto de dados em conhecimento útil para a empresa. Esta ferramenta surgiu devido à necessidade de que toda a informação da empresa ao longo dos anos se tornasse útil para novas descobertas de conhecimento, sejam estas informações de crescimento empresarial por uma determinada ação da empresa. Esta tecnologia é fortemente alicerçada nos estudos na área de IA, que visa tornar a computação capaz de auxiliar a tomada de decisão em ações do cotidiano das pessoas. Ao utilizar a ferramenta de Mineração de Dados, precisa-se ter em mente qual a função de utilização dos dados, estas podem ser determinadas em funções de Agregação, Classificação e Clusterização. A técnica Mineração de dados é conhecida por KDD (Knowlegde Discovery in Databases), que visa gerar novos conhecimentos ao utilizar a aplicação de Algoritmos Inteligentes que agrupam os dados, verificam suas semelhanças e, dessa forma, classificá-los e identificar suas diferenças. É tarefa da mineração de dados um entendimento e preparação de informações para que sejam analisadas e classificadas, com definição de um padrão conveniente que auxilie na
  41. 41. 41 tomada de alguma decisão estratégica de maneira gerencial em uma empresa. Para isso existem algumas etapas a serem seguidas: • Entendimento do Negócio (Business Understanding) O entendimento do negócio trata da fase inicial do projeto, é a partir dele que se obtém o conhecimento sobre os objetivos do negócio e seus requisitos. A partir desse conhecimento faz-se a definição de qual o problema deverá ser minerado. • Seleção dos Dados (Data Understanding) A seleção dos dados consiste no conhecimento dos dados propriamente ditos que visam a integração do banco de dados com o grupo de projeto. Definido o domínio onde será executada a mineração de dados, consequentemente, deve-se selecionar o conjunto de dados ou variáveis necessárias para as descobertas. • Limpeza dos Dados (Data Preparation) Está é a fase dos dados que faz a limpeza e transformação das informações, também conhecido como processo de ETL, faz a adequação das informações para uma base de dados limpando todos os dados desnecessários para a mineração. É a etapa que demanda mais esforço devido ao grande volume de dados, por isso é comumente integrada com a modelagem de um data warehouse. • Modelagem dos Dados (Modeling) É a fase de modelagem de dados que consiste em aplicar as técnicas de modelagem sobre o conjunto de dados preparados pela etapa de preparação de dados. Varias técnicas de modelagem são selecionadas e aplicadas, os parâmetros de mineração são calibrados para obter os valores otimizados. • Avaliação do processo (Evaluation) Esta fase visa avaliar os modelos de descoberta de dados gerados na etapa anterior garantindo que eles atendam as necessidades iniciais do projeto. É feita uma análise precisa
  42. 42. 42 desses modelos, de modo a verificar se há necessidade de se voltar a algum processo anterior. • Execução (Deployment) É nesta fase que será feita a implantação do projeto de mineração de dados, desse modo, a criação do modelo não é o fim do projeto. 1.9.2. Regra de Associação Associação ou regras de associação caracteriza-se por associar todos os itens de um registro com outro item daquele mesmo conjunto de dados. Com isso deseja-se encontrar tendências que possam ser usadas para explorar padrões de comportamento dos dados e, assim, identificar perfis. Os parâmetros para realização da mineração de dados por meio de regras de associação são suporte e confiança: Suporte corresponde à frequência com que todos os itens presentes na regra aparecem juntos em uma transação da base de dados, mesmo que eles apareçam com outros itens que não estão presentes na regra. Já a confiança representa o percentual de transações onde a regra ocorre, que consiste em dada uma entrada de dados, em que o ocorre o antecedente, ocorre também o consequente da regra. 1.9.3. Regra de Clusterização Agrupamento ou Clusterização (Clustering) consiste em agrupar um determinado grupo de dados, verificando a semelhança entre eles, geralmente uma classe que possui um título capaz de representar todos os elementos que nela estão contidos. Clustering é o processo de divisão de um conjunto heterogêneo de dados em vários subgrupos mais homogêneos, com verificação das semelhanças entre cada um desses dados. No agrupamento não há classes pré-definidas, os registros são agrupados de acordo com a semelhança.
  43. 43. 43 1.9.4. Regra de Classificação Classificação consiste em descobrir padrões e/ou modelos comportamentais, escrevê- los e descrever suas classes e/ ou conceitos. Haja vista que primeiramente estes modelos são definidos por um conjunto de dados já conhecidos, com o propósito de predizer a classe de objetos que ainda não foram classificados. Os dados até então analisados são um conjunto de treinamento para que aconteça a construção dos modelos com base nestes já conhecidos. 1.9.4.1. Árvore de Decisão J48 A Árvore de Decisão é utilizada para classificar informações com base em atributos que são distribuídos à árvore com base em seu fator de confiança, estes são considerados os nós, cabem a eles resultados esperados chamados nós filhos, caminha-se pela árvore por meio dos nós em busca do resultado classificador. Há variação na quantidade de nós gerada na árvore dependendo da escolha do atributo principal. Para criação do nó decisão utiliza-se o fator de confiança, este percentual estatístico que é definido pelo usuário para medir a confiança dos dados que estão sendo minerados, o que gera uma probabilidade de acerto, após definido, é determinada a quantidade de nós filhos. O algoritmo de classificação J48 é uma implementação do algoritmo C.45 release 8, esta a última publicação da família de algoritmos que gera árvores de decisão antes da versão C5.0, esta apenas disponível comercialmente. O J48 é o algoritmo mais popular da ferramenta Weka. Ele é capaz de construir um modelo de árvore baseado no conjunto de treinamento e o utiliza como modelo para gerar o conjunto de teste. Para verificação dos resultados obtidos através deste algoritmo de classificação utiliza-se a estatística de Kappa, que é representada no resultado da mineração. O cálculo estatístico possui uma faixa de classificação que indica se o resultado é fraco, regular, moderado, bom e excelente. O resultado fraco ou moderado são indicadores da necessidade de ajustes.
  44. 44. 44 1.10. Linguagem de Programação Java Esta linguagem foi desenvolvida inicialmente para ser usada como precursora de novas tendências no mercado de dispositivos eletrônicos, sobretudo quanto aos computadores pessoais. Devido à evolução dos microprocessadores possibilitam o desenvolvimento de computadores, além de mais potentes com maior capacidade de execução de aplicativos e com melhor performance. A evolução dos microprocessadores causou grande impacto no mundo, o que gerou a proliferação dos computadores pessoais ao redor do globo. Entendida a evolução e o crescimento deste mercado, a Sun Microsystems, empresa conhecida por suas ideias inovadoras em relação ao que se diz respeito de software livre em nível de sistemas operacionais de código aberto (Open Source), desenvolveu uma pesquisa com o intuito de criar uma nova linguagem de programação voltada a este desenvolvimento de novos computadores pessoais. O resultado desta pesquisa, que recebeu o codinome de Green, foi uma linguagem semelhante com C++, que seu criador James Gosling chamou de Oak. Porém percebeu- se que já havia uma linguagem com este mesmo nome. “Quando uma equipe da Sun visitou uma cafeteria local, o nome Java (cidade de origem de um tipo de café importado), foi sugerido; e o nome pegou”. (DEITEL p. 6, 2006) Este projeto passou por diversas faculdades, pois o mercado de eletrônicos inteligentes não estava se desenvolvendo da maneira esperada pela empresa, no inicio da década de 1990. O projeto corria risco de ser descontinuado. Mas, em 1993, o crescimento da Word Wide Web (WWW) foi popularizado e a equipe da Sun viu uma oportunidade de utilizar a sua nova linguagem para adicionar conteúdo dinâmico, como interatividade e animações às páginas Web. Isso deu nova vida ao projeto. Em 1995 a Sun anunciou formalmente o Java em uma importante conferência em maio do mesmo ano, o que chamou a atenção da comunidade de negócios por causa do enorme interesse na WWW. Atualmente o Java é utilizado para diversas aplicações, tais como desenvolvimento Web, aplicativos para dispositivos móveis, desenvolvimento de páginas web dinâmicas, programação voltada também para servidores. “Java é uma linguagem de programação orientada a objetos independente de plataforma e segura, projetada para ser mais fácil de aprender do que C++ e mais difícil de abusar do que C e C++”. (CADENHEAD p. 4, 2005).
  45. 45. 45 Uma das principais vantagens do Java é o seu código aberto que pode ser alterado, de acordo com as suas necessidades, e também o grande apoio da sua comunidade, mas o que realmente chama atenção na linguagem é a sua capacidade de ser independente de plataforma, ou seja, é possível rodar um aplicativo Java tanto no sistema operacional Linux, quanto Windows, desde que se tenha instalado em sua máquina a suíte de aplicativos Java também conhecida como JVM (Java Virtual Machine). Isto também pode ser chamado de neutralidade de plataforma. “Neutralidade de plataforma é a capacidade de um programa executar sem modificações em diferentes ambientes de computação” (CADENHEAD p. 4, 2005). Java é totalmente orientada a objetos “A programação orientada a objetos (OOP) é uma metodologia de desenvolvimento de software em que um programa é percebido como um grupo de objetos que trabalham juntos” (CADENHEAD p. 4, 2005).
  46. 46. 46 1.11. Fato Histórico A importância histórica do Vale do Paraíba se inicia no ciclo do ouro (século XVIII), com o Caminho Real, e continua no ciclo do café (século XIX), quando grandes fazendas foram construídas na região com atividade produtiva fortemente baseada em mão-de-obra escrava. É o caso das fazendas cafeeiras de Bananal, entre 1830 e 1888. O início do corte cronológico se justifica pelo fato de a produção de café naquela década se ter acelerado na região, transformando o município em uma típica zona de plantação; o final do corte é o ano de término do sistema escravista. Com o crescimento não só do café e também da extração das riquezas de Minas Gerais desenvolveu-se o caminho real. Este era responsável pelo escoamento de todos os bens retirados daquela região pela coroa Portuguesa e levados à Europa. Minas Gerais, São Paulo e Rio de Janeiro eram ligados por essa rota, a qual contava com 1500 km e, haja vista o declínio da produção mineral no século XVII, perdeu caráter oficial tornando-se uma área livre. Desse modo, assistiu ao crescimento de econômico e populacional da região do Vale do Paraíba graças ao forte crescimento do ciclo cafeeiro, sobretudo naquela região. No final do século XVIII, no distrito (posteriormente Estado) de São Paulo, surgiram as primeiras plantações de café. Entre o plantio dos cafezais e a colheita dos seus primeiros grãos demoravam-se de três a cinco anos. A respeito do beneficiamento dos grãos serem bem mais simples em comparação com os processos de moagem, fervura e filtragem, necessários para a produção do açúcar, os lavradores precisavam ter uma fonte de renda alternativa enquanto o arbusto do café não entrava em plena produção. Devido os problemas de ausência de crédito, pois o café brasileiro não era tão valorizado quanto poderia ser na Europa, a alternativa encontrada pelos lavradores para autofinanciar suas lavouras consistiu em combinar o cultivo de mantimentos – milho, feijão, arroz e mandioca – com o café. Em virtude disso, nessa primeira fase, a atividade cafeeira permitiu a participação de inúmeros agricultores, inclusive daqueles que contavam com poucos recursos. O escravo negro era a principal mão-de-obra cafeeira e quem verdadeiramente
  47. 47. 47 produziu o também chamado de “ouro verde” para o país, o que era de agrado da Coroa Portuguesa, visto como um modo simples de não ir contra à igreja que pregava a não escravização dos povos indígenas brasileiros. Neste período, o trabalho braçal e outros que exigiam um alto esforço físico ficaram fortemente ligados ao negro africano, porém nem todo escravo fazia tal serviço, existiam aqueles que realizavam funções mais simples como as de alfaiate, sapateiro, cozinheiro e outras.
  48. 48. 48 FERRAMENTAS PARA A IMPLEMENTAÇÃO DA INTELIGÊNCIA DE NEGÓCIOS 1.12. DBDesigner 4 A ferramenta de Modelagem de Dados DBDesigner 4, desenvolvida pela empresa fabFORCE, foi escolhida por possuir os recursos necessários para modelagem de um Banco de Dados sem causar nenhum problema quanto a sua organização das informações. Vista como essencial por sua eficácia e facilidade de manuseio, também uma ferramenta Open Source, tornou-se a escolha ideal para utilização. Capaz de gerar arquivos nos formatos PNG, XML e até mesmo SQL, o DBDesigner é também capaz de efetuar conexões a SGBDs como Oracle, SQLServer e SQLite. Possui diferentes tipos de notações para demonstrar a cardinalidade entre os relacionamentos, como EER (Enhanced Entity Relationship, em português, Entidade e Relacionamento Aprimorado) EER [1,N], Traditional e Crows Foot. Por ser uma ferramenta capaz de gerar Scripts SQL para serem utilizados no SGBD MySQL, este software proporcionou comodidade no desenvolvimento das Tabelas, definições dos Atributos e Relacionamentos e necessitou somente de algumas adaptações ao Scripts para criação da Base de Dados no PostgreSQL. 1.13. Utilização do SGBD PostgreSQL O SGBD PostgreSQL por possuir aspectos de um Banco de Dados de grande porte, porém a custo zero, foi visto como o melhor dentre os outros SGBDs por sua eficácia, facilidade de utilização e capacidade de armazenamento de grandes volumes de dados. Tabela 1: Capacidade do PostgreSQL Tamanho Máximo do Banco de Dados Ilimitado Tamanho máximo de uma 32 TB
  49. 49. 49 Tabela Tamanho Máximo de uma Linha 1.6 TB Tamanho Máximo de um Campo 1 GB Máximo de Linhas por Tabela Ilimitado Máximo de Colunas por Tabela 250–1600 dependendo do tipo de coluna Máximo de Índices por Tabela Ilimitado Fonte: PostgreSQL/sobre3 Por se configurar como um Banco de Dados Multiplataforma e também com capacidade de integração com Linguagens de Programação C/C++, Ruby, Perl, .Net, Python, Java etc, o Postgres mostra-se capaz de adaptar-se a quaisquer tipos de mudanças que o projeto possa demandar. Ele possui sua Interface gráfica que possibilita criação e manipulação dos dados por meio de suas opções sem a necessidade da utilização do console para execução de Scripts SQL, o que evita a total dependência do controle da informação via linha de comando. 1.14. Pentaho Business Intelligence A plataforma Pentaho, conhecida como Pentaho Open BI, é uma suíte de aplicativos Open Source para criação de soluções de BI (Business Intelligence). O Pentaho oferece poderosas ferramentas de análise de informações, monitoramento de indicadores e Data Mining para uso da informação gerencial, atingindo ganhos significativos de eficiência e eficácia. Implantada como Open Source, apresenta grande flexibilidade e independência de plataformas, possui alta confiabilidade e segurança a um custo mínimo de implantação e manutenção. 3 http://www.postgresql.org.br/sobre acesso em Outubro 2011.
  50. 50. 50 Os módulos mais importantes do Pentaho são: • Pentaho BI Platform; • Pentaho Data Integration - PDI (Kettle); • Analysis View (Mondrian); • Pentaho Reporting (Reporting); • Weka (Data Mining). Figura 9: Ferramentas que compõe o Pentaho Mondrian. Fonte: Manual Pentaho Mondrian.4 1.14.1. Pentaho BI Plataform 4 Getting started with pentaho.pdf
  51. 51. 51 O Pentaho BI Plataform é um framework que contém elementos para Análise e Relatórios de fácil utilização, esta ferramenta permite a criação de Relatórios e pode transformá-los em gráficos para representação das análises feitas em Banco de Dados Multidimensionais. Em sua versão community, o software é limitado à emissão de relatórios gráficos e análises. Em sua versão Enterprise, o Pentaho disponibiliza a opção de criação de relatórios, análises e dashboard (visões informativas de indicadores de performance). Figura 10: Quadro explicativo entre a utilização de Análise ou Relatório no BI suíte. Fonte: Manual Pentaho Mondrian.5 1.14.2. Pentaho Data Integration (Kettle) Kettle ou PDI (Pentaho Data Integratation) é uma ferramenta desenvolvida para fazer o processo de extração transformação e carga de informações para uma base de dados ou também para inferência de novas informações. É uma ferramenta de código aberto, sob a licença LGPL (Lesser General Public 5 Getting started with pentaho.pdf
  52. 52. 52 License). Com esta plataforma é possível fazer uma coleta de dados com a possibilidade de realizar uma transformação com essas informações. Esse processo de ETL é visivelmente observado quando se leva em conta os processos de: • Coleta de dados de fontes de dados distintas (Extract – Extração); • Modificação dos dados (Transform – Transformação), enquanto limpa, desnormaliza e agrega novas informações durante este processo; • Carregamento de dados (Load – Carga) para um destino final, que geralmente é um banco de dados de grande porte, modelado multidimensionalmente (Data Warehouse). 1.14.3. Analysis View – Mondrian Workbench Mondrian Workbench é uma ferramenta que está contida na plataforma Pentaho BI. Voltada para o desenvolvimento multidimensional, por meio dela é possível desenvolver os cubos e prepará-los para a implementação do DW. Por se tratar de uma ferramenta Open Source, ou seja, tem seu código fonte aberto, é possível alterá-la e adequá-la a necessidades encontradas com o decorrer do projeto. O Analisys View não está presente somente na versão community, mas também na versão corporativa da plataforma Pentaho. O Schema Workbench tem uma integração com o Pentaho e faz a publicação do XML automaticamente. Suas funcionalidades: • Editor de esquema integrado; • Testes das consultas MDX (Multi-dimensional Expressions – Linguagem criada pela Microsoft para definir consultas multidimensionais) nos esquemas e nas bases de dados; • Visualização da estrutura de bases de dados.
  53. 53. 53 1.14.4. Weka Weka é um software que contém vários algoritmos de aprendizado de máquina para tarefas de mineração de dados. Estes algoritmos também podem ser aplicados diretamente para arquivo de dados ou serem chamados diretamente de um código Java. O software contém ferramentas para pré-processamento de dados, classificação, regressão, agrupamento, regras de associação e visualização. É também ideal para o desenvolvimento de novos algoritmos de aprendizagem de máquina. O Weka segue os padrões da licença GNU (General Public License). Figura 11: Interface de entrada do Weka. Fonte: Os autores.
  54. 54. 54 Figura 12: Interface utilizando o Classificador de Redes Bayes Fonte: Os autores. 1.15. Linguagem de Programação Web PHP No contexto deste projeto almeja–se no seu decorrer, o desenvolvimento de um portal onde as informações referentes aos Inventários fiquem disponíveis para outros historiadores/pesquisadores que tenham também um interesse em conhecer e até mesmo citar novas informações na base de dados. Para o desenvolvimento deste será feita a utilização da linguagem de programação Web PHP. A linguagem PHP será utilizada, por ser uma linguagem Server side, o que torna
  55. 55. 55 segura e necessita de menos capacidade de processamento por parte do usuário para visualização da página, possui programação intuitiva e há integração com o Banco de Dados PostreSQL.
  56. 56. 56 DESENVOLVIMENTO E IMPLEMENTAÇÃO 1.16. Base de Dados Histórica Considerado o fato de que naquela época não havia um método eficaz de armazenamento de dados e muito menos computacional para aperfeiçoar este processo de armazenamento dos documentos tidos como Inventários, estes eram arquivados em cartório, o único meio de armazenamento disponível na época. Para elucidar a importância desta época para a região do Vale do Paraíba o historiador está desenvolvendo a digitalização destes documentos que estão mantidos em custódia do museu Major Novaes da cidade de Cruzeiro/SP, mas ainda assim há uma grande dificuldade de se obter informações precisas, levada em consideração a escrita confusa sem um padrão definido, e também a falta de algumas informações necessárias ao entendimento do Inventário, um dos objetivos do esforço para historiador para com estes documentos. Após essa etapa, é preciso desenvolver um sistema que mantenha todas estas informações, para melhor serem utilizados futuramente. Esse arquivo histórico tem sua importância, tanto que um historiador da Universidade de São Paulo teve seu interesse, sobretudo, na parte de inventários e desenvolveu uma manutenção e um estudo sobre essas informações com intuito de buscar informações explícitas nestes documentos. Para exemplificar isso, deseja-se saber as semelhanças entre todos os cafeicultores escravistas da época, podendo estabelecer uma relação entre eles e seus escravos, listar a quantidade de cativos que cada um possuía, para poder classificar os cafeicultores como grandes ou pequenos proprietários de acordo com a sua quantidade de escravos. O trabalho do historiador visa não só buscar novas informações nessa base de dados histórica, mas, sobretudo a preservação dos documentos utilizados para se obter tais dados, pois muitos deles encontram-se em condições precárias, com isso é estritamente importante esse auxílio prestado pela área tecnológica, com o intuito de digitalizar tais documentos e criar um meio computacional de armazenar essas informações capaz de satisfazer todas as necessidades impostas pelo historiador.
  57. 57. 57 Figura 13: Planilha com os dados obtidos pelo historiador. Fonte: Os autores. 1.17. Modelagem de Dados Quanto ao desenvolvimento da Modelagem ideal do Banco de Dados, foram levados em consideração os relacionamentos que já haviam sido criados na base de dados, desenvolvida pelo próprio historiador, por exemplo, em todas as planilhas criadas estavam descritas a numeração do inventário que possuíam tais bens, indicando ali a necessidade de criação de um relacionamento entre as tabelas. No entanto, a divisão e definição de algumas tabelas foram feitas de maneira que melhor aperfeiçoassem as buscas na base de dados, como na criação da tabela Tipo_Propriedade. Para evitar a necessidade de armazenamento dos nomes das propriedades diversas vezes, esta possui uma chave primária que fica responsável por enumerar os tipos de propriedades e nas tabelas que necessitam desta informação está a numeração indicativa de qual propriedade se refere. Feito isto, mudam-se os dados em campos Caractere reduzindo o número de bytes para representá-los, pois o campo
  58. 58. 58 que descreve o nome da propriedade possui cerca de 50 caracteres, para isso utilizou- se o tipo de dado Integer. Nesta mesma lógica foram criadas as tabelas Oficio_Escravo, Tipo_Animal, Prodecencia_Escravo e Cidade. Em outros casos, para melhor definir a informação armazenada nas planilhas Excel, foram criadas tabelas com relacionamento muitos-para-muitos, de modo a evitar parcialmente a redundância de dados, isto ocorre na tabela Herdeiros, Cônjuge e Herdar, afinal, um herdeiro pode ou não ser um cônjuge, com isso há a chance de possuir redundância com os nomes de casais se repetindo entre as tabelas. Desse modo, a criação da tabela Herdar ficou responsável por exibir os dados de qual a pessoa está sendo referenciada por um determinado inventário e se esta é ou não um cônjuge ou herdeiro. Outro problema avistado nesta etapa foi que, apesar de um herdeiro poder ser qualquer pessoa que foi indicada como beneficiária do inventariado, esta foi descrita somente em um campo, mesmo havendo a chance de um inventariado declarar mais do que uma pessoa como sua herdeira. Ao observar a planilha vê-se um registro apontando ao outro em uma indicação de uma relação entre eles. A solução foi criar a tabela Herdar, o que possibilitou a repetição de um mesmo número quantas vezes fossem necessários para demonstrar quantos herdeiros um mesmo inventariado possuía. Ao todo foram construídas pelo historiador 12 planilhas, as quais armazenam informações sobre Inventários, Herdeiros, Testamentos, Móveis, Imóveis, Animais, Escravos, Culturas, Terras, Dívidas Ativas, Dívidas Passivas e Partilhas. Para melhor armazenar e retornar resultados específicos ao pesquisador, esta se tornou uma modelagem com 21 tabelas com informações distintas. O único ponto que deixou a desejar, ao se utilizar a ferramenta DBDesigner 4, foi o problema com a organização das tabelas ao acrescentar as relações entre Cidade e Tipo_Proprietário com as demais, o que causou dificuldade para compreensão do resultado final.
  59. 59. 59 Figura 14: Modelo Lógico Relacional do Banco de Dados Histórico. Fonte: Os autores.
  60. 60. 60 1.18. Desenvolvimento do Banco de Dados no PostgreSQL O desenvolvimento do Banco de Dados no PostgreSQL foi baseado na modelagem feita com auxílio da ferramenta DBDesigner, o uso desta ferramenta gerou Scripts SQL que serviram como base para agilizar o processo de criação das tabelas, por gerar códigos para criação do Banco de Dados ao SGBD MySQL. Foram necessárias alterações em parte do Script, como a remoção de informações como o a Sintaxe Auto_Increment, Engine = InnoDB, dentre declarações da chave estrangeira e Índices que possuem diferenças entre MySQL e Postgres. Depois de desenvolvido o Banco de Dados, preparavam-se os arquivos textos com base na organização dos campos da tabela no Postgres para importação dos dados e com a utilização do comando COPY, os dados eram transferidos para tabela com sucesso, mas em alguns casos também ocorreram falhas iniciais com base no formato padrão do PostgreSQL, americano, gerou-se então uma barreira que impedia a utilização de campos decimais, pois o formato americano para representação de casas decimais é diferente, por exemplo, um campo com valor 5.000,00 no padrão americano se torna 5,000.00. A utilização da vírgula se torna responsável por separar a casa dos milhares e o ponto as casas decimais, situação esta resolvida com o ETL manual. Apesar do desenvolvimento da Modelagem tentar predizer como o Banco de Dados seria construído e qual o tamanho adequado para os registros, foi necessária a atualização do BD para conseguir armazenar toda informação em cada campo, o que acarretou também na atualização do MLR. Após efetuada a população dos dados, foram necessários o desenvolvimento de Algoritmos customizados para atendimento a questões requisitadas pelo historiador, que se tratavam de classificar, agrupar e identificar informações sobre os cafeicultores escravistas da época, demonstrando seu potencial escravista e também sua classificação em relação à quantidade de terras possuídas.
  61. 61. 61 1.18.1. Questões Respondidas via Comandos SQL • Quanto aos Inventários 1. Nº total de inventários select count(n_ivtr) from inventariado where n_ivtr <> 0; 2. Nº total de cafeicultores escravistas (inclui cafeicultor/assucrocultor, cafeicultor/comerciante e lavrador/cafeicultor) select count(n_ivt_esc) as total_caf_esc from( select distinct escravos.n_ivt as n_ivt_esc from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.profissao like ‘%CAFEICULTOR%’ order by n_ivt_esc asc )as conta_cafeicultor_escravistas; 3. Nº total de não cafeicultores select count(n_ivt) from inventariado where profissao not like ‘%CAFEICULTOR%’ and n_ivtr<>0; 4. Nº total de não cafeicultores escravistas select count(n_ivt_esc) as total_caf_esc from( select distinct escravos.n_ivt as n_ivt_esc from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.profissao not like ‘%CAFEICULTOR %’ order by n_ivt_esc asc
  62. 62. 62 )as conta_nao_cafeicultor_escravista; • Quanto aos cafeicultores escravistas 1. Sexo - Homens select distinct escravos.n_ivt from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.sexo= 'M' or inventariado.sexo= 'M/F' and inventariado.profissao like '%CAFEICULTOR%' order by escravos.n_ivt asc; - Mulheres select distinct escravos.n_ivt from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.sexo= 'F' or inventariado.sexo= 'M/F' and inventariado.profissao like '%CAFEICULTOR%' order by escravos.n_ivt asc; 2. Estado conjugal - Casados select distinct escravos.n_ivt from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.estd_cnjg= 'C' and inventariado.profissao like '%CAFEICULTOR%' order by escravos.n_ivt asc; - Solteiros select distinct escravos.n_ivt from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.std_cnjg= 'S' and inventariado.profissao like '%CAFEICULTOR%' order by escravos.n_ivt asc; - Viúvos
  63. 63. 63 select distinct escravos.n_ivt from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.estd_cnjg= 'V' and inventariado.profissao like '%CAFEICULTOR%' order by escravos.n_ivt asc;
  64. 64. 64 3. Tipo de proprietário e o nº de escravos possuídos pelos mesmos - Mini (1 a 4 escravos) - Pequeno (5 a 19 escravos) - Médio (20 a 49 escravos) - Grande (50 a 99 escravos) - Mega (100 ou mais) select count(tipo_proprietario) as quantidade, tipo_proprietario from ( select case when n_ivt = n_ivt and count(n_ivt) >=1 and count(n_ivt) <=4 then 'mini' when n_ivt = n_ivt and count(n_ivt) >=5 and count(n_ivt) <=19 then 'pequenos' when n_ivt = n_ivt and count(n_ivt) >=20 and count(n_ivt) <=49 then 'medio' when n_ivt = n_ivt and count(n_ivt) >=50 and count(n_ivt) <=99 then 'grande' else 'mega' end as tipo_proprietario, count(*) as quantidade_escravos from escravos group by n_ivt order by quantidade_escravos )as foo group by tipo_proprietario order by quantidade; • Quanto aos escravos dos cafeicultores escravistas
  65. 65. 65 1. Total select count(escravos.n_ivt) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.profissao like ‘%CAFEICULTOR%’; 2. Sexo - Homens select count(escravos.n_ivt) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and escravos.sexo= ‘M’ and inventariado.profissao like ‘%CAFEICULTOR%’; - Mulheres select count(escravos.n_ivt) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and escravos.sexo= ‘F’ and inventariado.profissao like ‘%CAFEICULTOR%’;
  66. 66. 66 3. Estado conjugal - Casados select count(escravos.n_ivt) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and escravos.estd_cnjg= ‘C' and inventariado.profissao like ‘%CAFEICULTOR%’; - Solteiros select count(escravos.n_ivt) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and escravos.estd_cnjg= ‘S’ and inventariado.profissao like ‘%CAFEICULTOR%’; - Viúvos select count(escravos.n_ivt) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and escravos.estd_cnjg= ‘V’ and inventariado.profissao like ‘%CAFEICULTOR%’; 4. Idade - Idade média select avg(escravos.idade) from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.profissao like ‘%CAFEICULTOR%’ and escravos.idade >0; - Faixa etária: crianças (0-13 anos), adultos (14-55 anos), idosos (56 ou mais anos) e sem idade descrita
  67. 67. 67 select case when escravos.idade >=0.0000001 and escravos.idade <= 14 then 'crianças' when escravos.idade >= 15 and escravos.idade <= 49 then 'adultos' when escravos.idade >= 50 then 'idosos' else 'idade não descrita' end as faixa_etaria, count(*) as quantidade from escravos, inventariado where escravos.n_ivt = inventariado.n_ivtr and inventariado.profissao like '%CAFEICULTOR%' group by case when escravos.idade >=0.0000001 and escravos.idade <= 14 then 'crianças' when escravos.idade >= 15 and escravos.idade <= 49 then 'adultos' when escravos.idade >= 50 then 'idosos' else 'idade não descrita' end order by faixa_etaria;
  68. 68. 68 • Cruzando Informações 1. Sexo e nacionalidade. - Africanos select sexo, nasc_esc, count(sexo) as total_sexo, count(nasc_esc)as nacionalidade from escravos where nasc_esc = 'A' group by sexo,nasc_esc; - Brasileiros select sexo, nasc_esc, count(sexo) as total_sexo, count(nasc_esc)as nacionalidade from escravos where nasc_esc = 'A' group by sexo,nasc_esc; 2. Sexo, nacionalidade e estado conjugal. - Africanos select sexo, estd_cnjg, count(sexo) as total_sexo, count(nasc_esc) as total_nacionalidade, count(estd_cnjg) as total_estado_conjugal from escravos where nasc_esc ='A' group by sexo,nasc_esc,estd_cnjg; - Brasileiros select sexo, estd_cnjg, count(sexo) as total_sexo, count(nasc_esc) as total_nacionalidade, count(estd_cnjg) as total_estado_conjugal from escravos where nasc_esc ='B' group by sexo,nasc_esc,estd_cnjg; 3. Sexo e idade média. select sexo as sexo, count(sexo) as qntd_homens, avg(idade) as media_idade from escravos where idade != 0 group by sexo; 4. Sexo, nacionalidade e idade média.
  69. 69. 69 select sexo,count(sexo) qtd_sexo, nasc_esc, count(nasc_esc) as qntd_nacionalidade, avg(idade) from escravos where idade !=0 group by sexo, nasc_esc; 5. Nacionalidade e procedência - Brasileiros select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on (b.n_proc_esc = a.n_proc_esc) where nasc_esc = 'B' group by prcdnca; - Africanos select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on (b.n_proc_esc = a.n_proc_esc) where nasc_esc = 'A' group by prcdnca; . 6. Sexo, nacionalidade e procedência. - Brasileiros do sexo Masculino select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on (b.n_proc_esc = a.n_proc_esc) where nasc_esc = 'B' and sexo = 'M' group by prcdnca; - Brasileiros do sexo Feminino select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on (b.n_proc_esc = a.n_proc_esc) where nasc_esc = 'B' and sexo = 'F' group by prcdnca; - Africanos do sexo Masculino select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on (b.n_proc_esc = a.n_proc_esc) where nasc_esc = 'A' and sexo = 'M' group by prcdnca; - Africanos do sexo Feminino
  70. 70. 70 select prcdnca, count(prcdnca) from procedencia_escravo as b inner join escravos as a on (b.n_proc_esc = a.n_proc_esc) where nasc_esc = 'A' and sexo = 'F' group by prcdnca; 7. Sexo, nacionalidade e ofício. - Africanos do sexo Masculino select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where sexo = 'M' and nasc_esc = 'A' group by oficio; - Africanos do sexo Feminino select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where sexo = 'F' and nasc_esc = 'A' group by oficio; - Brasileiros do sexo Masculino select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where sexo = 'M' and nasc_esc = 'B' group by oficio; - Brasileiros do sexo Feminino select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where sexo = 'F' and nasc_esc = 'A' group by oficio; 8. Estado conjugal e ofício. select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'C' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'S' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'V' group by oficio;
  71. 71. 71
  72. 72. 72 9. Estado conjugal, ofício e sexo. select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'C' and sexo = 'M' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'S' and sexo = 'M' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'V' and sexo = 'M' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'C' and sexo = 'F' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'S' and sexo = 'F' group by oficio; select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where estd_cnjg = 'V' and sexo = 'F' group by oficio; 10. Estado conjugal e condição física. select count(estd_cnjg), cond_fis from escravos where estd_cnjg = 'C' group by cond_fis; select count(estd_cnjg), cond_fis from escravos where estd_cnjg = 'S' group by cond_fis; select count(estd_cnjg), cond_fis from escravos where estd_cnjg = 'V' group by cond_fis; 11. Nacionalidade e ofício. select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where nasc_esc = 'A' group by oficio;
  73. 73. 73 select oficio, count(oficio) from oficio_escravo as b inner join escravos as a on (b.n_ofic_esc = a.n_ofic_esc) where nasc_esc = 'B' group by oficio; 12. Nacionalidade e condição física. select count(nasc_esc), cond_fis from escravos where nasc_esc = ' ' and cond_fis <> 'NAO DOCUMENTADO' group by cond_fis, nasc_esc; select count(nasc_esc), cond_fis from escravos where nasc_esc = 'B' and cond_fis = 'NAO DOCUMENTADO' group by cond_fis; select count(nasc_esc), cond_fis from escravos where nasc_esc = 'A' and cond_fis = 'NAO DOCUMENTADO' group by cond_fis; select count(nasc_esc), cond_fis from escravos where nasc_esc = 'A' and cond_fis <> 'NAO DOCUMENTADO' group by cond_fis; select count(nasc_esc), cond_fis from escravos where nasc_esc = 'B' and cond_fis <> 'NAO DOCUMENTADO' group by cond_fis; 13. Ofício e valor médio. select count(valor), avg(valor) from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA'; select count(n_ofic_esc), avg(valor) from escravos where n_ofic_esc <> 0 and obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA'; 14. Ofício e idade média select count(n_ofic_esc), avg(idade) from escravos where n_ofic_esc <> 0 and idade <> 0;
  74. 74. 74 15. Oficio e Sexo select sexo, count(n_ofic_esc) from escravos where n_ofic_esc <> 0 and sexo = 'F' group by sexo; select sexo, count(n_ofic_esc) from escravos where n_ofic_esc <> 0 and sexo = 'M' group by sexo; 16. Oficio, Sexo e Nacionalidade - Africanos select sexo, count(n_ofic_esc), count(nasc_esc) from escravos where n_ofic_esc <> 0 and sexo = 'M' and nasc_esc = 'A' group by sexo; select sexo, count(n_ofic_esc), count(nasc_esc) from escravos where n_ofic_esc <> 0 and sexo = 'F' and nasc_esc = 'A' group by sexo; - Brasileiros select sexo, count(n_ofic_esc), count(nasc_esc) from escravos where n_ofic_esc <> 0 and sexo = 'M' and nasc_esc = 'B' group by sexo; select sexo, count(n_ofic_esc), count(nasc_esc) from escravos where n_ofic_esc <> 0 and sexo = 'F' and nasc_esc = 'B' group by sexo; 17. Sexo e valor médio. select sexo, avg(valor) from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA' and sexo = 'F' group by sexo; select sexo, avg(valor) from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA' and sexo = 'M' group by sexo;
  75. 75. 75 from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA' and sexo = 'M' and nasc_esc = 'A' group by sexo, nasc_esc; 18. Sexo, nacionalidade e valor médio - Africanos select count(valor), avg(valor), sexo, nasc_esc from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA' and nasc_esc LIKE 'A' group by sexo, nasc_esc; - Brasileiros select count(valor), avg(valor), sexo, nasc_esc from escravos where obs != 'AVALIADOS EM CONJUNTO COM A FAZENDA' and nasc_esc LIKE 'B' group by sexo, nasc_esc; • Quanto aos Animais dos Cafeicultores Escravistas 1. Nº total por grupos (equinos, muares...) 2. Grupo e uso - Uso Animal select sum (qntd_anml) as Qntd_Animal, uso_anml as Uso_Animal from animal group by uso_anml; - Grupo e Uso select grp_anml as grupo_animal, sum(qntd_anml) as qntd_animal, uso_anml as uso_animal from tipo_animal as b inner join animal as a on (b.n_tanml = a.n_tanml) group by grp_anml, uso_anml order by qntd_animal desc; • Quanto aos cafezais dos cafeicultores escravistas
  76. 76. 76 1. Estado e quantidade. select estd_cult, count(estd_cult) from culturas where qntd != 1 group by estd_cult order by estd_cult desc;
  77. 77. 77 2. Valor unitário, estado e quantidade. select distinct valor_unit, estd_cult, qntd from culturas where qntd != 1; 3. Valor unitário, idade e quantidade. select valor_unit, idade, qntd from culturas where qntd != 1 and idade != 0; • Quanto às terras dos cafeicultores escravistas 1. Nº de propriedades e a área ocupada pelas mesmas: - 50 ou menos alqueires - 51 a 100 alq. - 101 a 200 alq. - 201 a 300 alq. - 301 a 400 alq. - 401 ou mais alq. - Sem tamanho definido select case when qntd_terra >=0.000001 and qntd_terra <= 50 then 'menos que 50 alq' when qntd_terra >=51 and qntd_terra <= 100 then 'entre 50 e 100 alq' when qntd_terra >=201 and qntd_terra <= 300 then 'entre 201 e 300 alq' when qntd_terra >=301 and qntd_terra <= 400 then 'entre 301 e 400 alq' when qntd_terra >=401 then 'mais que 401 alq' else 'sem tamanho definido' end as quantidade_terra, count(*) as quantidade
  78. 78. 78 from terras,inventariado where inventariado.n_ivtr = terras.n_ivt and inventariado.profissao like '%CAFEICULTOR%' group by case when qntd_terra >=0.000001 and qntd_terra <= 50 then 'menos que 50 alq' when qntd_terra >=51 and qntd_terra <= 100 then 'entre 50 e 100 alq' when qntd_terra >=201 and qntd_terra <= 300 then 'entre 201 e 300 alq' when qntd_terra >=301 and qntd_terra <= 400 then 'entre 301 e 400 alq' when qntd_terra >=401 then 'mais que 401 alq' else 'sem tamanho definido' end order by quantidade_terra;
  79. 79. 79 1.19. Processo de ETL Manual, Base de Dados Inicial Após feita a modelagem de dados e a definição da sua organização, foi utilizado o processo de ETL (Extração, Transformação e Carga), para remover inconsistências e para agilizar o processo de importação para o Banco de Dados. Foi realizado o processo de ETL na primeira versão da Base de Dados do historiador, manualmente, com utilização de recursos do próprio Excel (ou também em conjunto com o Bloco de Notas), necessitou a criação de uma nova pasta e outras planilhas. Pelo recurso Filtro, verificavam-se quais os dados possuíam informações que não condiziam com seu padrão, por exemplo, no campo Idade Escravo foi constatado o uso de caracteres I e C para identificar que alguns escravos eram Idosos ou Crianças, e este era um fator que poderia acarretar na inutilização do tipo de dados Integer ou até mesmo float (Integer, float, em português, Inteiro e ponto flutuante). Por recomendação do historiador, foram retiradas estas informações, deixados os campos que continham o caractere em campos com valor zero, mas, alguns campos idade impossibilitaram a utilização do tipo de dado Integer por possuírem casas decimais, então foi utilizado o tipo de dado float. Para se desenvolver a ideia de redução no volume de dados na criação de tabelas específicas como Tipo_Propriedade, agrupou-se os dados iguais e foi feita a numeração única de cada um deles, substituindo, assim, os dados caractere para dados numéricos. Foram sumarizados campo por campo por meio do recurso “filtrar” do Excel; Por haver a diferença de representação dos dados decimais foi necessária a mudança dos campos na base de dados do Excel para o formato padrão do PostgreSQL, foi necessário então o processo de ETL. Foi desenvolvida uma técnica manual capaz de atender as necessidades esperadas, que consistia em copiar os dados de valor decimal para um documento em branco do bloco de notas e ao se utilizar somente a opção Localizar/Substituir mudavam-se os pontos para vírgula e vice-versa. Este processo era feito em separado dos outros campos para evitar mudanças em campos não relacionados a essa regra; feita a alteração, os dados retornavam à plalinha ou arquivo de texto onde eram exportados ao Banco de Dados.
  80. 80. 80 Figura 15: Exemplo de ETL Manual, trocando ponto por vírgula nos campos de valor. Fonte: Os autores.
  81. 81. 81 1.20. Modelagem Multidimensional A Modelagem Multidimensional é considerada uma das etapas mais importantes do projeto, pois, além de ser responsável por expressar resultados que serão úteis ao historiador e de objeto de seu estudo, esta demandou a ampliação do conhecimento aprofundado para que haja uma modelagem completa, em atendimento ao que é esperado pelo historiador. Para efetuação da modelagem multidimensional necessitou-se da compreensão de qual o ponto foco para o historiador. Frente a toda a base de dados manipulada, pelo menos, constatou-se por meio de reuniÀ

×