A maneira mais comum de se armazenar dados hoje em dia é por tabelas. Usualmente, esses dados são armazenados de forma que cada tabela contêm um conjunto de dados de um mesmo contexto e uma coluna que permite interliga-la com outras tabelas. Esse tipo de modelo para bases de dados é chamado de Modelo Relacional, termo cunhado por Edgar Frank Codd em 1970.
O Zoho Analytics é uma plataforma de a análise de dados projetada para lidar com essas bases de dados relacionais. Entretanto, antes de sair fazendo varias análises e métricas sobre os dados da base, é necessário efetuar alguns processos para explicitar qual a relação entre as tabelas e garantir que as colunas de pesquisa (lookup column) concordam umas com as outras.
Essas colunas de pesquisa nada mais são que o ponto de equivalência entre as tabelas. Elas podem ser desde relações de igualdade direta ou relações que exigem algum tipo de alteração nos dados. Seja qual for a relação, a existência dessas colunas têm algumas vantagens para o tratamento de dados, como:
- Podem ser usadas para evitar dados duplicados.
- Servem como uma forma de segregar as métricas e dimensões da tabela, principalmente ao se utilizar funções agregadoras.
- Permitem a definição de modelos familiares à análise de dados, como o modelo Estrela e o Modelo Floco-de-neve.
Cardinalidade
Antes de definir as colunas de pesquisa, é importante se ter consciência de qual o tipo de relação entre os dados. Esses tipos são chamados de cardinalidade. Existem 3 tipos de cardinalidade no contexto do tratamento de dados:
- Um para um: São os dados que tem uma equivalência única entre si, isto é, para cada elemento na tabela A, existe uma única equivalência na tabela B, e vice-versa. Alguns exemplos do uso dessa relação:
- Cada pessoa possui um único CPF, e cada CPF representa uma única pessoa.
- Cada estado possui um único governador, e cada governador rege um único estado.
- Um para Muitos e Muitos para Um: São os dados em que em uma das tabelas ele aparece sem repetição, enquanto na segunda tabela eles sem repetem. Nesse caso a relação é escrita como: para cada elemento na tabela A, existe uma única equivalência na tabela B, mas cada elemento na tabela B pode ter varias equivalências na tabela A. Esse tipo de relação é muito utilizada em casos como:
- Cada pessoa possui uma data de nascimento, mas em uma data podem ter nascido varias pessoas.
- Cada cliente é atendido por um funcionário, mas um mesmo funcionário pode atender vários clientes.
- Cada deputado representa um estado, mas um estado é representado por vários deputados.
- Muitos para Muitos: são só dados que se repetem em ambas as tabelas, isto é, a tabela A contem varias equivalências na tabela B, e a tabela B tem vairas equivalências na tabela A. Esse tipo de Cardinalidade gera repetição dos dados, uma vez que a junção feita importa cada um dos pares de equivalência, por isso, ela deve ser usada com cuidado. Alguns exemplos desse tipo de relação:
- Uma pessoa pode ter mais de um endereço de entrega para suas encomendas, e um mesmo endereço pode receber encomenda de várias pessoas.
- Um vendedor pode vender vários produtos, e um mesmo produto pode ser vendido por vários vendedores.
- Uma criança pode ter mais de um responsável legal, e uma pessoa pode ter responsabilidade sobre varias crianças.
Auto-junção
O Zoho Analytics tem um sistema próprio para a junção das colunas chamado auto-junção. Esse tipo de junção pode ser efetuada de forma simples e rápida, como descrita aqui. Uma vez que a relação está estabelecida no sistema, colunas de diferentes tabelas podem ser utilizadas para análise nos relatórios. Nesse tipo de junção, é importante ressaltar que se realiza uma junção à esquerda, isto é, mantêm-se todos os dados da tabela filha (à esquerda) e apenas os dados com equivalência da tabela mãe( à direita). A auto-junção tem suporte para junção à direita também.
Consultas
Uma outra forma de relacionar os dados de das tabelas diferentes é utilizando as chamadas Tabelas de consulta (query tables). Esse tipo de junção é feita usando a sintaxe SQL SELECT, gerando uma tabela com os dados importados de acordo com a junção estabelecida. As tabelas de consultas são muito utilizadas dada a familiaridade dos usuários com a linguagem SQL SELECT e a alta versatilidade a respeito da modelagem dos dados. Um tutorial para esse tipo de processo pode ser encontrado aqui.