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).
Revisar fluxo: MER → DDL/DML
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).
Normalização
MER e Mapeamento
// Modelagem Conceitual e Relacional
MER: Define entidades e relacionamentos.
Mapeamento: Traduz MER em tabelas relacionais.
CREATE TABLE S (
S# VARCHAR(10) PRIMARY KEY,
SNAME VARCHAR(50),
STATUS INT,
CITY VARCHAR(50)
);
S
.
Entidade: Fornecedores Atributos: S#, SNAME, STATUS, CITY
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 |
3FN
DDL e DML
// Definir e Manipular Dados
DDL: Define esquemas (CREATE, ALTER).
DML: Manipula dados (SELECT, INSERT, UPDATE, DELETE).
CREATE TABLE projetos (
projeto_id INT PRIMARY KEY,
jname VARCHAR(50),
orcamento DECIMAL
);
INSERT INTO projetos (jname, orcamento)
VALUES ('Projeto X', 20000);
INSERT INTO projetos (jname, orcamento) VALUES ('Projeto Y', 15000);
Estudo de Caso Integrado
// Desafio Prático
Aplicar o fluxo completo em um cenário real (ex.: sistema de vendas, plataforma de cursos).
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;
SELECT sname FROM S WHERE s# IN ( SELECT s# FROM SP WHERE p# = 'P2' );
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.
CREATE INDEX idx_projetos_orcamento
ON projetos (orcamento);
Segurança
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.
CREATE PROCEDURE aumentar_orcamento()
LANGUAGE SQL
AS $$
UPDATE projetos
SET orcamento = orcamento * 1.1;
$$;
Stored Procedures
Projeto Final e Quiz
// Sistema de Vendas
- Modelagem conceitual (MER).
- Mapeamento para relacional.
- Normalização (3FN/BCNF).
- Implementação do esquema (DDL).
- Criação de consultas DML complexas.
- População de dados de teste.
Apresentação: Discutir desafios de cada etapa.
Diagrama ER: Sistema de Vendas
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?
2. Qual forma normal elimina transitivas?
3. Qual comando DML adiciona dados?
4. Qual é um desafio real em SGBDs?
5. Qual é um tópico avançado para BD2?
6. Quais tabelas estão no sistema de vendas?
7. O que é discutido na apresentação?
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