CapĂ­tulo 7 / 16

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 NULL
  • UNIQUE
  • CHECK
  • FOREIGN 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:

  • WHERE para filtrar
  • ORDER BY para ordenar
  • LIMIT para 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 correspondencias
  • LEFT JOIN: tudo da esquerda + correspondencias
  • RIGHT JOIN: tudo da direita + correspondencias
  • FULL 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:

  1. identificar entidades
  2. definir atributos
  3. mapear relacionamentos
  4. aplicar regras de integridade
  5. 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

  1. criar indice onde consulta com frequencia
  2. evitar SELECT * sem necessidade
  3. filtrar cedo
  4. analisar plano de execucao
  5. 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:

  1. Quais entidades existem no dominio?
  2. Quais relacoes sao obrigatorias?
  3. Que regra de integridade nao pode ser quebrada?
  4. Quais consultas mais importantes para o negocio?
  5. Onde a performance pode virar gargalo?
  6. 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

  1. Modelar sem entender dominio de negocio
  2. Criar tabela sem chave e sem integridade
  3. Fazer UPDATE/DELETE sem WHERE
  4. Ignorar transacao em operacao critica
  5. Usar JOIN sem entender cardinalidade
  6. Indexar tudo sem estrategia
  7. 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
©2025 FraDev Team. All Rights Reserved.
FraDev