FASI DI PROGETTAZIONE BASE DATI – NEGOZIO DI VIDEO GIOCHI
Titolo del progetto
Progettazione di una base dati per la gestione di un'organizzazione eventi
1. Analisi dei Requisiti
Obiettivi principali
Gestire in modo efficiente l’intero processo organizzativo degli eventi: dalla pianificazione alla gestione dei clienti, dei fornitori, delle location e del personale coinvolto.
Funzionalità richieste
-
Anagrafica clienti
-
Pianificazione eventi (data, luogo, tipo, budget)
-
Assegnazione personale agli eventi
-
Gestione fornitori per catering, musica, attrezzature, ecc.
-
Prenotazione location
-
Monitoraggio dei costi
-
Statistiche eventi realizzati
2. Individuazione delle Entità principali
-
Cliente
-
Evento
-
Personale
-
Fornitore
-
Servizio
-
Location
-
Partecipazione
-
AssegnazionePersonale
-
UtilizzoServizio
3. Modello Entità-Relazioni (ER)
Entità e Attributi
-
Cliente (CodCliente, Nome, Cognome, CF/PIVA, Telefono, Email)
-
Evento (CodEvento, Titolo, DataEvento, Tipo, Budget, CodCliente, CodLocation)
-
Location (CodLocation, Nome, Indirizzo, Capienza, CostoGiornaliero)
-
Personale (CodPersonale, Nome, Cognome, Ruolo, Telefono)
-
Fornitore (CodFornitore, RagioneSociale, TipoServizio, Telefono, Email)
-
Servizio (CodServizio, Descrizione, Costo, CodFornitore)
-
AssegnazionePersonale (CodEvento, CodPersonale) – relazione N:N
-
UtilizzoServizio (CodEvento, CodServizio) – relazione N:N
4. Creazione del Modello Relazionale
Cliente(CodCliente PK, Nome, Cognome, CF_PIVA, Telefono, Email)
Location(CodLocation PK, Nome, Indirizzo, Capienza, CostoGiornaliero)
Evento(CodEvento PK, Titolo, DataEvento, Tipo, Budget, CodCliente FK, CodLocation FK)
Personale(CodPersonale PK, Nome, Cognome, Ruolo, Telefono)
Fornitore(CodFornitore PK, RagioneSociale, TipoServizio, Telefono, Email)
Servizio(CodServizio PK, Descrizione, Costo, CodFornitore FK)
AssegnazionePersonale(CodEvento FK, CodPersonale FK, PRIMARY KEY(CodEvento, CodPersonale))
UtilizzoServizio(CodEvento FK, CodServizio FK, PRIMARY KEY(CodEvento, CodServizio))
5. Popolamento della Base Dati
Esempi di inserimento dati
INSERT INTO Cliente VALUES ('CL001', 'Laura', 'Verdi', 'VRDLRA80A01H501Z', '3345678912', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO Location VALUES ('LOC01', 'Villa Aurora', 'Via dei Fiori 12, Firenze', 150, 1000.00);
INSERT INTO Evento VALUES ('EVT001', 'Matrimonio Laura & Luca', '2025-06-10', 'Matrimonio', 15000.00, 'CL001', 'LOC01');
INSERT INTO Personale VALUES ('P001', 'Marco', 'Neri', 'Organizzatore', '3331112222');
INSERT INTO Fornitore VALUES ('F001', 'Delizie Catering', 'Catering', '055123456', Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.');
INSERT INTO Servizio VALUES ('S001', 'Buffet completo', 4000.00, 'F001');
INSERT INTO AssegnazionePersonale VALUES ('EVT001', 'P001');
INSERT INTO UtilizzoServizio VALUES ('EVT001', 'S001');
6. Test delle Query
1. Elenco eventi organizzati per cliente
SELECT E.Titolo, E.DataEvento, L.Nome AS Location
FROM Evento E
JOIN Cliente C ON E.CodCliente = C.CodCliente
JOIN Location L ON E.CodLocation = L.CodLocation
WHERE C.Nome = 'Laura' AND C.Cognome = 'Verdi';
2. Totale speso per i servizi in un evento
SELECT SUM(S.Costo) AS TotaleServizi
FROM UtilizzoServizio US
JOIN Servizio S ON US.CodServizio = S.CodServizio
WHERE US.CodEvento = 'EVT001';
3. Eventi con budget superiore a 10.000€
SELECT Titolo, DataEvento, Budget
FROM Evento
WHERE Budget > 10000;
4. Personale assegnato a un evento
SELECT P.Nome, P.Cognome, P.Ruolo
FROM AssegnazionePersonale AP
JOIN Personale P ON AP.CodPersonale = P.CodPersonale
WHERE AP.CodEvento = 'EVT001';
5. Servizi offerti da un fornitore specifico
SELECT Descrizione, Costo
FROM Servizio
WHERE CodFornitore = 'F001';
7. Conclusioni
Questa base dati è progettata per supportare in modo efficiente l'attività di un'organizzazione eventi, dalla gestione delle anagrafiche fino alla pianificazione operativa. Il modello relazionale è scalabile, ben normalizzato e pronto per essere integrato con moduli gestionali, calendari condivisi o sistemi di pagamento online.