MODULO 2.2

🗂️ Tipos e Comparativos de SGBDs

Conheca os principais modelos de bancos de dados, suas forcas, limitacoes e quando usar cada um para tomar decisoes tecnicas fundamentadas.

6
Topicos
45
Minutos
Inter
Nivel
Teoria
Tipo
1

🏛️ Bancos Relacionais

Os bancos relacionais organizam dados em tabelas com schema rigido, usam SQL como linguagem padrao e garantem propriedades ACID. Sao a base da maioria das aplicacoes corporativas e o modelo mais maduro do mercado.

🎯 Principais SGBDs Relacionais

PostgreSQL

O mais completo open-source. Extensoes (PostGIS, pgvector), tipos avancados, JSON nativo. Ideal para quem quer flexibilidade sem abrir mao de SQL.

MySQL

Popular, simples de operar, ecossistema enorme. Primeira escolha para apps web, CMSs e stacks LAMP. Performance excelente para leitura.

SQL Server

Integracao nativa com ecossistema Microsoft (.NET, Azure, Power BI). Forte em ambientes corporativos Windows.

Oracle

Enterprise. RAC, Data Guard, particionamento avancado. Custo alto, mas recursos de missao critica incomparaveis.

SQLite

Banco embarcado, zero configuracao, arquivo unico. Perfeito para apps mobile, IoT, prototipagem e testes. Nao precisa de servidor.

USAR QUANDO

  • • Dados altamente estruturados com relacoes claras
  • • Integridade referencial e consistencia sao prioridade
  • • Workloads OLTP (muitas transacoes curtas e concorrentes)
  • • Queries complexas com JOINs, agregacoes e subqueries

NAO USAR QUANDO

  • • Schema muda constantemente e de forma imprevisivel
  • • Escala horizontal massiva (milhares de nos) e requisito
  • • Dados sao predominantemente nao-estruturados (logs, JSON variado)
  • • Latencia sub-milissegundo e critica (cache, sessoes)
2

📄 Bancos de Documentos

Bancos de documentos armazenam dados como JSON/BSON, sem schema rigido. Cada documento pode ter estrutura diferente, o que traz flexibilidade para cenarios onde os dados evoluem rapidamente ou variam entre registros.

🎯 Principais SGBDs de Documentos

MongoDB

O mais popular. Schema flexivel, aggregation pipeline poderoso, sharding nativo. Ecossistema rico com Atlas (cloud), Compass (GUI) e drivers para todas as linguagens.

Couchbase

Combina documento + cache em memoria. N1QL (SQL-like query), replicacao multi-datacenter. Forte em cenarios que precisam de baixa latencia com documentos complexos.

🔍 Documento vs Relacional: Quando Escolher

Escolha Documento quando...

  • • Dados tem estrutura variavel (catalogo de produtos com atributos diferentes)
  • • Prototipagem rapida sem migrations
  • • Dados sao naturalmente hierarquicos (posts com comentarios aninhados)
  • • Escala horizontal e prioridade

Escolha Relacional quando...

  • • Relacoes entre entidades sao complexas e frequentes
  • • Consistencia transacional e obrigatoria
  • • Dados tem schema estavel e bem definido
  • • Queries com muitos JOINs sao a norma
3

⚡ Chave-Valor e Cache

Bancos chave-valor sao os mais simples conceitualmente: uma chave mapeia para um valor. Essa simplicidade permite latencia sub-milissegundo e throughput massivo. Sao a base de sistemas de cache, sessoes e filas em tempo real.

🎯 Principais SGBDs Chave-Valor

Redis

In-memory, latencia sub-milissegundo. Estruturas de dados ricas (strings, hashes, listas, sets, sorted sets). Pub/Sub, Streams, Lua scripting. O canivete suico do cache.

DynamoDB

Serverless da AWS, auto-scaling, SLA de single-digit ms. Modelo chave-valor + documento. Pay-per-request ou capacidade provisionada. Zero ops.

📊 Casos de Uso

  • Cache de aplicacao: respostas de API, resultados de queries pesadas, paginas renderizadas
  • Sessoes de usuario: armazenamento rapido e expiravel de dados de sessao
  • Filas e mensageria: Redis Lists e Streams para processamento assincrono
  • Contadores em tempo real: page views, rate limiting, leaderboards
  • Pub/Sub: notificacoes em tempo real, chat, eventos

