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.


Back to top