Lendo este post me deparei com um daqueles aforismos confucionais:


A sabedoria nasce quando se chama as coisas pelo seu verdadeiro nome. Confúcio


Procurei um pouco pela web para confirmar um mínimo de autenticidade, mas não consegui – talvez seja de um livro sobre ele, vai saber. Mesmo assim, não deixa de ter o seu sentido, tanto que eu abri este ano com um post exatamente sobre esse tema.

Coincidência ou não, exatas duas horas depois Um grande amigo meu me mandou uma pergunta assim:


“Meu amigo, hoje na universidade surgiu uma divergência entre mim e um colega quanto ao que se chama de fato. Para ele, cada medida, por si só e sem relacionamento com uma dimensão; para mim, fato é uma medida no contexto de uma dimensão. Ou seja, para ele, quantidade de examines realizados = fato; para mim, fato seria quantidade de exames realizados em determinado ano e/ou hospital, cidade etc. O que é correto chamar de fato?”


Não tive como evitar: escrevi este post. :-) Era muita dica junto!

O Que É um Fato?

A maior dificuldade para entender definições de BI, na minha opinião, é que não existe uma resposta correta. Depedendo do ângulo pelo qual se analisa uma definição de BI, ela pode ser correta, errada ou nem uma coisa, nem outra. É enervante, para dizer o mínimo.

Em princípio, os dois estariam corretos: um fato é tanto um número puro, quanto um número em um contexto.

Só que o debate entre os dois é sobre uma terminologia desenvolvida no contexto de Modelagem Dimensional, que é a técnica (praticamente) sinônimo de DW, formalizada por Ralph Kimball. Portanto, para avaliar qual das duas afirmações está correta temos que considerá-las à luz da tal Modelagem Dimensional.

Direto da segunda edição do The DW Toolkit, 2a. edição:

Definição de fatos por Kimball (Loc 415.)
Definição de fatos por Kimball (Loc 415.)

Traduzindo:

Uma tabela fato é a tabela primária em um modelo dimensional na qual as medidas numéricas do rendimento do negócio são armazenadas(…).

Nós usamos o termo fato para representar uma métrica do negócio.

A frase não deixa dúvidas: uma tabela fato agrupa medidas numéricas do negócio. E mais: tabela de clientes reúne clientes, tabela de produtos reúne produtos, tabela de fatos… reúne fatos. Portanto, um fato é uma “medida numérica do rendimento do negócio”, o que coloca como certo o colega do meu amigo.

Tocando a tela do Kindle somos levados para a página seguinte do livro:

Outra definição de fatos, também por Kimball (Loc 419.)
Outra definição de fatos, também por Kimball (Loc 419.)

Arre égua! Arre égua dupla!

Uma medida é tomada como a intersecção de todas as dimensões (dia, produto e loja.)

Justapondo as duas afirmações chegamos a uma definição mais completa:


Uma medida numérica do rendimento do negócio, chamada de métrica, é tomada como a intersecção de todas as dimensões e representa uma linha em uma tabela fato.


Agora o jogo virou para o lado do meu amigo: um fato é um número acompanhado de suas dimensões. Mesmo assim, a definição de seu colega seria menos completa, mas não incorreta.

Invisível a Olhos Não Treinados

Seria, mas não é.

Como eu não me canso de dizer, eu sou um físico – mequetrefe, é verdade, mas me orgulho disso. Talvez a habilidade mais importante em um profissional dessa área seja a capacidade de interpretar a realidade para formulá-la em termos conceituais e, a partir daí, tentar extrapolá-la, ou como se diz no jargão, resolvê-la. Vem daí o meu apreço pelo conceitual, pelo embasamento teórico nas ações práticas.

Vamos reler a afirmação do meu amigo:


(…)Para ele, cada medida, por si só e sem relacionamento com uma dimensão(…), quantidade de examines realizados = fato;


Vamos reescrever usando termos genéricos:

Fato é uma quantidade de algo.

Veja, essa definição seria totalmente vã, incompleta, se não explicitarmos que algo é esse. No caso em análise, esse algo é “quantidade de exames”. Quantidade de exames não tem o menor significado por si só. Para que possamos medir a “quantidade de exames” precisamos identificar que exames são esses – logo o qualificador da quantidade, exames, já é em si contexto e, portanto, um atributo dimensional.

Vamos colocar de outra forma: seja um exame qualquer. Ele responde pela quantidade “um”: um exame. Em uma tabela ele aparece desta maneira:

Exame Quantidade
X 1

Uma coleção de fatos apareceria assim:

Exame Quantidade
X 1
Y 1
Z 1
W 1
1

Viram? Exame é uma dimensão! Logo, a definição “quantidade de exames realizados = fato” embute a contagem de uma dimensão, na qual é contado um item para cada membro. Vai daí que estamos a falar de uma dimensão com uma métrica (uma medida) constante e igual a um para todos os membros desta dimensão.

Resumindo: ambos falaram a mesma coisa, apenas não se deram conta do fato – sorry, era um trocadilho bom demais para deixar passar! :-)

Mas não acabou.

Se você ler o livro Fast Track to MDX vai entrar em contato com uma coisa chamada membro default:

Membro default é visto no décimo capítulo de um livro chamado "atalho". Imagine a pedreira que é o assunto...
Membro default é visto no décimo capítulo de um livro chamado “atalho”. Imagine a pedreira que é o assunto…

O conceito é extenso para ser visto em um pedaço de um post sobre outro tópico mas, grosso modo, o tal membro default é um atributo de um cubo definido no Microsoft SQL Server Analysis Services (MS SSAS) que diz ao servidor OLAP (o SSAS) que nível de uma dada dimensão deve ser usado para resolver consultas que não explicitam essa dada dimensão.

O default do membro default é o All, ou seja, o topo do hierarquia daquela dimensão. A figura abaixo mostra como o SSAS lida com isso:

Como o SSAS seta o membro default.
Como o SSAS seta o membro default.

Entenderam? Quando pegamos uma métrica que é medida em um determinado contexto, podemos explicitar ou não todas as dimensões envolvidas. O que o colega do meu amigo fez foi olhar para um cubo com inúmeras dimensões e ver apenas uma – exame – assumindo todas as outras em seus membros defaults!

Podemos reescrever essa definição incluindo esses membros defaults. Ficaria assim:

quantidade de exames realizados
  ... em todos os hospitais
  ... em todas as datas
  ... em todos os pacientes
  ... de todos os tipos
<etc. etc. etc.>

Ficou claro agora?

Até a próxima! ;-)

2 comentários sobre “Confúcio & BI: O Que São Fatos?

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s