FASI DI PROGETTAZIONE BASE DATI – NEGOZIO DI VIDEO GIOCHI
Titolo del progetto
Progettazione di una base dati per la gestione di un negozio di telefoni
1. Analisi dei Requisiti
Obiettivi principali
Il sistema deve gestire:
-
Il magazzino dei telefoni
-
I clienti
-
Le vendite
-
I fornitori
-
Gli ordini di rifornimento
-
L’assistenza tecnica post-vendita
Funzionalità richieste
-
Catalogo dei modelli di telefono in vendita
-
Anagrafica clienti e fornitori
-
Vendita e fatturazione dei telefoni
-
Gestione ordini a fornitori
-
Tracciamento delle riparazioni/assistenze
-
Statistiche su vendite e giacenze
2. Individuazione delle Entità principali
-
Cliente
-
Telefono
-
Modello
-
Fornitore
-
Vendita
-
Ordine
-
Assistenza
3. Modello Entità-Relazioni (ER)
Entità e Attributi
-
Cliente (CodCliente, Nome, Cognome, CF, Telefono, Email)
-
Modello (CodModello, Marca, NomeModello, RAM, ROM, Colore, PrezzoListino)
-
Telefono (IMEI, CodModello, Stato, PrezzoVendita)
-
Fornitore (CodFornitore, RagioneSociale, PIVA, Telefono, Email)
-
Vendita (CodVendita, DataVendita, CodCliente, IMEI, PrezzoFinale)
-
Ordine (CodOrdine, DataOrdine, CodFornitore, IMEI)
-
Assistenza (CodAssistenza, IMEI, DataIngresso, Descrizione, Stato, Costo)
Relazioni
-
Cliente → Vendita (1:N)
-
Vendita → Telefono (1:1)
-
Telefono → Modello (N:1)
-
Fornitore → Ordine (1:N)
-
Ordine → Telefono (1:1)
-
Telefono → Assistenza (0:N)
4. Modello Relazionale (Logico)
Cliente(CodCliente PK, Nome, Cognome, CF, Telefono, Email)
Modello(CodModello PK, Marca, NomeModello, RAM, ROM, Colore, PrezzoListino)
Telefono(IMEI PK, CodModello FK, Stato, PrezzoVendita)
Fornitore(CodFornitore PK, RagioneSociale, PIVA, Telefono, Email)
Vendita(CodVendita PK, DataVendita, CodCliente FK, IMEI FK, PrezzoFinale)
Ordine(CodOrdine PK, DataOrdine, CodFornitore FK, IMEI FK)
Assistenza(CodAssistenza PK, IMEI FK, DataIngresso, Descrizione, Stato, Costo)
5. Popolamento della Base Dati
Esempi di inserimento dati
INSERT INTO Cliente VALUES ('CL001', 'Marco', 'Rossi', 'RSSMRC90L01H501Z', '3331234567', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO Modello VALUES ('MD001', 'Samsung', 'Galaxy S23', '8GB', '128GB', 'Nero', 899.00);
INSERT INTO Telefono VALUES ('123456789012345', 'MD001', 'Disponibile', 850.00);
INSERT INTO Fornitore VALUES ('F001', 'TechSupply Srl', '01234567890', '055123456', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO Ordine VALUES ('ORD001', '2025-03-15', 'F001', '123456789012345');
INSERT INTO Vendita VALUES ('V001', '2025-04-01', 'CL001', '123456789012345', 830.00);
INSERT INTO Assistenza VALUES ('A001', '123456789012345', '2025-04-05', 'Problema alla fotocamera', 'In riparazione', 50.00);
6. Test delle Query
1. Elenco telefoni disponibili in magazzino
SELECT * FROM Telefono WHERE Stato = 'Disponibile';
2. Vendite effettuate a un cliente
SELECT V.CodVendita, V.DataVendita, M.Marca, M.NomeModello, V.PrezzoFinale
FROM Vendita V
JOIN Telefono T ON V.IMEI = T.IMEI
JOIN Modello M ON T.CodModello = M.CodModello
WHERE V.CodCliente = 'CL001';
3. Totale incassato dalle vendite
SELECT SUM(PrezzoFinale) AS TotaleIncasso FROM Vendita;
4. Telefoni mandati in assistenza con stato attuale
SELECT A.IMEI, M.Marca, M.NomeModello, A.Stato
FROM Assistenza A
JOIN Telefono T ON A.IMEI = T.IMEI
JOIN Modello M ON T.CodModello = M.CodModello;
5. Telefoni acquistati da un fornitore
SELECT O.CodOrdine, T.IMEI, M.Marca, M.NomeModello
FROM Ordine O
JOIN Telefono T ON O.IMEI = T.IMEI
JOIN Modello M ON T.CodModello = M.CodModello
WHERE O.CodFornitore = 'F001';
7. Conclusioni
Il sistema informativo progettato per il negozio di telefoni permette:
-
Una gestione dettagliata delle scorte e dei singoli dispositivi grazie all’identificativo IMEI
-
Un controllo sulle vendite, sugli ordini e sulle attività di assistenza tecnica
-
Una struttura dati modulare e scalabile, adatta anche per più sedi