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.