Skip to content

Aba Tabelas (Modelo de Dados)

A aba Tabelas é onde se define o Modelo de Dados da Aplicação. Nela, são selecionadas quais Tabelas do HorusDW estarão disponíveis para análise e como elas se relacionam entre si.

TIP

Um Modelo de Dados bem construído é a base para filtros automáticos, análises consistentes e respostas precisas da IA.


🖥️ Visão Geral da Interface

A tela é dividida em três áreas:

  1. Canvas Central — Área visual onde as Tabelas são posicionadas e conectadas por linhas de Relacionamento
  2. Sidebar Esquerda — Lista de Tabelas disponíveis no HorusDW para adicionar ao modelo
  3. Sidebar Direita — Propriedades da Tabela ou Relacionamento selecionado

➕ Adicionando Tabelas

Pela Sidebar

  1. Abra a Sidebar esquerda clicando no ícone de menu
  2. Navegue pelas Tabelas disponíveis (organizadas por Mesa)
  3. Clique na Tabela desejada para adicioná-la ao Canvas

As Tabelas adicionadas aparecem como "nós" no Canvas central, exibindo:

  • Nome da Tabela
  • Lista de colunas disponíveis
  • Indicador visual de colunas usadas em Relacionamentos

🔗 Criando Relacionamentos

Os Relacionamentos (ou Joins) definem como diferentes Tabelas conversam entre si. Na prática, funcionam como um cruzamento automático de informações: ao aplicar um filtro em uma Tabela de referência (selecionar um "Cliente"), o sistema propaga esse filtro automaticamente, exibindo apenas os dados correspondentes nas outras Tabelas conectadas (as "Vendas" daquele cliente).

Direção e Cardinalidade

Todos os Relacionamentos no Horus são direcionais e do tipo um-para-muitos (1:N). A seta no Canvas aponta da Tabela com valores únicos (1) para a Tabela com valores repetidos (N):

Na prática:

  • A Tabela de origem da seta (Clientes) deve ter valores únicos na coluna de chave — cada cliente aparece uma única vez
  • A Tabela de destino da seta (Vendas) pode ter valores repetidos — um cliente pode ter muitas vendas

O sistema valida essa unicidade ao salvar. Se a coluna de chave da Tabela de origem contiver valores duplicados, o salvamento será bloqueado com um erro. Isso garante que os dados não sejam multiplicados incorretamente.

TIP

Uma forma simples de pensar: a seta sempre sai da Tabela de referência (Dimensão) e aponta para a Tabela de Dados (Fato). A Dimensão tem registros únicos (cada cliente, cada produto, cada data), a Fato tem os eventos que se repetem (vendas, pedidos, metas).

Tipo de Tabela

Ao selecionar uma Tabela no Canvas, a Sidebar exibe o campo Tipo da Tabela com duas opções:

TipoQuando usar
NormalTabelas comuns — Dimensões (chave única) e Fatos (eventos). É o padrão.
Tabela de Ligação (n-n)Tabelas intermediárias para Relacionamentos muitos-para-muitos. Ex: uma Tabela Aluno_Curso que liga Alunos a Cursos, onde cada aluno pode ter vários cursos e cada curso vários alunos.

O DataViz não suporta Relacionamentos muitos-para-muitos diretos — sempre é necessária uma Tabela intermediária. Ao marcar uma Tabela como Tabela de Ligação (n-n), o sistema entende que ela funciona como ponte e relaxa a exigência de unicidade nessa Tabela.

Passo a passo para conectar Tabelas

  1. Inicie a conexão (Arraste e Solte): Clique e segure o mouse sobre a primeira Tabela e arraste até a segunda Tabela que deseja conectar.

  2. Confirme a ligação visual: Ao soltar, uma linha de conexão aparecerá na tela.

  3. Configure as colunas de chave: No painel lateral direito, selecione as colunas que representam o mesmo dado em ambas as Tabelas.

    • Exemplo: Ligar Clientes.ID_CLIENTE com Vendas.ID_CLIENTE.

Configurando as Colunas de Chave

Após criar a conexão visual, é necessário especificar quais colunas conectam as Tabelas:

CampoDescrição
Coluna EsquerdaColuna da Tabela de origem (chave única)
Coluna DireitaColuna da Tabela de destino (chave estrangeira)

IMPORTANT

As colunas devem ter tipos compatíveis. O sistema validará automaticamente e alertará sobre incompatibilidades.


✅ Validações Automáticas

Ao salvar, o sistema verifica automaticamente a integridade do modelo:

Relacionamentos Incompletos

Toda linha de conexão deve ter as colunas de chave definidas. Relacionamentos sem configuração impedem o salvamento.

