Modelos NoSQL e decisões de armazenamento

Documentos, chave-valor, colunas e grafos, com os custos de referências, duplicação e consistência.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Modelo pela operação

NoSQL reúne sistemas com contratos distintos; não garante ausência de esquema, maior velocidade ou a mesma semântica de transações.

ModeloAdequação típica
Chave-valorProcurar valor pela chave, como identificador de sessão.
DocumentosLer uma compra com campos e bilhetes aninhados.
Famílias de colunasAcessos por chaves e intervalos definidos pelo modelo.
GrafosPercorrer relações com propriedades.

Uma associação N:N não basta para justificar grafos. JSON pode existir numa base relacional; documentos podem ter validação de esquema. Formato e garantias são dimensões distintas.

Embeber ou referenciar

Embeber aproxima dados lidos juntos e pode permitir atomicidade num documento. Referenciar permite identidade independente e evita algumas repetições, mas pode exigir mais consultas ou junções.

Para C12 com dois bilhetes, limite de dez, leitura normalmente integral e alterações raras, embeber é razoável. Não generalizes para todas as compras ilimitadas de uma pessoa.

{
  "id": "C12",
  "comprador": "U7",
  "bilhetes": [
    { "codigo": "B1", "sessao": "S12", "preco_compra": 10 },
    { "codigo": "B2", "sessao": "S12", "preco_compra": 10 }
  ]
}

O preço contratado soma 20 e fica igual se S12 aumentar o preço atual. É snapshot histórico. Duplicar o email atual do comprador exigiria sincronização quando mudasse. Se cada bilhete muda independentemente e com frequência, reavalia a unidade de armazenamento.

Atomicidade, índices e evolução

  • Escrita atómica num documento não implica atomicidade entre compra e capacidade noutro documento.
  • Alguns sistemas suportam transações multidocumento, com condições e custos específicos. Verifica sistema, versão e configuração.
  • Consultas seletivas continuam a precisar de índices.
  • Esquema flexível exige tipos, campos obrigatórios, versões e leitura de documentos antigos.
  • Reservas continuam a exigir unicidade, coordenação concorrente e tratamento de repetição.

CAP durante uma partição

No modelo CAP, consistência forte é normalmente apresentada como linearizabilidade; não é a C de ACID. Disponibilidade exige resposta de cada nó não falhado a cada pedido. Partição impede comunicação entre grupos de nós.

Duas réplicas separadas começam com um lugar livre. Aceitar uma reserva independente em cada lado pode prometer dois bilhetes para um lugar. Preservar consistência forte pode exigir esperar por coordenação ou recusar alguma operação, deixando de garantir disponibilidade no modelo.

Durante a partição não se garantem simultaneamente ambas. “Escolher sempre duas de três” perde a condição da falha. Consistência eventual promete convergência sob condições como fim das atualizações e recuperação da comunicação; não garante leitura imediata da escrita nem desfaz dois sucessos incompatíveis.

Justifica a tecnologia pelas consultas, invariantes, unidade de atualização, crescimento e garantias, em vez de afirmar apenas que escala melhor.

Exemplo de documentos e referências.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

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

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

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.