FASI DI PROGETTAZIONE BASE DATI – CONCESSIONARIO AUTO
Ecco un modello di esame completo passo dopo passo per Sistemi Informativi Aziendali dedicato alla progettazione di una base dati per un concessionario di auto.
Titolo del progetto
Progettazione di una base dati per la gestione di un concessionario di auto
1. Analisi dei Requisiti
Obiettivi principali
-
Gestire il parco auto disponibile (nuove e usate)
-
Gestire clienti e vendite
-
Gestire fornitori e ordini di acquisto
-
Monitorare test drive richiesti dai clienti
-
Gestire interventi di manutenzione post-vendita
Funzionalità richieste
-
Anagrafica clienti
-
Catalogo auto in vendita
-
Gestione vendite
-
Registrazione test drive
-
Gestione ordini a fornitori
-
Manutenzioni su auto vendute
2. Individuazione delle Entità principali
-
Cliente
-
Auto
-
Vendita
-
TestDrive
-
Fornitore
-
OrdineAcquisto
-
Manutenzione
-
ModelloAuto
3. Modello Entità-Relazioni (ER)
Entità e Attributi
-
Cliente (CodCliente, Nome, Cognome, CF, Telefono, Email)
-
Auto (Targa, Marca, CodModello, Anno, Stato, Prezzo)
-
ModelloAuto (CodModello, NomeModello, Marca, Tipo, Cilindrata, Alimentazione)
-
Vendita (CodVendita, DataVendita, PrezzoFinale, CodCliente, Targa)
-
TestDrive (CodTest, Data, Ora, CodCliente, Targa)
-
Fornitore (CodFornitore, Nome, PIVA, Telefono, Email)
-
OrdineAcquisto (CodOrdine, DataOrdine, CodFornitore, Targa)
-
Manutenzione (CodManutenzione, Data, Descrizione, Costo, Targa)
Relazioni
-
Cliente → Vendita (1:N)
-
Cliente → TestDrive (1:N)
-
Auto → Vendita (0:1)
-
Auto → TestDrive (0:N)
-
Auto → Manutenzione (0:N)
-
ModelloAuto → Auto (1:N)
-
Fornitore → OrdineAcquisto (1:N)
-
Auto → OrdineAcquisto (0:1)
4. Modello Relazionale (Logico)
Cliente(CodCliente PK, Nome, Cognome, CF, Telefono, Email)
ModelloAuto(CodModello PK, NomeModello, Marca, Tipo, Cilindrata, Alimentazione)
Auto(Targa PK, Marca, CodModello FK, Anno, Stato, Prezzo)
Vendita(CodVendita PK, DataVendita, PrezzoFinale, CodCliente FK, Targa FK)
TestDrive(CodTest PK, Data, Ora, CodCliente FK, Targa FK)
Fornitore(CodFornitore PK, Nome, PIVA, Telefono, Email)
OrdineAcquisto(CodOrdine PK, DataOrdine, CodFornitore FK, Targa FK)
Manutenzione(CodManutenzione PK, Data, Descrizione, Costo, Targa FK)
5. Popolamento della Base Dati
Esempi di inserimento dati
INSERT INTO Cliente VALUES ('CL001', 'Giulia', 'Bianchi', 'BNCGLI85R41F205Z', '3345671234', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO ModelloAuto VALUES ('MD001', 'Panda', 'Fiat', 'Citycar', '1200', 'Benzina');
INSERT INTO Auto VALUES ('AA123BB', 'Fiat', 'MD001', 2023, 'Disponibile', 11000.00);
INSERT INTO TestDrive VALUES ('TD001', '2025-04-02', '10:00', 'CL001', 'AA123BB');
INSERT INTO Fornitore VALUES ('F001', 'AutoImport Srl', '01234567890', '0267890123', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO OrdineAcquisto VALUES ('ORD001', '2025-03-10', 'F001', 'AA123BB');
INSERT INTO Vendita VALUES ('V001', '2025-04-03', 10500.00, 'CL001', 'AA123BB');
INSERT INTO Manutenzione VALUES ('M001', '2025-04-08', 'Controllo generale post-vendita', 150.00, 'AA123BB');
6. Test delle Query
🔹 1. Elenco auto disponibili
SELECT * FROM Auto WHERE Stato = 'Disponibile';
🔹 2. Elenco vendite per cliente
SELECT V.*, A.Marca, A.CodModello
FROM Vendita V
JOIN Auto A ON V.Targa = A.Targa
WHERE V.CodCliente = 'CL001';
🔹 3. Totale incassato dalle vendite
SELECT SUM(PrezzoFinale) AS TotaleIncassi FROM Vendita;
🔹 4. Auto ordinate ma non ancora vendute
SELECT A.*
FROM Auto A
JOIN OrdineAcquisto O ON A.Targa = O.Targa
WHERE A.Targa NOT IN (SELECT Targa FROM Vendita);
🔹 5. Manutenzioni effettuate per ogni auto
SELECT Targa, COUNT(*) AS TotaleManutenzioni
FROM Manutenzione
GROUP BY Targa;
7. Conclusioni
La base dati consente una gestione completa del concessionario: monitoraggio del parco auto, ordini, vendite, test drive e manutenzioni. Il sistema è flessibile, modulare e può essere facilmente esteso per includere funzioni aggiuntive come la gestione del magazzino, promozioni o integrazione con e-commerce.