Este repositório contém o projeto SQL completo desenvolvido para a disciplina de Modelagem de Banco de Dados (ADS - Cruzeiro do Sul Virtual). O objetivo foi modelar, implementar e manipular um banco de dados relacional funcional (em 3ª Forma Normal - 3FN) para gerenciar o sistema de pedidos de uma pizzaria fictícia.
O projeto foi dividido em quatro etapas principais:
- Modelo Conceitual: Definição do minimundo e dos conceitos de dados.
- Modelo Entidade-Relacionamento (DER): Criação do diagrama DER, identificando entidades, atributos e cardinalidades.
- Modelo Lógico: Conversão do DER em um esquema de tabelas normalizado (3FN).
- Implementação (SQL): Criação dos scripts SQL (DDL e DML) para construir e testar o banco de dados.
Todo o processo de concepção do projeto, desde a análise de requisitos (Minimundo) até o Modelo Conceitual (DER) e o Modelo Lógico (3FN), está documentado nos PDFs desta pasta, conforme a metodologia da disciplina.
- 📄 Atividade 1: Projeto Conceitual (Minimundo)
- 📄 Atividade 2: Modelo Conceitual (DER)
- 📄 Atividade 3: Projeto Lógico (Formas Normais)
O modelo lógico final consiste em 4 tabelas principais, todas normalizadas até a 3FN:
CLIENTE: Armazena os dados cadastrais dos clientes (Nome, Telefone, Endereço).PRODUTO: Funciona como o cardápio, armazenando os itens vendáveis (Pizzas, Bebidas, etc.) com seus respectivos preços.PEDIDO: Registra a transação de venda, ligando um cliente a um status, data e valor total.ITEM_PEDIDO: Tabela associativa que resolve o relacionamento N:M (muitos-para-muitos) entrePEDIDOePRODUTO. É nela que a quantidade e o preço unitário de cada item do pedido são armazenados.
Este repositório contém os scripts SQL e a documentação completa do projeto:
/documentacao: Pasta contendo os PDFs das Atividades 1, 2 e 3 (o processo de concepção).README.md: Este arquivo, com a documentação do projeto.schema.sql: (DDL - Data Definition Language) Script que cria a estrutura do banco (CREATE DATABASE,CREATE TABLE) e define todas as chaves primárias (PK) e estrangeiras (FK).insert.sql: (DML - Data Manipulation Language) Script que popula o banco de dados, inserindo os dados de exemplo (clientes, produtos e pedidos).consultas.sql: (DQL - Data Query Language) Contém 5 consultasSELECTcomplexas para análise de dados, utilizandoJOIN,GROUP BY,ORDER BYeAVG().manipulacao.sql: (DML) Contém os comandosUPDATEeDELETEpara demonstrar a manipulação e a integridade dos dados (comoON DELETE CASCADE).
O projeto foi desenvolvido e testado utilizando MySQL Workbench.
É crucial que os scripts sejam executados na ordem correta para que as Chaves Estrangeiras (FKs) funcionem.
- Execute o
schema.sqlprimeiro. Isso irá criar o bancopizzaria_dbe todas as tabelas vazias. - Execute o
insert.sqlem seguida. Isso irá popular as tabelas com os dados de exemplo. - Execute o
consultas.sqlpara testar as consultas de leitura e ver os resultados. - Execute o
manipulacao.sqlpor último, para testar as regras de atualização e exclusão.
Esta seção contém os prints que comprovam a criação e execução bem-sucedida de todos os scripts no MySQL Workbench.
O print abaixo mostra o log de execução (Action Output) dos scripts schema.sql e insert.sql, indicando que o banco e as tabelas foram criados (Linhas 1-7) e os dados foram inseridos (Linhas 8-17) com sucesso.
Os prints a seguir mostram os resultados (Result Grid) das consultas de análise de dados (script consultas.sql).
Resultado da Consulta 3 (Detalhes do Pedido 102 com JOIN):
(Este print mostra a junção das 4 tabelas para exibir um pedido específico)
Resultado da Consulta 4 (Ranking de Clientes com COUNT e GROUP BY):
(Este print mostra o agrupamento de pedidos por cliente)
Resultado da Consulta 5 (Ranking de Produtos Vendidos com SUM):
(Este print mostra o ranking de produtos mais vendidos)
Este print mostra o log de execução do script manipulacao.sql, comprovando que os comandos UPDATE e DELETE foram executados com sucesso (Linhas 24-32), respeitando as chaves primárias e a integridade referencial.
Feito com ☕ por Fabio Santos.