Conteúdos da cadeira

Armazéns de dados e NoSQL

Modelo multidimensional, OLAP e quando trocar o relacional.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

O modelo relacional foi desenhado para o dia a dia da loja: registar cada venda depressa e sem contradições (o mundo OLTP). Mas responder a “como evoluíram as vendas por categoria e mês no último ano” sobre esse esquema é juntar quatro tabelas e agregar milhões de linhas. Para análise há um modelo próprio, e para dados sem esquema fixo há outro. Saber escolher entre os três é o último resultado de aprendizagem da cadeira.

Armazém de dados e OLAP

Um armazém de dados (data warehouse) copia periodicamente os factos operacionais para um esquema otimizado para leitura e análise (OLAP). A organização típica é em estrela: uma tabela de factos central com medidas (quantidade, valor) rodeada de tabelas de dimensões (tempo, produto, cliente, loja). A pergunta anual acima vira uma agregação direta sobre a estrela, sem junções de normalização pelo caminho.

O preço é claro: os dados do armazém têm a idade da última carga, nunca o segundo atual, e manter dois sistemas custa. Usa armazém quando as perguntas são analíticas, agregadas e históricas; mantém o relacional para o registo operacional do momento.

NoSQL em quatro sabores

NoSQL não é “sem SQL” por capricho: é abdicar do esquema rígido e, muitas vezes, de parte do ACID em troca de escala ou flexibilidade. As quatro famílias:

  • Chave-valor: um dicionário gigante distribuído. Serve para sessões, carrinhos e caches, onde cada acesso é por chave exata.
  • Documento: objetos semiestruturados, como JSON, com esquema flexível por documento. Serve para catálogos e perfis, onde cada registo tem campos próprios.
  • Colunar: tabelas por colunas em vez de linhas, ótimas para agregar uma coluna sobre milhões de linhas. Serve para telemetria e analítica.
  • Grafo: nós e arestas como cidadãos de primeira classe. Serve para redes sociais e recomendações, onde as perguntas são sobre ligações.

A tabela de decisão

SituaçãoEscolhaPorquê
Registar vendas da loja sem contradiçõesRelacionalIntegridade e transações por cada escrita
Relatório anual de vendas por mês e categoriaArmazém de dadosAgregações históricas sobre a estrela, sem pesar no operacional
Catálogo onde cada produto tem atributos própriosDocumento (NoSQL)Esquema flexível, sem colunas nulas para todos
Carrinho de compras com milhões de acessos por chaveChave-valor (NoSQL)Leitura e escrita por chave a grande escala

A pergunta de teste típica dá-te um cenário e pede a escolha justificada: identifica primeiro o padrão de acesso (escritas com integridade, análise agregada ou escala sem esquema) e só depois casa com a coluna da esquerda. E quando o cenário mistura os dois mundos, como a loja real, a resposta honesta é híbrida: relacional para operar, armazém para analisar.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.