Bancos de Dados para Desenvolvedores: Do SQL ao NoSQL na Prática
Índice do Projeto de Banco de Dados
- Introdução 🗃️
- Primeiros Passos 🏗️
- Modelo Conceitual 🧠
- Modelo Lógico Relacional 🔗
- Normalização de Dados 📦
- SQL: DDL e DML ✍️
- Consultas SQL 🔍
Módulos - Cassandra
- Cassandra - Atividade 1: Instalação 🔵
- Cassandra - Atividade 2: Criação de Tabelas 📝
- Cassandra - Atividade 3: Operações CRUD 🔄
- Cassandra - Atividade 4: Atividade Final 🏆
Público-Alvo:
- Desenvolvedores iniciantes e experientes que desejam dominar bancos de dados.
- Estudantes de tecnologia que precisam de uma base sólida e atual sobre o tema.
- Profissionais que buscam atualizar seus conhecimentos sobre as tendências em armazenamento de dados, incluindo NoSQL e Cloud.
Pré-requisitos:
- Lógica de programação.
- Conhecimento básico em pelo menos uma linguagem de programação (ex: Python, Java, C# ou JavaScript).
Ferramentas Utilizadas:
- SGBD SQL: PostgreSQL (moderno, open-source e rico em funcionalidades).
- SGBDs NoSQL: MongoDB (banco de dados de documentos) e Redis (banco de dados chave-valor/em memória).
- Ferramenta Gráfica: DBeaver (multi-SGBD).
- Plataforma: Docker (para facilitar a configuração dos ambientes).
Estrutura do Curso
O curso será dividido em seções que constroem o conhecimento de forma progressiva, culminando em um projeto prático que integra os diferentes modelos de banco de dados.
[Módulo 1: Fundamentos Universais de Bancos de Dados 🏛️]
- Aula 1: O que é um banco de dados e por que ele é crucial? Resolvendo problemas de escala, consistência e segurança.
- Aula 2: SQL vs. NoSQL: Uma visão geral das duas filosofias e quando usar cada uma.
- Aula 3: Modelagem Conceitual: Desenhando a “planta baixa” dos seus dados (Entidades, Atributos, Relacionamentos).
- Aula 4: Configurando o ambiente de desenvolvimento com Docker: PostgreSQL, MongoDB e Redis em minutos.
Módulo 2: O Mundo Relacional com SQL e PostgreSQL 🗃️
- Aula 1: Modelagem Lógica Relacional: Transformando o modelo conceitual em tabelas.
- Aula 2: Chaves (Primária, Estrangeira) e Integridade Referencial.
- Aula 3: Normalização na Prática: Evitando redundância e anomalias de dados (1FN, 2FN, 3FN).
- Aula 4: DDL (Data Definition Language):
CREATE TABLE
,ALTER TABLE
,DROP TABLE
eConstraints
. - Aula 5: DML (Data Manipulation Language):
INSERT
,UPDATE
,DELETE
.
Módulo 3: Consultas SQL: Do Básico ao Avançado 🔍
- Aula 1: A base de tudo:
SELECT
,FROM
,WHERE
. - Aula 2: Junções (JOINs):
INNER
,LEFT
,RIGHT
eFULL JOIN
para combinar dados. - Aula 3: Funções de Agregação:
COUNT
,SUM
,AVG
,MIN
,MAX
. - Aula 4: Agrupando dados com
GROUP BY
. - Aula 5: Ordenando com
ORDER BY
e limitando resultados comLIMIT
. - Aula 6: Subconsultas: Resolvendo problemas complexos.
- Aula 7: Transações e os princípios ACID (
COMMIT
,ROLLBACK
).
Módulo 4: Bem-vindo ao Universo NoSQL 🚀
- Aula 1: Por que o NoSQL foi criado? Flexibilidade, escalabilidade e o Big Data.
- Aula 2: Teorema CAP (Consistência, Disponibilidade, Tolerância a Partição): Entendendo os trade-offs.
- Aula 3: Tipos de Bancos de Dados NoSQL: Documentos, Chave-Valor, Grafos e Família de Colunas.
Módulo 5: MongoDB na Prática (Banco de Dados de Documentos) 📄
- Aula 1: Introdução ao MongoDB e ao modelo de documentos (JSON/BSON).
- Aula 2: Operações CRUD:
insertOne
,find
,updateOne
,deleteOne
. - Aula 3: Consultas avançadas: Filtrando documentos aninhados e arrays.
- Aula 4: Índices e otimização de performance.
- Aula 5: Modelagem com MongoDB: Denormalização e relacionamentos incorporados vs. referenciados.
Módulo 6: Redis na Prática (Banco de Dados Chave-Valor e Cache) ⚡
- Aula 1: O que é um banco de dados em memória e por que a velocidade importa?
- Aula 2: Comandos básicos do Redis:
SET
,GET
,DEL
. - Aula 3: Trabalhando com estruturas de dados: Listas, Hashes, Sets.
- Aula 4: Caso de Uso Prático 1: Implementando um sistema de cache para aliviar um banco de dados SQL.
- Aula 5: Caso de Uso Prático 2: Gerenciando sessões de usuário.
Módulo 7: Conectando Bancos de Dados com Aplicações 🔗
- Aula 1: Padrões de acesso a dados (Repository Pattern).
- Aula 2: Usando uma biblioteca de acesso a dados em Python para conectar com PostgreSQL.
- Aula 3: Usando uma biblioteca de acesso a dados em Node.js para conectar com MongoDB.
- Aula 4: Integrando Redis como camada de cache em uma aplicação.
Módulo 8: Projeto Final - Sistema de E-commerce Híbrido 🛒
- Objetivo: Desenvolver o backend de um sistema de e-commerce, aplicando o melhor de cada banco de dados.
- Parte 1 (PostgreSQL): Modelar e criar o núcleo transacional do sistema: produtos, estoque e pedidos.
- Parte 2 (MongoDB): Armazenar informações flexíveis, como avaliações de produtos e logs de eventos.
- Parte 3 (Redis): Implementar o carrinho de compras e cache de produtos populares.
- Aula Final: Apresentação da solução completa e revisão dos conceitos aplicados.
Módulo Bônus: Tópicos Modernos e Futuro dos Dados ☁️
- Aula 1: Bancos de Dados como Serviço (DBaaS) na Nuvem (AWS RDS, MongoDB Atlas).
- Aula 2: Infrastructure as Code (IaC) com Terraform para provisionar bancos de dados.
- Aula 3: Uma introdução a Bancos de Dados de Grafos (Neo4j) para redes sociais e sistemas de recomendação.