DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

Business Intelligence: Desenvolvendo Soluções no Oracle

Veja neste artigo como desenvolver soluções de Business Intelligence com o banco de dados Oracle.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

As próximas colunas abordarão o conceito de Business Intelligence dentro do banco de dados Oracle.

Todos sabemos como é importante extrair informações gerenciais do banco de dados. Ter acesso aos dados transacionais (ou relacionais, como prefira no banco de dados é uma realidade para praticamente todas as empresas.

Sistemas de gerenciamento empresarial (ERP) são responsáveis por armazenar e manter dados sob a rígida fiscalização e controle de processos. Isso faz com que as empresas consigam manter as operações básicas do dia-a-dia, como Folha de Pagamento, Recebíveis, Pagamentos e Controle Contábil. Porém, ter as operações controladas já não é suficiente em um ambiente de alta competitividade.

Para se tomar decisões, é necessário ter acesso ao maior volume de informações possível, dentro de um prazo razoável e de uma maneira permita analisar os dados com facilidade. Dentro desta perspectiva surgiu a necessidade de se adaptar os dados transacionais para que fosse possível extrair informações gerenciais.

Conceitualmente os primeiros são chamados de OLTP (Online Transaction Processing) e os segundos de DSS (Decision Support System). Conceitos

Em uma rápida pesquisa na Internet, pode-se encontrar facilmente diversos conceitos relacionados ao Business Intelligence. Na Wikipedia encontra-se:

  • Data Warehouse (DW): sistema de comliutação utilizado liara armazenar informação relativa às atividades de uma emliresa em bancos de dados, de forma consolidada.
  • Data Mart: sub-conjunto de dados de um Data Warehouse. Geralmente são dados referentes a um assunto em esliecial ou diferentes níveis de sumarização.
  • Business Intelligence (BI): é um conjunto de metodologias de gestão imlilementadas através de ferramentas de software, cuja função é liroliorcionar ganhos nos lirocessos decisórios gerenciais e da alta administração nas organizações.

Estas, dentre uma infinidade de outras definições, deixam claro o que se quer alcançar com estes três componentes básicos: a inteligência por trás dos dados. Em maior ou menor grau, com maior ou menor abrangência, ter acesso às informações armazenadas e extrair destes dados subsídios para tomada de decisão é fundamental para sobrevivência das empresas. Necessidades

O mercado de BI é um dos que mais tem crescido ao longo dos últimos anos. Por este motivo os fornecedores de banco de dados têm procurado atender a esta demanda oferecendo produtos cada vez mais competitivos.

Por outro lado, o mercado de trabalho exige um profissional cada vez mais competente para lidar com esta demanda. Sem nos aprofundarmos neste aspecto, está claro que o profissional de BI deve aliar competências técnicas no banco de dados ao conhecimento do negócio da empresa.

Cada vez mais os produtos de BI deixam de ser uma “caixa preta” e passam a compor o negócio da empresa. Isso faz com que todos os profissionais envolvidos no processo assumam riscos e responsabilidades. No BI tradicional havia a preocupação em levar informações aos usuários. No atual, deve-se criar inteligência nos processos do negócio. Processo

O processo básico que está por trás de um BI é identificar padrões nos dados armazenados. Com base nestes padrões é possível propor análises que possam prever o comportamento de um determinado perfil, seja cliente, produto, período, etc. Com isso é possível extrair informações importantes para a área financeira, marketing, segurança, etc. Oracle 10g R 2

Nesta versão do Oracle foi disponibilizado o pacote DBMS_PREDICTIVE_ANALYTICS. Através deste pacote é possível medir o grau de aderência dos dados às previsões que se pode realizar.

A estrutura do pacote é:

PROCEDURE EXPLAIN

Argument Name Type In/Out Default?
DATA_TABLE_NAME VARCHAR2 IN
EXPLAIN_COLUMN_NAME VARCHAR2 IN
RESULT_TABLE_NAME VARCHAR2 IN
DATA_SCHEMA_NAME VARCHAR2 IN DEFAULT

PROCEDURE PREDICT

Argument Name Type In/Out Default?
ACCURACY NUMBER OUT
DATA_TABLE_NAME VARCHAR2 IN
CASE_ID_COLUMN_NAME VARCHAR2 IN
TARGET_COLUMN_NAME VARCHAR2 IN
RESULT_TABLE_NAME VARCHAR2 IN
DATA_SCHEMA_NAME VARCHAR2 IN DEFAULT

O objetivo dos procedimentos são:

– Procedimento EXPLAIN: analisa o conjunto de dados para explicar o valor de cada atributo. Quanto maior o valor, mais forte o relacionamento entre os dados.

– Procedimento PREDICT: retorna um conjunto de valores que permite analisar o grau de confiança na previsão do conjunto de dados.

Imagine que uma empresa tenha um problema para analisar. Este problema está relacionado ao pagamento que os clientes realizam todos os meses. A proposta é realizar um estudo sobre as prestações do cadastro. Sabe-se que o estágio de pagamento das prestações segue a tabela a seguir:

Estágio de Recebimento das Parcelas
R – Renegociado
P –Parcialmente recebido
A – Aberto / Não recebido
B – Baixado / Quitado
X – Renegociado

Inicia-se o processo de análise com a Explicação dos dados da tabela PARCELA e com base na coluna de estágio de recebimento. O comando a seguir cria a tabela REC_RESULTADOS e atribui o conteúdo da análise realizada. Note que, como a tabela será criada, caso você queira fazer diversas análises precisará apagar a tabela REC_RESULTADOS ou criar tabelas com outros nomes para novas análises.

begin

 DBMS_PREDICTIVE_ANALYTICS.EXPLAIN(

   DATA_TABLE_NAME => 'PARCELA',

   EXPLAIN_COLUMN_NAME => 'STPARCELA',

   RESULT_TABLE_NAME => 'REC_RESULTADOS' );

end;

/

SELECT * FROM REC_RESULTADOS;
ATTRIBUTE_NAME EXPLANATORY_VALUE RANK
CDCONTR ,572647579 1
DTVENC_YYYY ,281829136 2
NRPARCELA ,261050041 3
DTVENC_DD ,248689654 4
NRSEQUENCIA ,246277295 5
CDSERIE ,071490398 6
DTVENC_DDD ,008667611 7
CDRENEG ,001523855 8
DTVENC_WW ,00018959 9
DTVENC_HH24 0 10
DTVENC_MI 0 10
DTVENC_MM 0 10
DTVENC_D,071490398 0 10

Pode-se notar que o procedimento realizou uma análise que retornou o grau de confiança para se prever algo em cada campo da tabela PARCELA.

O comando a seguir irá analisar o processo de previsão com base no resultado do comando anterior.

SET SERVEROUTPUT ON

DECLARE

   v_predict_accuracy NUMBER(30,10);

BEGIN

   DBMS_PREDICTIVE_ANALYTICS.PREDICT (

       ACCURACY            => v_predict_accuracy,

       DATA_TABLE_NAME     => 'PARCELA',

       CASE_ID_COLUMN_NAME => 'CDCONTR',

       TARGET_COLUMN_NAME  => 'STPARCELA',

       RESULT_TABLE_NAME   => 'REC_PREVISAO');

      
   DBMS_OUTPUT.PUT_LINE('*** Accuracy ***');

   DBMS_OUTPUT.PUT_LINE(v_predict_accuracy);

END;

/

*** Accuracy *** 
,5727376841

O resultado anterior indica que, com base nas colunas que foram rankeadas de 1 a 9 na listagem anterior, pode-se considerar um grau de acerto de mais de 57% sobre os dados analisados.

Quando se pesquisa a tabela criada (REC_PREVISAO), obtém-se a probabilidade de cada contrato por tipo de parcela. Isso porque foram estes os campos atribuídos ao procedimento PREDICT para análise. Em CASE_ID foi colocada a chave para análise e em TARGET_COLUMN_NAME a coluna alvo da análise. Nota-se que o banco de dados retornou, para cada contrato, a coluna mais provável e a probabilidade de ocorrência.

CDCONTR PREDICTION PROBABILITY
1 X ,332324415
2 X ,333333343
3 B ,19823128
5 A ,249942511
6 R ,229957595
7 A ,245485559
8 B ,19823128
10 B ,191841915
11 P ,172297433
12 A ,249915019
13 B ,199963599
14 B ,199917749
15 B ,19616136
16 B ,189381897
17 B ,199595645
18 R ,229957595
19 B ,192676052
20 A ,248632267
21 A ,248632267
22 R ,217115507
23 R ,217115507
24 R ,217115507
25 B ,188040942
26 A ,239121288

Agora você já pode praticar um pouco e extrair suas próprias conclusões através da análise dos dados coletados. Na próxima edição, vamos ver uma ferramenta gráfica (e grátis) da Oracle que nos permite realizar este trabalho de uma maneira mais simpática. Esta ferramenta é o Oracle Data Miner.

Veremos agora como utilizar o Oracle Data Miner, uma ferramenta visual e gratuita da Oracle para extrair os mesmos dados, mas de uma maneira bem mais simpática.

O Oracle Data Miner pode ser obtido gratuitamente no Portal de desenvolvimento da Oracle: http://www.oracle.com/technology/products/bi/odm/odminer.html.A instalação é bastante simples, como tem sido com a maior parte das ferramentas da Oracle desenvolvidas em Java. Depois de criar um diretório (exemplo: c:\oracle\odm) e extrair os dados do arquivo ZIP, você deve clicar duas vezes em ODMINERW.EXE que se encontra no subdiretório BIN.

A primeira coisa a fazer é definir uma configuração de acesso ao banco de dados. Você encontrará a tela da Figura 1:

Configuração da conexão com o banco de dados

Figura 1. Configuração da conexão com o banco de dados

Dê um nome à sua conexão, informe o usuário, senha, servidor, porta de comunicação e SID ou nome do serviço. Logo após clicar em OK, você terá a validação do seu ambiente. Em caso de falha, verifique os dados informados. Caso você tenha problemas, verifique com o administrador do seu ambiente se tudo está correto. Estes dados são os mesmos que você utiliza normalmente para se conectar ao banco de dados, portanto você não deverá encontrar dificuldades.

A Figura 2 mostra a tela inicial do ODM.

Tela inicial do Oracle Data Miner

Figura 2. Tela inicial do Oracle Data Miner

De todas as opções que aparecem, a primeira que nos interessa é “Data Sources”, pois aqui estarão os schemas que possuem as tabelas que serão analisadas.

Conforme você pode notar na Figura 3, no schema SGI já estão criadas as duas tabelas do artigo anterior: AA_EXPLAIN_RESULTS (REC_RESULTADOS) e AA_PREDICT_RESULTS (REC_PREVISAO). Troquei os nomes das tabelas apenas para facilitar a localização na ferramenta.

Dados extraídos do EXPLAIN

Figura 3. Dados extraídos do EXPLAIN

Veja que os mesmos dados que foram mostrados na busca que realizamos no SQL*Plus estão disponíveis na ferramenta. As vantagens começam no volume de informações que temos disponível: podemos ver a estrutura da tabela criada (Figura 4). Uma outra vantagem é a possibilidade de exportar os dados para uma planilha Excel, simplesmente clicando no botão destacado.

Estrutura da tabela criada no EXPLAIN

Figura 4. Estrutura da tabela criada no EXPLAIN

Uma outra vantagem é que podemos realizar o mesmo trabalho que fizemos anteriormente selecionando a tabela (ou visão) e, com o botão direito, selecionar se queremos fazer uma previsão (PREDICT) ou explicação (EXPLAIN), conforme Figura 5.

Opções para gerar automaticamente o PREDICT e o EXPLAIN

Figura 5. Opções para gerar automaticamente o PREDICT e o EXPLAIN

Ao clicar em qualquer uma das duas opções, o ODM abre um wizard para conduzir a criação das tabelas (Figura 6).

Wizard para o EXPLAIN

Figura 6. Wizard para o EXPLAIN

Você seleciona o atributo que quer explicar (Figura 7):

Seleção do atributo

Figura 7. Seleção do atributo

E atribui um nome à tabela que será criada (Figura 8):

Definição do nome da tabela

Figura 8. Definição do nome da tabela

Pronto! O trabalho está realizado. O mesmo processo pode ser feito com o PREDICT.

Outros trabalhos relacionados à extração de dados gerenciais podem ser realizados no ODM, conforme você pode ver na Figura 9.

Opções de Transformação para análise de dados gerenciais

Figura 9. Opções de Transformação para análise de dados gerenciais

Até a próxima!



Celso Henrique Poderoso de Oliveira (cpoderoso@gmail.com) é Mestre em Tecnologia, consultor em banco de dados, coordenador dos cursos superiores de tecnologia da FIAP (Faculdade de Informática e Administração Paulista) e professor [...]

O que você achou deste post?
Conhece a assinatura MVP?

Mais posts