FASI DI PROGETTAZIONE BASE DATI – NEGOZIO AUTO FUNEBRI


Titolo del progetto

Progettazione di una base dati per la gestione di un negozio di auto funebri


1. Analisi dei Requisiti

Obiettivo

Gestire le attività di un negozio specializzato nella vendita, noleggio e manutenzione di auto funebri.

Funzionalità richieste

  • Registrazione clienti (privati e imprese funebri)

  • Catalogo auto funebri in vendita o a noleggio

  • Gestione noleggi (auto, cliente, durata, costo)

  • Gestione vendite

  • Interventi di manutenzione su auto (data, descrizione, costo)

  • Statistiche di noleggi e vendite

  • Disponibilità delle auto


2. Individuazione delle Entità principali

  • Cliente

  • Auto

  • Noleggio

  • Vendita

  • Manutenzione

  • Modello Auto


3. Modello Entità-Relazioni (ER)

Entità e Attributi

  • Cliente (CodCliente, Nome, Cognome, CF/P.IVA, TipoCliente, Telefono, Email)

  • Auto (Targa, Marca, Modello, Anno, TipoAlimentazione, Stato, PrezzoVendita)

  • ModelloAuto (CodModello, Marca, NomeModello, Posti, TipoCarrozzeria)

  • Noleggio (CodNoleggio, DataInizio, DataFine, PrezzoTotale, CodCliente, Targa)

  • Vendita (CodVendita, DataVendita, PrezzoVendita, CodCliente, Targa)

  • Manutenzione (CodManutenzione, DataIntervento, Descrizione, Costo, Targa)

Relazioni

  • Cliente → Noleggio (1:N)

  • Cliente → Vendita (1:N)

  • Auto → Noleggio (1:N)

  • Auto → Vendita (1:1)

  • Auto → Manutenzione (1:N)

  • ModelloAuto → Auto (1:N)


4. Creazione del Modello Relazionale (Logico)

Cliente(CodCliente PK, Nome, Cognome, CF_PIVA, TipoCliente, Telefono, Email)
ModelloAuto(CodModello PK, Marca, NomeModello, Posti, TipoCarrozzeria)
Auto(Targa PK, Marca, CodModello FK, Anno, TipoAlimentazione, Stato, PrezzoVendita)
Noleggio(CodNoleggio PK, DataInizio, DataFine, PrezzoTotale, CodCliente FK, Targa FK)
Vendita(CodVendita PK, DataVendita, PrezzoVendita, CodCliente FK, Targa FK)
Manutenzione(CodManutenzione PK, DataIntervento, Descrizione, Costo, Targa FK)

5. Popolamento della Base Dati (Test dei Dati)

Esempio INSERT

INSERT INTO Cliente VALUES ('C001', 'Mario', 'Rossi', 'RSSMRA80A01F205X', 'Privato', '3456789012', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO ModelloAuto VALUES ('M001', 'Mercedes', 'E-Class Hearse', 5, 'Furgone');
INSERT INTO Auto VALUES ('AB123CD', 'Mercedes', 'M001', 2022, 'Diesel', 'Disponibile', 75000.00);
INSERT INTO Noleggio VALUES ('N001', '2025-03-10', '2025-03-15', 1500.00, 'C001', 'AB123CD');
INSERT INTO Manutenzione VALUES ('MN001', '2025-04-01', 'Cambio olio e filtro', 200.00, 'AB123CD');

6. Test delle Query

Visualizzare le auto disponibili

SELECT * FROM Auto WHERE Stato = 'Disponibile';

Elenco noleggi per un cliente

SELECT N.* 
FROM Noleggio N 
JOIN Cliente C ON N.CodCliente = C.CodCliente 
WHERE C.Nome = 'Mario' AND C.Cognome = 'Rossi';

Totale incassato da noleggi

SELECT SUM(PrezzoTotale) AS TotaleNoleggi FROM Noleggio;

Auto più noleggiata

SELECT Targa, COUNT(*) AS TotaleNoleggi 
FROM Noleggio 
GROUP BY Targa 
ORDER BY TotaleNoleggi DESC 
LIMIT 1;

7. Conclusioni

La base dati progettata permette una gestione efficiente e flessibile di tutte le attività fondamentali del negozio di auto funebri: dal noleggio alla vendita, fino alla manutenzione delle auto. Il modello può essere esteso in futuro per integrare funzionalità avanzate come la gestione dei dipendenti, la fatturazione e i report statistici.


Back to top