Visão Geral do Módulo

Neste módulo, você aprenderá os conceitos fundamentais de bancos de dados relacionais, com foco no PostgreSQL. Vamos explorar desde a modelagem de dados até a implementação de consultas SQL e a integração com aplicações Node.js, utilizando como base o modelo de dados do nosso projeto prático de sistema de vendas.

Carga Horária

24 horas

Pré-requisitos

Módulos 1 a 6

Conteúdo Programático

1. Introdução a Bancos de Dados Relacionais
  • O que são bancos de dados e sua importância
  • Conceito de banco de dados relacional
  • Tabelas, colunas, linhas e tipos de dados
  • Sistemas de Gerenciamento de Bancos de Dados (SGBD) Relacionais
  • Visão geral do PostgreSQL: características e vantagens
  • Outros SGBDs relacionais (SQL Server, Oracle, etc. - menção breve)
2. Modelagem de Dados Relacionais
  • Conceitos básicos de modelagem de dados
  • Modelo Entidade-Relacionamento (ER)
    • Entidades (Ex: Cliente, Produto, Pedido)
    • Atributos (Ex: nome_cliente, descricao_produto)
    • Relacionamentos (Ex: um Cliente faz muitos Pedidos)
    • Cardinalidade (1:1, 1:N, N:M)
  • Diagrama Entidade-Relacionamento (DER)
  • Normalização de dados (conceito e importância)
    • Primeira Forma Normal (1FN)
    • Segunda Forma Normal (2FN)
    • Terceira Forma Normal (3FN)
  • Chaves
    • Chave primária (PK)
    • Chave estrangeira (FK)
    • Chave candidata
    • Chave composta
  • Integridade referencial
  • Aplicação da modelagem no script `script_vendas.sql`
3. Linguagem SQL (Structured Query Language)
  • Introdução ao SQL
  • Tipos de dados em PostgreSQL
  • DDL (Data Definition Language) - Linguagem de Definição de Dados
    • CREATE TABLE (Ex: criando as tabelas cliente, produto)
    • ALTER TABLE (Ex: adicionando uma coluna)
    • DROP TABLE (Ex: removendo uma tabela)
  • DML (Data Manipulation Language) - Linguagem de Manipulação de Dados
    • SELECT (Consultando dados de produtos, clientes)
    • INSERT INTO (Inserindo um novo vendedor)
    • UPDATE (Atualizando o endereço de um cliente)
    • DELETE FROM (Removendo um pedido)
  • Consultas SQL Fundamentais
    • WHERE (Filtrando clientes por cidade)
    • ORDER BY (Ordenando produtos por preço)
    • LIMIT / OFFSET (Paginação de resultados)
    • Funções agregadas (COUNT, SUM, AVG, MIN, MAX)
    • GROUP BY (Agrupando itens de pedido por pedido)
    • HAVING (Filtrando grupos)
  • Junções (JOINs)
    • INNER JOIN (Combinando pedido com cliente e vendedor)
    • LEFT JOIN / RIGHT JOIN (Listando todos os clientes e seus pedidos, mesmo sem pedidos)
    • FULL OUTER JOIN (Menção)
  • Subconsultas (Consultas aninhadas)
4. PostgreSQL na Prática
  • Instalação e configuração do PostgreSQL
  • Ferramentas de administração
    • pgAdmin (Interface gráfica)
    • psql (Linha de comando)
    • DBeaver (Cliente universal)
  • Criação de bancos de dados e schemas
  • Executando o script `script_vendas.sql`
  • Gerenciamento de tabelas e constraints (PK, FK, UNIQUE)
  • Realizando consultas e manipulação de dados (INSERT, UPDATE, DELETE, SELECT)
  • Backup e restauração básicos (pg_dump, pg_restore)
  • Gerenciamento de usuários e permissões (GRANT, REVOKE)
  • Introdução a Índices: criação e impacto no desempenho de consultas
  • Introdução a Visões (Views)
5. Integração com Node.js
  • Visão geral de ORMs e Query Builders (Sequelize, Knex.js - menção)
  • Utilizando o driver `pg` para Node.js
  • Configurando a conexão com o PostgreSQL na aplicação Node.js
  • Executando consultas SQL (SELECT, INSERT, UPDATE, DELETE) a partir do Node.js
  • Tratamento de resultados e erros
  • Prevenção de SQL Injection (Consultas parametrizadas)
  • Gerenciamento de pool de conexões
  • Exemplos práticos: CRUD de Produtos na API do projeto

Objetivos de Aprendizagem

Ao final deste módulo, você será capaz de:

  • Explicar os conceitos fundamentais de bancos de dados relacionais.
  • Modelar um banco de dados relacional usando o Modelo Entidade-Relacionamento.
  • Interpretar e aplicar os conceitos de normalização.
  • Escrever consultas SQL para criar, ler, atualizar e deletar dados (CRUD).
  • Utilizar JOINs para combinar dados de múltiplas tabelas.
  • Instalar, configurar e administrar um banco de dados PostgreSQL básico.
  • Integrar uma aplicação Node.js com um banco de dados PostgreSQL.
  • Executar consultas SQL de forma segura a partir do Node.js.

Próximo Módulo

Continue sua jornada no desenvolvimento backend explorando Metodologias Ágeis e Scrum.