Capitulo 07 - Banco de Dados
Onde sua aplicacao deixa de lembrar "por enquanto" e passa a lembrar "de verdade"
Introducao: sem dados confiaveis, nao existe produto confiavel
Toda aplicacao madura vive de dados.
Sem banco de dados, voce pode ate fazer uma demo funcionar.
Mas nao consegue operar com consistencia, historico, auditoria e escala.
Este capitulo existe para te dar uma habilidade que separa iniciantes de profissionais:
pensar, modelar e consultar dados com SQL de forma consciente.
Voce vai parar de depender cegamente do ORM e entender o que realmente acontece por baixo dos panos.
1) SQL: a linguagem universal dos bancos relacionais
SQL (Structured Query Language) e o idioma de comunicacao com o banco relacional.
Com SQL, voce:
- cria estrutura,
- consulta informacao,
- atualiza registros,
- remove dados,
- conecta tabelas,
- gera relatorios.
O ganho real
Quando voce entende SQL, deixa de usar banco no "modo caixa-preta".
Passa a ter capacidade de diagnosticar, otimizar e decidir melhor.
2) Estrutura relacional: tabelas, chaves e integridade
Banco relacional organiza dados em tabelas (linhas e colunas).
Mas o que da qualidade a essa estrutura sao as regras.
Chave primaria (Primary Key)
Identifica cada registro de forma unica.
Chave estrangeira (Foreign Key)
Conecta tabelas e preserva coerencia entre entidades.
Constraints
Regras de integridade que protegem seu dado:
NOT NULLUNIQUECHECKFOREIGN KEY
Sem integridade, banco vira deposito desorganizado.
Com integridade, banco vira fonte confiavel de verdade operacional.
3) SELECT com filtro: transformar volume em informacao util
Dados sem consulta sao apenas acumulacao.
SELECT e o comando mais usado em SQL porque transforma dado bruto em informacao acionavel.
Elementos centrais:
WHEREpara filtrarORDER BYpara ordenarLIMITpara recortar- operadores logicos (
AND,OR,NOT) - operadores de faixa e conjunto (
IN,BETWEEN) - funcoes agregadas (
COUNT,SUM,AVG)
Maturidade analitica
Quem domina SELECT nao "adivinha" negocio.
Mede negocio.
4) INSERT, UPDATE, DELETE: manipular dado com responsabilidade
CRUD em banco parece simples, mas e onde mora grande parte do risco.
INSERT
Insere novos registros.
UPDATE
Atualiza registros existentes.
Sem filtro adequado, pode alterar base inteira por acidente.
DELETE
Remove registros.
Sem critério, pode gerar perda irreversivel.
Transacoes
Use BEGIN, COMMIT, ROLLBACK quando operacoes precisam ser atomicas.
Regra de ouro:
se a alteracao e sensivel, trate como cirurgia.
Planeje antes de executar.
5) JOINs: conectando mundos de dados
No mundo real, informacao relevante raramente mora em uma unica tabela.
JOIN e o mecanismo que conecta contexto.
JOINs mais usados
INNER JOIN: apenas correspondenciasLEFT JOIN: tudo da esquerda + correspondenciasRIGHT JOIN: tudo da direita + correspondenciasFULL JOIN: uniao completa (quando suportado)
Subqueries e UNION
Para cenarios mais sofisticados, voce combina consultas e resultados.
Essa e a base para relatorios de negocio, dashboards e analise operacional.
6) Modelagem de dados: projetar antes de construir
Modelagem e o momento em que voce decide como a realidade vira estrutura.
Etapas praticas:
- identificar entidades
- definir atributos
- mapear relacionamentos
- aplicar regras de integridade
- validar com casos de uso reais
Normalizacao
Normalizar reduz redundancia e inconsistencias.
Objetivo da normalizacao:
- evitar duplicacao inutil
- proteger consistencia
- facilitar manutencao
Quando desnormalizar
Quando performance e consulta critica justificam simplificacao controlada.
Desnormalizacao sem criterio gera divida tecnica.
Com criterio, vira estrategia.
7) Performance: query boa e produto mais rapido
Nem toda query funcional e uma boa query.
Em escala, performance importa.
Ferramentas mentais de performance
- criar indice onde consulta com frequencia
- evitar
SELECT *sem necessidade - filtrar cedo
- analisar plano de execucao
- monitorar consultas lentas
Banco lento impacta experiencia inteira:
- API responde devagar
- dashboard atrasa
- usuario perde confianca
8) SQL + ORM: complementaridade, nao guerra
ORM acelera produtividade.
SQL traz profundidade e controle.
Profissional completo usa os dois com inteligencia:
- ORM para desenvolvimento rapido
- SQL para casos complexos, tuning e analise detalhada
Nao e escolha ideologica.
E escolha contextual.
9) Framework de decisao para banco de dados
Sempre que for criar ou evoluir banco, responda:
- Quais entidades existem no dominio?
- Quais relacoes sao obrigatorias?
- Que regra de integridade nao pode ser quebrada?
- Quais consultas mais importantes para o negocio?
- Onde a performance pode virar gargalo?
- Que estrategia de migracao e rollback voce tem?
Esse framework evita modelagem impulsiva.
Plano de treino de 7 dias (Banco de Dados)
Dia 1 - SQL base
Executar SELECT, INSERT, UPDATE, DELETE em ambiente local.
Dia 2 - Estrutura
Criar 4 tabelas com PK, FK e constraints.
Dia 3 - Consultas
Treinar filtros, ordenacao e agregacoes para relatorios simples.
Dia 4 - Relacoes
Implementar JOINs entre tabelas principais.
Dia 5 - Consultas avancadas
Usar subqueries e combinacao de resultados.
Dia 6 - Modelagem
Desenhar diagrama ER de um caso real e converter para SQL.
Dia 7 - Otimizacao
Adicionar indices e medir melhora em consultas criticas.
Checklist de dominio do Capitulo 7
- Consigo escrever consultas SQL sem apoio de ORM
- Estruturo tabelas com PK/FK e constraints
- Filtro e agrego dados para gerar informacao relevante
- Manipulo dados com seguranca usando transacoes quando necessario
- Uso JOINs para consultas multi-tabela
- Modelo banco com base em entidades e relacionamentos
- Aplico indices com criterio para performance
Erros classicos que este capitulo te ajuda a evitar
- Modelar sem entender dominio de negocio
- Criar tabela sem chave e sem integridade
- Fazer
UPDATE/DELETEsemWHERE - Ignorar transacao em operacao critica
- Usar JOIN sem entender cardinalidade
- Indexar tudo sem estrategia
- Depender 100% de ORM sem compreender SQL
Fechamento do capitulo
Voce agora tem repertorio para tratar dados como ativo estrategico.
Isso muda o nivel da sua engenharia:
- decisoes ficam mais embasadas,
- sistemas ficam mais confiaveis,
- e voce ganha autonomia para diagnosticar problemas reais.
No proximo capitulo, vamos conectar backend, frontend e banco em uma aplicacao fullstack.
A partir daqui, voce nao pensa mais em partes isoladas.
Voce pensa em sistema completo.
Resumo executivo do Capitulo 7
- SQL e linguagem essencial para dominio real de banco
- PK, FK e constraints sustentam integridade
- SELECT com filtros e agregacoes transforma dados em decisao
- INSERT/UPDATE/DELETE exigem seguranca operacional
- JOINs conectam contexto entre tabelas
- Modelagem e etapa estrategica, nao burocracia
- Performance depende de query + indice + criterio
- ORM e SQL se complementam em produto serio