Projeto Integrador Final

// Consolidando Conhecimentos e Breve Preview

Integrar conhecimentos com um projeto prático e explorar tópicos avançados.

  • Revisar fluxo: MER → Mapeamento → Normalização → DDL/DML.
  • Discutir desafios de performance, escalabilidade e segurança.
  • Apresentar conceitos avançados (BD2).
Atividade Prática: Cite um objetivo da aula.

Revisão Geral

// Do Conceitual ao Físico

Resumo do fluxo de desenvolvimento de bancos de dados:

  • MER: Modelagem de entidades e relacionamentos.
  • Mapeamento: Transformação para modelo relacional.
  • Normalização: Até 3FN/BCNF para evitar redundâncias.
  • DDL: Definição do esquema (CREATE TABLE, índices).
  • DML: Manipulação (SELECT, INSERT, UPDATE, DELETE).
Atividade Prática: Cite uma etapa do fluxo.

MER e Mapeamento

// Modelagem Conceitual e Relacional

MER: Define entidades e relacionamentos.
Mapeamento: Traduz MER em tabelas relacionais.

db_admin@postgres:~#

CREATE TABLE S (
  S# VARCHAR(10) PRIMARY KEY,
  SNAME VARCHAR(50),
  STATUS INT,
  CITY VARCHAR(50)
);
          
Atividade Prática: Crie o MER para S.

Normalização

// Reduzir Redundâncias

Normalização (até 3FN/BCNF) elimina anomalias e redundâncias.

Forma Normal Objetivo
1FN Eliminar grupos repetitivos
2FN Eliminar dependências parciais
3FN Eliminar dependências transitivas
BCNF Garantir dependências funcionais
Atividade Prática: Cite uma forma normal.

DDL e DML

// Definir e Manipular Dados

DDL: Define esquemas (CREATE, ALTER).
DML: Manipula dados (SELECT, INSERT, UPDATE, DELETE).

db_admin@postgres:~#

CREATE TABLE projetos (
  projeto_id INT PRIMARY KEY,
  jname VARCHAR(50),
  orcamento DECIMAL
);
INSERT INTO projetos (jname, orcamento)
VALUES ('Projeto X', 20000);
          
Atividade Prática: Escreva um INSERT para projetos.

Estudo de Caso Integrado

// Desafio Prático

Aplicar o fluxo completo em um cenário real (ex.: sistema de vendas, plataforma de cursos).

db_admin@postgres:~#

SELECT p.jname, COUNT(t.tarefa_id)
FROM projetos p
JOIN tarefas t
ON p.projeto_id = t.projeto_id
GROUP BY p.jname
HAVING COUNT(t.tarefa_id) > 2;
          
Atividade Prática: Proponha uma consulta para o estudo.

Desafios em Produção

// Performance, Escalabilidade, Segurança

  • Performance: Otimização de consultas e índices.
  • Escalabilidade: Gerenciar grandes volumes e concorrência.
  • Segurança: Controle de acesso, criptografia, auditoria.
db_admin@postgres:~#

CREATE INDEX idx_projetos_orcamento
ON projetos (orcamento);
          
Atividade Prática: Cite um desafio real em SGBDs.

Tópicos Avançados

// Preview para BD2

Introdução a conceitos avançados para a próxima disciplina:

  • Stored Procedures, Functions, Triggers.
  • Transações complexas e isolamento.
  • Backup e recuperação avançados.
  • Tuning de banco de dados.
  • Bancos de dados distribuídos.
db_admin@postgres:~#

CREATE PROCEDURE aumentar_orcamento()
LANGUAGE SQL
AS $$
UPDATE projetos
SET orcamento = orcamento * 1.1;
$$;
          
Atividade Prática: Cite um tópico avançado.

Projeto Final e Quiz

// Sistema de Vendas

Projeto: Desenvolver um sistema de vendas:
  1. Modelagem conceitual (MER).
  2. Mapeamento para relacional.
  3. Normalização (3FN/BCNF).
  4. Implementação do esquema (DDL).
  5. Criação de consultas DML complexas.
  6. População de dados de teste.

Apresentação: Discutir desafios de cada etapa.

Diagrama ER: Sistema de Vendas

Clientes cliente_id, nome Pedidos pedido_id, cliente_id, valor cliente_id
db_admin@postgres:~#

CREATE TABLE clientes (
  cliente_id INT PRIMARY KEY,
  nome VARCHAR(50)
);
CREATE TABLE pedidos (
  pedido_id INT PRIMARY KEY,
  cliente_id INT,
  valor DECIMAL,
  FOREIGN KEY (cliente_id) REFERENCES clientes
);
INSERT INTO clientes (cliente_id, nome)
VALUES (1, 'João');
SELECT c.nome, COUNT(p.pedido_id)
FROM clientes c
JOIN pedidos p ON c.cliente_id = p.cliente_id
GROUP BY c.nome
HAVING COUNT(p.pedido_id) > 1;
          

Quiz Interativo

1. Qual é a primeira etapa do fluxo?

a) Normalização
b) MER
c) DDL
d) DML
Resposta Correta: b) MER. Inicia com modelagem conceitual.

2. Qual forma normal elimina transitivas?

a) 1FN
b) 2FN
c) 3FN
d) BCNF
Resposta Correta: c) 3FN. Remove dependências transitivas.

3. Qual comando DML adiciona dados?

a) SELECT
b) INSERT
c) UPDATE
d) DELETE
Resposta Correta: b) INSERT. Adiciona novos registros.

4. Qual é um desafio real em SGBDs?

a) Modelagem MER
b) Mapeamento
c) Performance
d) Normalização
Resposta Correta: c) Performance. Otimização é crucial.

5. Qual é um tópico avançado para BD2?

a) Stored Procedures
b) SELECT básico
c) CREATE TABLE
d) Mapeamento
Resposta Correta: a) Stored Procedures. Lógica no SGBD.

6. Quais tabelas estão no sistema de vendas?

a) Projetos e Tarefas
b) Clientes e Pedidos
c) Fornecedores e Peças
d) Departamentos e Empregados
Resposta Correta: b) Clientes e Pedidos. Sistema de vendas.

7. O que é discutido na apresentação?

a) Apenas consultas DML
b) Desafios do projeto
c) Apenas modelagem MER
d) Índices apenas
Resposta Correta: b) Desafios do projeto. Foco na discussão.
db_quiz_results:~#

RUN projeto_quiz;
-- Quiz finalizado. Parabéns!
          

Referências

// Fontes e Leitura Complementar

  • Date, C. J. Introdução a Sistemas de Banco de Dados
  • Documentação oficial do PostgreSQL
  • Exemplos adaptados do esquema S-P-SP
  • Exemplos de projetos acadêmicos anteriores