Agenda Consolidada
- Como o SQL é executado pelo otimizador.
- DDL, DML, DCL e TCL com foco em uso real.
- Performance, índices, views e triggers.
- Segurança: SQL Injection e queries parametrizadas.
- Dapper com .NET para CRUD eficiente.
- Modelagem corporativa, DDD e transição para NoSQL por agregados.
1) Como o SQL funciona de verdade
- Parser valida sintaxe e semântica.
- Optimizer escolhe plano de execução.
- Engine executa o plano com acesso a índices/dados.
2) Linguagens do SQL (DDL, DML, DCL, TCL)
- DDL: criar e evoluir estrutura.
- DML: inserir/alterar/excluir dados.
- DCL: permissões e segurança.
- TCL: transações com commit/rollback.
BEGIN; UPDATE conta SET saldo = saldo - 100 WHERE id = 1; UPDATE conta SET saldo = saldo + 100 WHERE id = 2; COMMIT;
3) Performance e objetos de apoio
- Índices para reduzir custo de leitura.
- Views para simplificar consultas recorrentes.
- Triggers para automações críticas (com cautela).
4) Segurança: SQL Injection
Evitar concatenação de strings em comandos SQL. Sempre usar parâmetros.
// Dapper seguro var sql = "SELECT * FROM usuarios WHERE email = @Email"; var user = connection.QueryFirstOrDefault(sql, new { Email = email });
5) Dapper e integração com .NET
- Micro-ORM com baixo overhead e controle explícito de SQL.
- Bom equilíbrio entre produtividade e performance.
- Útil para dashboards com consultas específicas e otimizadas.
var sql = "INSERT INTO pedidos(cliente_id, total) VALUES(@ClienteId, @Total)"; connection.Execute(sql, pedido);
6) Além do ER: visão corporativa
- Bounded contexts para reduzir acoplamento entre domínios.
- Governança de dados e stewardship para consistência organizacional.
- Trade-off entre modelo único monolítico e modelos por contexto.
7) NoSQL orientado a agregados
- Modelar documentos por caso de uso e fronteira de consistência.
- Mapear cardinalidades para estrutura de documento.
- Usar
$jsonSchemacomo contrato executável no MongoDB.
db.createCollection("pedidos", {
validator: { $jsonSchema: { bsonType: "object", required: ["clienteId", "itens"] } }
});8) Entregável da Aula 3
- Modelo de dados revisado para consultas do dashboard.
- Queries críticas seguras e parametrizadas.
- Decisão arquitetural documentada: relacional, NoSQL ou híbrido.