Pular para o conteúdo

Além da ementa · tema 20 de 30

Modelagem de dados

35 min · 2 vídeos · 14 cards · 1 drill

Por que cai

Modelagem é onde a banca vê se você pensa antes de escrever pipeline. Perguntar o grão de um fato é o teste mais rápido para saber se a pessoa já modelou de verdade ou só consumiu tabela pronta.

Pré-teste · 1 de 2

responda antes de ver

Você vai modelar o fato de transações de cartão. Qual declaração de grão é utilizável?

Confiança:

Vídeo · português · 17 min

Vai direto em fato, dimensão e grão sem rodeio. Assista com papel do lado e desenhe o star schema de transações de cartão em paralelo, porque é isso que a banca vai pedir.

Em uma frase

Modelagem de dados é decidir o que uma linha representa e como o contexto se liga a ela — normalizando quando a carga é transacional, dimensionalizando quando a carga é analítica.

3NF serve ao OLTP

Normalizar até a terceira forma normal elimina redundância e dependência transitiva: cada fato fica em um lugar só, e atualizar o nome de um estabelecimento muda uma linha. Isso é exatamente o que um core bancário precisa, onde a escrita é constante e a integridade por linha é o produto.

O preço é junção. Uma consulta analítica que atravesse oito tabelas normalizadas paga oito joins, e num motor distribuído cada join é um candidato a shuffle.

Modelagem dimensional de Kimball

Comece pelo grão

grãoA frase que define o que uma linha da tabela fato representa. "Uma linha por autorização de cartão" é um grão; "dados de cartão" não é.

Declarar o grão primeiro não é formalidade. Ele determina quais dimensões são aplicáveis, quais medidas são aditivas e qual teste de unicidade prova que a carga está certa. Modelo que começa pela lista de colunas quase sempre produz grão misto — linhas de transação convivendo com linhas de agregado mensal — e o erro só aparece quando alguém soma tudo e o número dobra.

Prefira o grão atômico. Do evento você deriva qualquer agregado; do agregado você não recupera o evento.

Fato e dimensão

Tabela fatoTabela dimensão
GuardaEvento mensurável e chaves de dimensãoContexto descritivo
TamanhoCresce sem pararPequena e relativamente estável
ExemploTransação de cartão, transferência PIXCliente, conta, estabelecimento, data
Uso na consultaSomar, contar, medirFiltrar e agrupar

Três tipos de fato aparecem sempre em banco: transacional (uma linha por evento), snapshot periódico (saldo da conta no fim de cada dia) e snapshot acumulado (a proposta de crédito, atualizada a cada etapa). Saldo é medida semiaditiva: soma entre contas, não soma ao longo do tempo — dizer isso rende ponto.

Star, snowflake e dimensão conformada

Star mantém cada dimensão numa tabela desnormalizada, com redundância assumida. Snowflake quebra a dimensão em níveis. A economia de espaço do snowflake é pequena e o custo em joins é real, então o padrão é star, com snowflake apenas onde a hierarquia é grande e volátil.

Dimensão conformada é a mesma dimensão, com a mesma definição e as mesmas chaves, compartilhada por vários fatos. É o que permite pôr receita de cartão e receita de crédito lado a lado por cliente e por mês. Sem ela, cada área traz o seu "cliente" e o painel não fecha.

SCD: o que fazer quando a dimensão muda

O cliente muda de endereço. Três respostas possíveis:

TipoO que fazQuando usar
Tipo 1Sobrescreve o valor antigo, sem históricoCorreção de erro de digitação, atributo que o negócio não analisa no tempo
Tipo 2Encerra a versão vigente e insere uma nova linha com nova chave substitutaAtributo que o negócio precisa analisar historicamente: região, segmento, faixa de risco
Tipo 3Guarda o valor anterior numa coluna paralelaUm único nível de histórico, típico de reclassificação pontual