💡 Padroes de Cache

  • Cache-Aside (Lazy Loading): App verifica o cache primeiro. Se nao encontra (miss), busca no banco, grava no cache e retorna. Simples e eficiente.
  • Write-Through: Toda escrita vai para o cache E para o banco ao mesmo tempo. Cache sempre atualizado, mas escrita mais lenta.
  • Write-Behind: Escrita vai para o cache imediatamente. O banco e atualizado de forma assincrona. Risco de perda se o cache cair antes do sync.
  • TTL (Time-To-Live): Defina expiracao para evitar dados stale. Padrao: 5-15 min para dados de leitura, 30-60s para dados volateis.
4

📊 Bancos Colunares

Bancos colunares armazenam dados por coluna em vez de por linha. Isso permite compressao extrema e scans muito rapidos para queries analiticas que acessam poucas colunas em tabelas com bilhoes de linhas. Sao a base de Data Warehouses modernos.

🎯 Principais SGBDs Colunares

BigQuery

Serverless do Google. Escala automatica, SQL padrao, integracao com GCP. Paga por query executada. Ideal para analytics ad-hoc.

Redshift

Data warehouse da AWS. Cluster gerenciado, Redshift Spectrum para S3, integracao com ecossistema AWS.

ClickHouse

Open-source, criado pela Yandex. Performance absurda para OLAP, compressao agressiva. Forte em logs, metricas e analytics em tempo real.

Snowflake

Multi-cloud, separacao de storage e compute. Escala independente, compartilhamento de dados entre organizacoes. UX excelente.

📊 Dado Importante

Bancos colunares podem ser 100x mais rapidos que row-stores para agregacoes em tabelas largas. Em uma tabela com 50 colunas, se a query usa apenas 3, o colunar le apenas 6% dos dados. A compressao colunar reduz storage em ate 10x porque valores similares ficam juntos.

5

🕸️ Grafos e Series Temporais

Modelos especializados para dados com relacoes complexas (grafos) ou dados indexados por tempo (series temporais). Cada um resolve problemas especificos de forma muito mais eficiente que um banco relacional generico.

🕸️ Bancos de Grafos

Neo4j

O lider em bancos de grafos. Usa Cypher como linguagem de query, otimizado para travessia de caminhos e pattern matching.

  • Redes sociais: amigos de amigos, sugestoes de conexao, graus de separacao
  • Recomendacoes: "quem comprou X tambem comprou Y" com travessia de grafo
  • Deteccao de fraude: identificar padroes de conexao suspeitos entre contas
  • Knowledge graphs: relacoes entre entidades, ontologias, busca semantica

⏱️ Series Temporais

InfluxDB

Nativo para series temporais. Flux query language, retencao automatica, downsampling. Forte em metricas de infraestrutura e IoT.

TimescaleDB

Extensao do PostgreSQL. SQL completo + hypertables otimizadas para time-series. Melhor dos dois mundos: SQL familiar + performance temporal.

  • Metricas de sistema: CPU, memoria, disco, rede em dashboards Grafana
  • IoT: sensores, telemetria, dados de dispositivos em alta frequencia
  • Janelas de tempo: medias moveis, agregacoes por intervalo, deteccao de anomalias
  • Financeiro: precos de acoes, ticks, candlesticks com resolucao temporal
6

⚖️ Como Escolher

Nao existe SGBD perfeito para tudo. A escolha depende do modelo de dados, do padrao de acesso e dos requisitos nao-funcionais. Muitas arquiteturas modernas usam polyglot persistence: cada servico escolhe o banco ideal para seu caso de uso.

📊 Tabela Comparativa

SGBD Modelo Forcas Atencao
PostgreSQL Relacional SQL padrao, extensoes Tune fino
MySQL Relacional Popular, simples Recursos por engine
MongoDB Documento Flexivel, agregacao Transacoes multi-col
Redis Chave-valor In-memory, latencia min Persistencia/HA
ClickHouse Colunar Analitico rapido Apenas OLAP
Neo4j Grafo Caminhos eficientes Custo grafos densos
Elasticsearch Busca Full-text, agregacoes Nao substitui ACID

🎯 Recomendacoes por Cenario

  • OLTP (transacional): PostgreSQL - SQL completo, ACID, extensoes, comunidade ativa
  • CMS / Catalogo: MongoDB - schema flexivel para conteudo variado, iteracao rapida
  • Cache / Sessoes: Redis - in-memory, TTL nativo, estruturas de dados ricas
  • Data Warehouse: BigQuery ou ClickHouse - analytics em escala, compressao colunar
  • Grafos / Relacoes: Neo4j - travessia eficiente, Cypher expressivo, visualizacao
  • Series Temporais: TimescaleDB - SQL do PostgreSQL + hypertables otimizadas para tempo
  • Busca Full-text: Elasticsearch - indexacao invertida, scoring, agregacoes, facets
← Voltar para Trilha Proxima Trilha →