Chaves Duplicadas na Origem

A coluna de chave da Tabela de origem (lado "1" do Relacionamento) deve conter valores únicos. Se o sistema detectar duplicatas, o salvamento será bloqueado.

Soluções sugeridas:

  • Escolher uma coluna diferente para a chave
  • Corrigir os dados duplicados na origem (HorusDW)
  • Adicionar mais colunas à chave (chave composta)

⚠️ Relacionamento entre Tabelas Fato

Tabelas Fato (como Vendas e Metas) normalmente não possuem chaves únicas entre si — ambas contêm eventos repetidos. Por isso, conectar duas Fatos diretamente não funciona: nenhuma das duas consegue ser o lado "1" do Relacionamento, e o resultado seria uma multiplicação incorreta dos dados (explosão cartesiana).

WARNING

A solução para este caso é conectar Fatos através de Dimensões compartilhadas (Tabelas de Referência com chaves únicas). Consulte o guia completo de Modelagem de Dados para entender o problema, as soluções e testar com exemplos interativos.


🛠️ Funcionalidades Adicionais

Visualizar Dados da Tabela

Passe o mouse sobre uma Tabela e selecione "Visualizar Dados" para ver uma amostra dos registros armazenados.

Trocar Tabela

Para substituir uma Tabela por outra (mantendo os Relacionamentos existentes), passe o mouse sobre a Tabela e selecione "Trocar Tabela". Útil quando:

  • A Tabela foi renomeada no HorusDW
  • É necessário utilizar uma versão diferente dos mesmos dados

Recalcular Posições

Se as Tabelas ficarem sobrepostas ou desorganizadas no Canvas, utilize o botão "Recalcular Posição" para reorganizar automaticamente o layout.

Remover Tabela ou Relacionamento

Selecione o item e pressione Delete ou Backspace.


🔀 Relacionamentos Secundários

Quando uma Tabela possui múltiplas colunas que podem se conectar à mesma Dimensão, é possível configurar Relacionamentos Secundários (também chamados de "Relacionamentos Alternativos"). Isso é essencial para análises que precisam utilizar diferentes chaves de data ou referência.

Configurando Múltiplas Chaves de Relacionamento

Na Sidebar de configuração do Relacionamento, é possível adicionar mais de uma coluna de chave:

  1. Selecione o Relacionamento entre duas Tabelas
  2. Na Sidebar direita, será exibida a lista de chaves configuradas
  3. Clique em "+ Adicionar Chave" para incluir colunas alternativas
  4. O primeiro Relacionamento da lista é o padrão (usado automaticamente)
  5. Os demais ficam disponíveis para uso com a função use() nas Expressões

Exemplo de configuração:

OrdemChave Primária (Calendário)Chave Estrangeira (Oportunidades)Uso
PeríodoData de FechamentoPadrão - usado automaticamente
PeríodoData de Ganho da OportunidadeDisponível via use()
PeríodoData de Perda da OportunidadeDisponível via use()

IMPORTANT

A ordem dos Relacionamentos importa! O primeiro é sempre o padrão. Arraste para reordenar se necessário.

Usando Relacionamentos Alternativos nas Expressões

Na aba Expressões, a função use() permite alternar qual Relacionamento está ativo:

sql
-- Soma de valores pela data de ganho (ao invés da data padrão)
use([Calendário], [Oportunidades].DATA_GANHO) SUM([Oportunidades].VALOR)

-- Soma de valores pela data de perda
use([Calendário], [Oportunidades].DATA_PERDA) SUM([Oportunidades].VALOR)

TIP

A coluna usada em use() deve estar cadastrada como Relacionamento Secundário na aba Tabelas. Caso contrário, o sistema não encontrará a chave.

WARNING

Limitações do use():

  • Aceita apenas colunas físicas da Tabela, não Expressões/colunas calculadas
  • Chaves compostas não são suportadas - aceita apenas uma coluna como chave

Para cenários que exigem chaves compostas ou uso de Expressões, recomenda-se criar uma coluna calculada no HorusDW que concatene/processe as chaves (CONCAT(COD_FILIAL, '_', COD_PRODUTO)) e utilizar essa coluna física como chave do Relacionamento.


⌨️ Atalhos de Teclado

AtalhoAção
Delete ou BackspaceRemove a Tabela ou Relacionamento selecionado
Ctrl + SSalva as alterações
Scroll do mouseZoom in/out no Canvas
Arrastar o CanvasMove a visualização

🎯 Filtros Pré-Aplicados

