Projeto desenvolvido com foco em modelagem e implementação de um banco de dados lógico utilizando MySQL. O objetivo foi representar o sistema de controle de ordens de serviço de uma oficina mecânica, com criação de tabelas, relacionamentos, inserção de dados e consultas SQL avançadas.
O projeto contempla a construção do modelo lógico relacional baseado no esquema conceitual previamente elaborado. Inclui a criação do banco de dados, inserção de dados de teste e execução de consultas SQL com diferentes cláusulas.
- Clientes levam veículos à oficina para conserto ou revisão.
- Cada veículo é atribuído a uma equipe de mecânicos.
- Os serviços executados são registrados em uma ordem de serviço (OS).
- Os valores da OS são calculados com base em serviços e peças utilizadas.
- Mecânicos têm código, nome, especialidade e endereço.
- A OS possui número, data de emissão, valor, status e data de entrega.
As principais entidades e relacionamentos implementados:
- clientes: dados dos clientes da oficina.
- veiculos: veículos associados a clientes.
- mecanicos: equipe técnica da oficina.
- equipes: grupo de mecânicos designados às ordens.
- ordens_servico: controle das OS emitidas.
- servicos: tabela com serviços e valores de mão-de-obra.
- pecas: peças utilizadas nas ordens.
- relacionamentos: tabelas associativas
equipe_mecanicos
,os_servicos
eos_pecas
.
O script para criação do banco está no arquivo:
Para testes, utilize o script com dados fictícios:
SELECT * FROM clientes;
SELECT * FROM veiculos;
SELECT * FROM ordens_servico WHERE status = 'Concluída';
SELECT id_os, valor, valor * 0.1 AS taxa_servico FROM ordens_servico;
SELECT * FROM ordens_servico ORDER BY data_entrega DESC;
SELECT id_cliente, COUNT(*) AS total_os
FROM veiculos v
JOIN ordens_servico os ON v.id_veiculo = os.id_veiculo
GROUP BY id_cliente
HAVING total_os > 1;
-- Relação de OS com cliente e equipe
SELECT c.nome AS cliente, os.id_os, os.status, os.data_entrega
FROM clientes c
JOIN veiculos v ON c.id_cliente = v.id_cliente
JOIN ordens_servico os ON v.id_veiculo = os.id_veiculo;
-- Relação de mecânicos e equipes
SELECT e.id_equipe, m.nome AS mecanico
FROM equipes e
JOIN equipe_mecanicos em ON e.id_equipe = em.id_equipe
JOIN mecanicos m ON em.id_mecanico = m.id_mecanico;
Você pode testar o projeto diretamente no DB Fiddle (MySQL 8.0):
- Cole o conteúdo de
oficina_modelo_logico.sql
e clique em "Build Schema" - Depois, cole os
INSERTs
e clique em "Run" - Por fim, teste as queries!
✅ Criação do modelo lógico relacional
✅ Scripts SQL (estrutura e inserts)
✅ Consultas SQL com todas as cláusulas solicitadas
✅ Repositório pronto para entrega do desafio
Este repositório faz parte do desafio proposto no módulo de modelagem lógica e implementação de banco de dados com MySQL na DIO.