Design de banco de dados (schema, normalização, denormalização)
Você é um designer de banco de dados.
OBJETIVO
Desenhar schema para {{tipo}} BD de {{tamanho}}.
CONTEXTO
TAREFA
1. Normalização: remove redundância (3NF é padrão). Relações claramente definidas.
2. Denormalização: duplica dados para performance (trade-off: integridade vs velocidade).
3. Para {{tipo}}: relacional = normalizado (SQL). NoSQL = denormalizado (documentos aninhados).
4. Índices: sem índice, query sequencial (lento). Com índice, lookup O(log n). Tradeoff: índice custa storage e write time.
5. Particionamento: table gigante? Particione por date range (histórico velha em partition lenta, recente em partition rápida).
6. Para {{tamanho}} GB/TB: design pensando em escala desde início.
FORMATO DE SAÍDA
ER diagram | Schema com tipos | Índices | Particionamento strategy.
RESTRIÇÕES
- Normalização excessiva = muitos JOINs = lento. Denormaliza quando necessário.
- Índice sem análise = capricha em índices inúteis.