Ao selecionar uma Tabela no Canvas, a Sidebar localizada à direita exibe a seção Filtros Pré-Aplicados. São filtros fixos que o sistema aplica automaticamente em toda consulta que envolver aquela Tabela.

Para que servem

SituaçãoExemplo
Restringir o escopo de dadosSó produtos do tipo Combustível
Excluir registros irrelevantesRemover clientes inativos
Controlar acesso por filialSó dados da filial São Paulo

Propagação automática de filtros

Um filtro colocado numa Tabela de Referência (Dimensão) se propaga para todas as Tabelas de Dados (Fatos) conectadas a ela. Não é necessário repetir o mesmo filtro em cada Tabela.

Exemplo: Ao aplicar Tipo = "Combustível" na Tabela Produto, as consultas de Vendas, Estoque e Compras conectadas a Produto já trazem apenas combustíveis automaticamente.

A propagação também funciona em cadeia: se Categoria filtra Produto, e Produto está conectado a Vendas, o filtro de Categoria já reflete nas Vendas.

Como funciona a propagação entre Dimensões

Quando duas Tabelas de Referência (Dimensões) estão conectadas às mesmas Tabelas de Dados, os filtros de uma podem afetar os resultados da outra — mas apenas se o Relatório incluir colunas da Tabela de Dados que conecta ambas.

Exemplo: Calendário e Empresa estão ambos conectados a Faturamento.

  • Se o Relatório inclui SUM(Faturamento.Valor) e Empresa.Nome, o filtro de Calendário será aplicado — porque Faturamento já faz parte da consulta e conecta as duas Dimensões
  • Se o Relatório inclui apenas Empresa.Nome (sem colunas de Faturamento), o filtro de Calendário não afeta a lista de empresas — o sistema reconhece que Faturamento está presente apenas pelo filtro e não cria a ponte entre elas.

Esse comportamento é o esperado na maioria dos cenários analíticos:

  • Um filtro de Filial = "São Paulo" na Tabela Empresa faz com que a lista de Vendedores exiba apenas os da filial SP — desde que o Relatório utilize colunas da Fato que conecta ambos
  • Um filtro de data no Calendário filtra vendedores quando o Relatório consulta dados de vendas no período

TIP

Para visualizar todos os registros de uma Tabela de Referência (listar todas as empresas cadastradas), basta não incluir colunas da Tabela de Dados que conecta as Dimensões no mesmo Relatório, ou consultar a Tabela diretamente pelo HorusDW.

Filtros em Tabelas Fato NÃO propagam para Dimensões

Filtros Pré-Aplicados em Tabelas de Dados (Fatos) não são incluídos na consulta quando o Relatório contém apenas colunas de Tabelas de Referência (Dimensões). A Tabela Fato só participa da query se houverem colunas selecionadas no Relatório.

Exemplo: Se Vendas tem um Filtro Pré-Aplicado STATUS = 'ATIVO' e o Relatório consulta apenas Calendario > Mês, a consulta retornará todos os meses do Calendário sem filtrar por Vendas.

Da mesma forma, filtros entre duas Dimensões conectadas apenas via uma Fato só se aplicam se o Relatório incluir colunas dessa tabela. Sem a Fato no Relatório, não há caminho de JOIN válido entre as Dimensões, e o filtro é ignorado.

💡 Dicas para Filtros Pré-Aplicados

  • Adicione o filtro na Tabela de Referência (Dimensão) — não na Tabela de Dados (Fato) — para propagação automática em todas as Fatos conectadas. Além de mais simples, isso evita efeitos colaterais
  • Não duplique filtros em várias Tabelas. Um filtro na Dimensão já basta
  • Quanto mais conexões o modelo tiver, mais os filtros se propagam entre si. Modelos bem organizados (Star ou Snowflake) minimizam propagações indesejadas

Exemplo prático: Se a Aplicação tem as Fatos Faturamento, Clientes e Estoque, e são configurados Filtros Pré-Aplicados em cada uma delas, ao consultar apenas Empresa > Nome no Explorer, o filtro de Fato será ignorado porque nenhuma Fato tem colunas selecionadas. Se o filtro estivesse na Dimensão Empresa, ele seria aplicado diretamente.


💡 Boas Práticas

  1. Use nomes claros — Renomeie as Tabelas no HorusDW para facilitar o entendimento
  2. Evite ciclos — Não crie Relacionamentos circulares entre Tabelas
  3. Documente Relacionamentos Secundários — Adicione comentários para mapear quando usar cada caminho
  4. Estruture o modelo em Star ou Snowflake — Dimensões no centro, Fatos conectadas a elas. Evite conexões diretas entre Fatos ou entre Dimensões não relacionadas