Como se implementa o tipo 2, na prática:

  1. 1A dimensão ganha chave substituta (surrogate), além da chave natural do cliente.
  2. 2Ganha também data de início de vigência, data de fim e uma flag de versão corrente.
  3. 3Na carga, comparam-se os atributos monitorados com a versão vigente; se algum mudou, a linha atual recebe data de fim e a flag cai.
  4. 4Insere-se uma nova linha com nova chave substituta, data de início igual à data da mudança e fim em aberto.
  5. 5Na carga do fato, a chave de dimensão é resolvida por busca com faixa de vigência: a versão que valia na data do evento.

Data Vault, em resumo

Três construções: hub guarda a chave de negócio, link guarda o relacionamento entre hubs, satellite guarda os atributos descritivos com histórico e origem. O modelo é feito para integrar e auditar, não para consumir.

Faz sentido quando há muitas fontes heterogêneas, exigência forte de rastreabilidade e regras de negócio ainda em movimento. O padrão é usar Data Vault na integração e derivar um star schema para o consumo. Num banco isso aparece quando cadastro, cartões, crédito e canais digitais têm noções diferentes de "cliente" e ninguém quer congelar uma delas cedo demais.

One Big Table no Lakehouse

Com armazenamento colunar e poda de coluna, muita gente desiste do join e publica o fato já desnormalizado, com os atributos das dimensões embutidos. A consulta fica trivial e rápida.

O trade-off é manutenção: quando a definição de um atributo muda, você reescreve histórico em vez de atualizar uma dimensão pequena; e a regra de negócio deixa de ter um lugar único onde mora. Use OBT como camada de consumo derivada de um modelo dimensional, não como substituta dele.

Se quiser outro ângulo

Cobre o pedaço que mais derruba candidato: por que tipo 2 existe e o que ele custa. Foque em como as colunas de vigência e a chave substituta trabalham juntas.

Como cai na sabatina

Modele o fato de transações de cartão: qual é o grão?

Erros comuns

  • Começar pela lista de colunas em vez do grão. Sem declarar o grão, você não consegue decidir o que é medida, o que é dimensão e nem validar duplicidade depois.
  • Normalizar o modelo analítico até 3NF. Cada junção a mais custa leitura e shuffle; o modelo dimensional troca redundância controlada por velocidade e clareza.
  • Chamar de star um modelo com dimensão em vários níveis. Se a dimensão está quebrada em subtabelas, é snowflake, e você precisa justificar a escolha.
  • Usar SCD tipo 1 onde o negócio precisa de histórico. Sobrescrever o endereço do cliente reescreve o passado: a análise de risco por região do ano anterior muda sozinha.
  • Ligar o fato à chave natural do cliente numa dimensão SCD tipo 2. A chave tem que ser a substituta da versão vigente na data do evento, senão o histórico não fecha.
  • Adotar One Big Table por padrão. Ela é ótima para consulta e péssima para manter regra de negócio única; o custo aparece na terceira mudança de definição.

Flashcards

Card 1 de 14

0 certos · 0 a rever

Drill

Declare o grão, o fato e as dimensões

Para cada requisito, diga em voz alta a frase do grão e liste o que é fato e o que é dimensão. Depois compare com a resposta.

  1. 1.A área de cartões quer analisar gasto por bandeira, canal, estabelecimento e horário.

  2. 2.Risco quer o saldo devedor de cada conta no fim de cada dia.

  3. 3.Operações quer acompanhar o ciclo de uma proposta de crédito, da entrada à liberação.

  4. 4.Marketing quer saber quais clientes receberam a oferta de cartão, mesmo os que não converteram.

  5. 5.PIX quer volume transacionado por chave, tipo de chave e instituição de destino.

  6. 6.A diretoria quer comparar receita de cartão e receita de crédito no mesmo painel, por cliente e por mês.

Quiz · 1 de 2

Qual afirmação sobre star e snowflake é correta?

Explique para um gerente

Explique para o gerente de cartões, sem jargão, por que a tabela de análise dele repete o nome do estabelecimento em milhões de linhas e por que isso é proposital.

Responda em voz alta antes de seguir. Se travar numa palavra técnica, é sinal de que ainda não entendeu essa parte.

Perguntas de sabatina deste tema

  • · Modele o fato de transações de cartão. Comece pelo grão.
  • · O cliente mudou de endereço. Como você trata isso na dimensão cliente e por quê?
Responder no simulado

Para ir além