Esercizi database
Schema logico
- Data questo schema concettuale disegnare lo schema logico, e popolare le tabelle con dei valori di esempio.

2. Data questo schema concettuale disegnare lo schema logico, e popolare le tabelle con dei valori di esempio.

3. Data la seguente tabella di immobili:
| CodiceImmobile | DataInserimento | TipoImmobile | NomeProprietario | CognomeProprietario | EmailProprietario | TelefonoProprietario | ViaIndirizzo | CittaIndirizzo | CAPCitta | Regione | Zona | NumeroLocali | MqTotali | Piano | PrezzoEuro | StatoAnnuncio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IMM-2001 | 2026-04-01 | Appartamento | Mario | Rossi | mrossi@es.it | 3331234567 | Via Roma 10 | Milano | 20121 | Lombardia | Centro | 3 | 85 | 2 | 250.000 | Disponibile |
| IMM-2001 | 2026-04-01 | Appartamento | Mario | Rossi | mrossi@es.it | 3331234567 | Via Roma 10 | Milano | 20121 | Lombardia | Centro | 3 | 85 | 2 | 250.000 | Disponibile |
| IMM-2002 | 2026-04-03 | Appartamento | Bianca | Bruno | bbruno@es.it | 3397654321 | Piazza Duomo 5 | Milano | 20123 | Lombardia | Centro Storico | 2 | 60 | 5 | 180.000 | Venduto |
| IMM-2003 | 2026-04-10 | Villa | Giovanni | Neri | gneri@es.it | 3471112233 | Via Garibaldi 20 | Torino | 10123 | Piemonte | Collina | 6 | 250 | 1 | 480.000 | Disponibile |
| IMM-2003 | 2026-04-10 | Villa | Giovanni | Neri | gneri@es.it | 3471112233 | Via Garibaldi 20 | Torino | 10123 | Piemonte | Collina | 6 | 250 | 1 | 480.000 | Disponibile |
| IMM-2003 | 2026-04-10 | Villa | Giovanni | Neri | gneri@es.it | 3471112233 | Via Garibaldi 20 | Torino | 10123 | Piemonte | Collina | 6 | 250 | 1 | 480.000 | Disponibile |
| IMM-2004 | 2026-05-12 | Appartamento | Laura | Verdi | lverdi@es.it | 3405556677 | Via Roma 10 | Milano | 20121 | Lombardia | Centro | 3 | 90 | 4 | 275.000 | Disponibile |
| IMM-2004 | 2026-05-12 | Appartamento | Laura | Verdi | lverdi@es.it | 3405556677 | Via Roma 10 | Milano | 20121 | Lombardia | Centro | 3 | 90 | 4 | 275.000 | Disponibile |
| IMM-2005 | 2026-05-18 | Appartamento | Mario | Rossi | mrossi@es.it | 3331234567 | Via Roma 10 | Milano | 20121 | Lombardia | Centro | 4 | 120 | 3 | 320.000 | Disponibile |
Creare lo schema logico seguendo le regole sulle chiavi.
4. Data la seguente tabella:
| CodiceIscrizione | DataIscrizione | NomeCorso | GiornoSettimana | OraInizio | OreTotali | NomeIstruttore | CognomeIstruttore | EmailIstruttore | QualificaIstruttore | NomeStudente | CognomeStudente | CFStudente | TelefonoStudente | ViaIndirizzo | CittaIndirizzo | CAPCitta | QuotaPagataEuro |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ISC-3001 | 2026-09-05 | Yoga Base | Lunedì | 18:00 | 32 | Anna | Bianchi | abianchi@assoc.it | Istruttore A | Luca | Conti | CNTLCU85A01F205Z | 3481234567 | Via Verdi 8 | Bologna | 40126 | 350 |
| ISC-3001 | 2026-09-05 | Yoga Base | Lunedì | 18:00 | 32 | Anna | Bianchi | abianchi@assoc.it | Istruttore A | Luca | Conti | CNTLCU85A01F205Z | 3481234567 | Via Verdi 8 | Bologna | 40126 | 350 |
| ISC-3002 | 2026-09-08 | Nuoto Livello 2 | Mercoledì | 17:30 | 40 | Paolo | Esposito | pesposito@assoc.it | Istruttore B | Sara | Moretti | MORTSR90B42H501W | 3397654321 | Corso Francia 22 | Bologna | 40127 | 500 |
| ISC-3003 | 2026-09-15 | Yoga Base | Lunedì | 18:00 | 32 | Anna | Bianchi | abianchi@assoc.it | Istruttore A | Sara | Moretti | MORTSR90B42H501W | 3397654321 | Corso Francia 22 | Bologna | 40127 | 350 |
| ISC-3004 | 2026-10-01 | Yoga Avanzato | Giovedì | 19:00 | 32 | Anna | Bianchi | abianchi@assoc.it | Istruttore A | Marco | Ferrari | FRRMRC88C15F205Y | 3471112233 | Via Verdi 8 | Bologna | 40126 | 450 |
| ISC-3004 | 2026-10-01 | Yoga Avanzato | Giovedì | 19:00 | 32 | Anna | Bianchi | abianchi@assoc.it | Istruttore A | Marco | Ferrari | FRRMRC88C15F205Y | 3471112233 | Via Verdi 8 | Bologna | 40126 | 450 |
| ISC-3005 | 2026-10-10 | Nuoto Livello 2 | Mercoledì | 17:30 | 40 | Paolo | Esposito | pesposito@assoc.it | Istruttore B | Marco | Ferrari | FRRMRC88C15F205Y | 3471112233 | Via Verdi 8 | Bologna | 40126 | 500 |
Crearne lo schema logico scomponendo le entità secondo la regola delle chiavi.
Normalizzazione
- Portare le seguenti tabelle in 1NF:
a)
| Matricola | NomeCognome | Corsi_iscritti |
|---|---|---|
| 726265 | Mario Rossi | “INF-01, MAT-01” |
| 726266 | Bianca Bruno | “INF-01, FIS-02” |
| 726267 | Giovanni Neri | “INF-02” |
| 726268 | Laura Verdi | “LET-01, LET-02, INF-01” |
b)
| Matricola | NomeCognome | Corsi_Frequentati |
|---|---|---|
| 12345 | Mario Rossi | “Matematica, Fisica” |
| 12346 | Anna Bianchi | “Informatica, Storia, Filosofia” |
| 12347 | Luca Verdi | “Biologia” |
2. Portare le seguenti tabelle in 2NF:
a)
| Codice_Vendita | Codice_Prodotto | Nome_Prodotto | Prezzo_Unitario | Quantità | Data_Vendita |
|---|---|---|---|---|---|
| V-01 | P-100 | Mouse Logitech | 35,00 | 2 | 10/06/2024 |
| V-01 | P-200 | Tastiera Cherry | 80,00 | 1 | 10/06/2024 |
| V-02 | P-300 | Monitor LG | 150,00 | 1 | 12/06/2024 |
b)
| Matricola | Codice_Corso | Nome_Corso | Data_Esame | Voto |
|---|---|---|---|---|
| 12345 | INF-01 | Programmazione | 01/06/2024 | 30 |
| 12345 | MTD-01 | Matematica | 05/06/2024 | 28 |
| 12346 | INF-01 | Programmazione | 01/06/2024 | 27 |
c)
| Codice_Vendita | Codice_Prodotto | Nome_Prodotto | Prezzo_Unitario | Quantita |
|---|---|---|---|---|
| V-100 | P-1 | Mouse | 25,00 € | 3 |
| V-100 | P-2 | Tastiera | 45,00 € | 1 |
| V-101 | P-3 | Monitor | 150,00 € | 2 |
d)
| Numero_Fattura | Codice_Articolo | Nome_Articolo | Categoria | Importo_Riga |
|---|---|---|---|---|
| FAT-01 | ART-A | Cavo USB | Accessori | 5,00 € |
| FAT-01 | ART-B | Hard Disk | Componenti | 80,00 € |
| FAT-02 | ART-A | Cavo USB | Accessori | 5,00 € |
e)
| Codice_Prenotazione | Numero_Camara | Tipo_Camera | Tariffa_Nottata | Date_Soggiorno |
|---|---|---|---|---|
| PR-501 | 101 | Doppia Standard | 100,00 € | 20/06-25/06 |
| PR-501 | 102 | Singola Deluxe | 80,00 € | 20/06-25/06 |
| PR-502 | 103 | Doppia Deluxe | 120,00 € | 21/06-22/06 |
3. Portare le seguenti tabelle in 3NF:
a)
| Matricola | NomeCognome | CorsoDiLaurea | Sede_Corso |
|---|---|---|---|
| 12345 | Mario Rossi | Informatica | Palazzo A |
| 12346 | Anna Bianchi | Lettere | Biblioteca Centrale |
| 12347 | Luca Verdi | Informatica | Palazzo A |
b)
| Id_Dipendente | NomeDipendente | Codice_Ufficio | Citta_Ufficio |
|---|---|---|---|
| D-100 | Marco Rossi | UFF-MI | Milano |
| D-200 | Laura Bianchi | UFF-RM | Roma |
| D-300 | Luca Verdi | UFF-MI | Milano |
c)
| Id_Prodotto | NomeProdotto | Codice_Categoria | Manager_Categoria |
|---|---|---|---|
| P-101 | Mouse Logitech | CAT-ELE | Dott. Smith |
| P-202 | Tastiera Cherry | CAT-ELE | Dott. Smith |
| P-303 | Monitor LG | CAT-OPT | Dott. Jones |
d)
| Id_Cliente | NomeCliente | Provincia | Zona_Spedizione |
|---|---|---|---|
| C-501 | Azienda Alfa Srl | Milano | Nord-Est |
| C-502 | Società Beta Spa | Venezia | Nord-Est |
| C-503 | Ditta Gamma Snc | Roma | Centro |
e)
| Numero_Ordine | Cliente | Codice_Magazzino | Citta_Magazzino |
|---|---|---|---|
| ORD-901 | Mario Rossi | MAG-CENTRALE | Bologna |
| ORD-902 | Anna Bianchi | MAG-NORD | Milano |
| ORD-903 | Luca Verdi | MAG-CENTRALE | Bologna |
4. Portare le seguenti tabelle in BCNF:
a)
| Studente | Corso | Titolo_Corso |
|---|---|---|
| Maria | Matematica | Analisi I |
| Maria | Fisica | Meccanica |
| Luca | Matematica | Analisi I |
b)
| Prodotto | Fornitore | Paese_Fornitore |
|---|---|---|
| Mouse | Acme Corp | USA |
| Tastiera | Acme Corp | USA |
| Monitor | Beta Ltd | Cina |
c)
| Evento | Sala | Citta_Sala |
|---|---|---|
| Conferenza A | Sala 101 | Milano |
| Seminario B | Sala 102 | Milano |
| Conferenza A | Sala 205 | Torino |
d)
| Documento | Lingua_Traduzione | Nome_Lingua |
|---|---|---|
| Doc-01 | IT | Italiano |
| Doc-01 | EN | Inglese |
| Doc-02 | IT | Italiano |
e)
| Matricola | Corso | Docente |
|---|---|---|
| 101 | INF-01 | Prof. Rossi |
| 102 | INF-01 | Prof. Rossi |
| 103 | MAT-02 | Prof. Bianchi |
| 104 | INF-01 | Prof. Verdi |
f)
| Id_Dipendente | Codice_Fiscale | Nome | Cognome |
|---|---|---|---|
| D-100 | RSSMRA80A01F205Z | Mario | Rossi |
| D-101 | BRNBNC82B42H501W | Bianca | Bruno |
| D-102 | GVNNNL85C15F205Y | Giovanni | Neri |
DDL
Create
- Crea la tabella
GENEREcon gli attributiId INT AUTO_INCREMENT,Descrizione VARCHAR(100) NOT NULL. Imposta la chiave primaria suIde aggiungi un vincolo UNIQUE sull’attributoDescrizione. - Crea la tabella
SUPPORTOcon gli attributiId INT AUTO_INCREMENT,Descrizione VARCHAR(100) NOT NULL. Imposta la chiave primaria suId. - Crea la tabella
AUTOREcon gli attributiId INT AUTO_INCREMENT,Nome VARCHAR(100) NOT NULL,Cognome VARCHAR(100) NOT NULL. Imposta la chiave primaria suId. - Crea la tabella
CASA_DISCOGRAFICAcon gli attributiId INT AUTO_INCREMENT,Nome VARCHAR(150) NOT NULL. Imposta la chiave primaria suIde aggiungi un vincolo UNIQUE sull’attributoNome. - Crea la tabella
ALBUMcon gli attributiId INT AUTO_INCREMENT,Titolo VARCHAR(200) NOT NULL,Anno INT NOT NULL,CasaDiscograficaId INT NOT NULL,AutoreId INT. Imposta la chiave primaria suIde aggiungi due chiavi esterne: una daCasaDiscograficaIdaCASA_DISCOGRAFICA(Id)e una daAutoreIdaAUTORE(Id). - Crea la tabella
CONTRATTOcon gli attributiId INT AUTO_INCREMENT,Durata INT NOT NULL,AutoreId INT NOT NULL,CasaDiscograficaId INT NOT NULL. Imposta la chiave primaria suIde aggiungi due chiavi esterne: una daAutoreIdaAUTORE(Id)con ON DELETE CASCADE e una daCasaDiscograficaIdaCASA_DISCOGRAFICA(Id). - Crea la tabella
CANZONEcon gli attributiId INT AUTO_INCREMENT,Titolo VARCHAR(200) NOT NULL,AlbumId INT NOT NULL. Imposta la chiave primaria suIde aggiungi una chiave esterna daAlbumIdaALBUM(Id)con ON DELETE CASCADE. - Crea la tabella
BOOKLETcon gli attributiId INT AUTO_INCREMENT,Pagine INT NOT NULL,AlbumId INT NOT NULL. Imposta la chiave primaria suIde aggiungi una chiave esterna daAlbumIdaALBUM(Id)con ON DELETE CASCADE. - Crea la tabella di relazione
ALBUM_GENEREcon gli attributiAlbumId INT NOT NULL,GenereId INT NOT NULL. Imposta una chiave primaria composta su entrambi gli attributi e aggiungi due chiavi esterne: daAlbumIdaALBUM(Id)con ON DELETE CASCADE e daGenereIdaGENERE(Id)con ON DELETE CASCADE. - Crea la tabella di relazione
ALBUM_SUPPORTOcon gli attributiAlbumId INT NOT NULL,SupportoId INT NOT NULL. Imposta una chiave primaria composta su entrambi gli attributi e aggiungi due chiavi esterne: daAlbumIdaALBUM(Id)con ON DELETE CASCADE e daSupportoIdaSUPPORTO(Id)con ON DELETE CASCADE.
Alter-Drop
- Aggiungi alla tabella
AUTOREla colonnaNazionalita VARCHAR(50) DEFAULT 'Italiana'. - Modifica nella tabella
ALBUMla colonnaTitolo, impostandola comeVARCHAR(500) NOT NULL. - Rinomina nella tabella
CASA_DISCOGRAFICAla colonnaNomeinRagioneSociale VARCHAR(250) NOT NULL. - Elimina dalla tabella
ALBUMla colonnaAnno. - Rimuovi dalla tabella
CANZONEil vincolo di chiave esterna denominatoFK_Canzone_Album. - Nella tabella
CANZONErimuovi prima il vincoloFK_Canzone_Album, poi riaggiungilo con comportamento ON DELETE RESTRICT. - Rimuovi dalla tabella
BOOKLETla chiave primaria con il comando DROP PRIMARY KEY. - Rinomina la tabella
CASA_DISCOGRAFICAinETICHETTA_DISCOGRAFICA. - Elimina la tabella
ALBUM_GENEREe successivamente elimina la tabellaGENERE, rispettando l’ordine delle dipendenze. - Elimina la tabella
GENEREusando la clausola IF EXISTS e infine elimina l’intero database con il comando DROP DATABASE.
Esercizi di DDL strutturati
Nei seguenti esercizi viene proposto di creare un database, con un insieme di tabelle, attributi e vincoli. Scrivere le istruzioni DDL per crearli.
Esercizio 1: Libreria di Libri
Schema:
Autore (IdPK, Nome)Editore (IdPK, RagioneSociale)Libro (IdPK, Titolo, AutoreIdFK, EditoreIdFK)Recensione (IdPK, Voto, LibroIdFK)
Vincoli:
Libro.AutoreId->Autore.Id(ON DELETE RESTRICT)Libro.EditoreId->Editore.Id(ON DELETE CASCADE)Recensione.LibroId->Libro.Id(ON DELETE CASCADE)
Esercizio 2: Gestione Personale Aziendale
Schema:
Dipartimenti (IdPK, Nome)Manager (IdPK, Nome, DipartimentoIdFK)Dipendenti (IdPK, Nome, ManagerIdFK, DipartimentoIdFK)Progetti (IdPK, Titolo)
Vincoli:
Dipendenti.ManagerId->Manager.Id(ON DELETE SET NULL)Dipendenti.DipartimentoId->Dipartimenti.Id(ON DELETE RESTRICT)Manager.DipartimentoId->Dipartimenti.Id(ON DELETE RESTRICT)
Esercizio 3: E-commerce
Schema:
Clienti (IdPK, Nome)Prodotti (IdPK, Nome, Prezzo)Ordini (IdPK, Data, ClienteIdFK)CestinoOrdine (OrdineIdFK, ProdottoIdFK, Quantita)
Vincoli:
Ordini.ClienteId->Clienti.Id(ON DELETE CASCADE)CestinoOrdine.OrdineId->Ordini.Id(ON DELETE CASCADE)CestinoOrdine.ProdottoId->Prodotti.Id(ON DELETE RESTRICT)
Esercizio 4: Anagrafe Studentesca
Schema:
Corso (IdPK, Nome)Studente (IdPK, Matricola, CorsoIdFK)Esame (IdPK, CFU, CorsoIdFK)Voto (StudenteIdFK, EsameIdFK, Punteggio)
Vincoli:
Studente.CorsoId->Corso.Id(ON DELETE RESTRICT)Voto.StudenteId->Studente.Id(ON DELETE CASCADE)Voto.EsameId->Esame.Id(ON DELETE RESTRICT)
Esercizio 5: Sistema di Prenotazione Hotel
Schema:
Camera (IdPK, Tipo)Cliente (IdPK, Nome)Prenotazione (IdPK, DataInizio, CameraIdFK, ClienteIdFK)
Vincoli:
Prenotazione.CameraId->Camera.Id(ON DELETE RESTRICT)Prenotazione.ClienteId->Cliente.Id(ON DELETE CASCADE)
Esercizio 6: Gestione Biblioteca Video
Schema:
Regista (IdPK, Nome)Attore (IdPK, Nome)Film (IdPK, Titolo, RegistaIdFK)Cast (FilmIdFK, AttoreIdFK)
Vincoli:
Film.RegistaId->Regista.Id(ON DELETE SET NULL)Cast.FilmId->Film.Id(ON DELETE CASCADE)Cast.AttoreId->Attore.Id(ON DELETE RESTRICT)
Esercizio 7: Farmacia
Schema:
Medicamento (IdPK, Nome)Fornitore (IdPK, RagioneSociale)Scadenza (MedicamentoIdFK, DataScadenza)Vendita (IdPK, MedicamentoIdFK, FornitoreIdFK)
Vincoli:
Scadenza.MedicamentoId->Medicamento.Id(ON DELETE CASCADE)Vendita.MedicamentoId->Medicamento.Id(ON DELETE RESTRICT)Vendita.FornitoreId->Fornitore.Id(ON DELETE RESTRICT)
Esercizio 8: Social Network
Schema:
Utente (IdPK, Username)Post (IdPK, Testo, UtenteIdFK)Commento (IdPK, Testo, PostIdFK, UtenteIdFK)
Vincoli:
Post.UtenteId->Utente.Id(ON DELETE CASCADE)Commento.PostId->Post.Id(ON DELETE CASCADE)Commento.UtenteId->Utente.Id(ON DELETE RESTRICT)
Esercizio 9: Gestione Magazzino
Schema:
Sede (IdPK, Indirizzo)Prodotto (IdPK, SKU)Magazzino (SedeIdFK, ProdottoIdFK, Quantita)
Vincoli:
Magazzino.SedeId->Sede.Id(ON DELETE RESTRICT)Magazzino.ProdottoId->Prodotto.Id(ON DELETE CASCADE)
Esercizio 10: Sistema di Biglietteria
Schema:
Evento (IdPK, Nome)Sala (IdPK, Nome)Posto (IdPK, Numero, SalaIdFK)Biglietto (IdPK, EventoIdFK, PostoIdFK)
Vincoli:
Posto.SalaId->Sala.Id(ON DELETE CASCADE)Biglietto.EventoId->Evento.Id(ON DELETE RESTRICT)Biglietto.PostoId->Posto.Id(ON DELETE RESTRICT)
Progettazione
Per ogni progetto:
- Definire diagramma E/R
- Diagramma logico
- Regole di normalizzazione
- Scrivere le Query DDL di generazione
- Popolamento (usare un generatore Dati, come un LLM).
- Svolgere infine le query indicate dall’esercizio.
Gestione biblioteca scolastica
Una Biblioteca ha un catalogo di Libri, ciascuno caratterizzato da un ISBN, un titolo e un anno di pubblicazione. Ogni libro appartiene a un genere e può essere scritto da uno o più Autori, di cui si memorizzano codice autore, nome e nazionalità. I Lettori registrati (identificati da codice fiscale, nome, cognome ed email) possono effettuare dei Prestiti. Un prestito riguarda un singolo libro, viene effettuato in una data di inizio e prevede una data di restituzione prevista e una data di restituzione effettiva.
Entità attese: Libro, Autore, Lettore, Prestito.
Popolamento: Inserire 500 libri, con almeno 100 autori. Inserire 100 utenti, e uno storico di almeno 200 prestiti.
Query:
- Autore con più libri
- Lettore con più prestiti
- Libri in prestito attualmente
- Libro più prestato.
Piattaforma E-Commerce
Un Cliente (identificato da id cliente, nome, cognome, email) può registrare uno o più Indirizzi di spedizione (id indirizzo, via, cap, città). Il cliente effettua Ordini d’acquisto (id ordine, data, stato), indicando l’indirizzo di spedizione prescelto. Un ordine è composto da più VociOrdine; ogni voce d’ordine fa riferimento a un singolo Prodotto e specifica la quantità acquistata e il prezzo unitario applicato al momento della vendita. I prodotti (id prodotto, nome, prezzo di listino) sono suddivisi in Categorie (id categoria, nome categoria). Ciascun prodotto appartiene a una sola categoria.
Entità attese: Cliente, Indirizzo, Ordine, VoceOrdine, Prodotto, Categoria.
Popolamento: 100 prodotti, 10 categorie, 30 clienti, 40 indirizzi, 60 ordini, con mediamente da 2 a 5 voci per ordine.
Query:
- Indicare totale medio per ordine
- Numero ordini per cliente
- Cliente con più ordini
- Prodotto più venduto
- Categoria con più prodotti venduti
Centro medico
Un Paziente (codice fiscale, nome, cognome, data di nascita) può prenotare diverse Visite mediche. Ogni visita si svolge in una determinata data e ora, presso un Ambulatorio (numero stanza, piano) ed è condotta da un Medico (matricola, nome, cognome). Un medico afferisce a una o più Specializzazioni (codice, nome specializzazione). Al termine della visita viene redatto un singolo Referto (id referto, diagnosi, data redazione). Durante la visita, il medico può eseguire la Prescrizione di uno o più Farmaci (codice AIC, nome commerciale) .
Entità attese: Paziente, Visita, Ambulatorio, Medico, Specializzazione, Referto, Prescrizione, Farmaco
Popolamento: 100 pazienti, 10 medici, 5 specializzazioni, 2 ambulatori, 200 referti, 100 prescrizioni, 20 farmaci
Query:
- Numero visite per ambulatorio
- Numero visite per specializzazione
- Paziente con più visite
- Medico con più visite
- Farmaco maggiormente prescritto
- Paziente con più prescrizioni
Gestione progetti aziendali
Un Dipendente (matricola, codice fiscale, nome, cognome) lavora all’interno di un Dipartimento (codice dipartimento, nome), il quale è diretto da un solo dipendente responsabile. I dipendenti vengono assegnati a diversi Progetti (codice progetto, nome, budget) con un dipendente che ne è responsabile; l’assegnazione prevede una data inizio, una data fine e un Ruolo coperto (codice ruolo, descrizione). Ogni progetto è commissionato da un Cliente (partita IVA, ragione sociale). Nel tempo, un dipendente subisce variazioni di stipendio: si vuole tracciare lo StoricoStipendio (id storico, data decorrenza, importo mensile).
Entità attese: Dipendente, Dipartimento, Progetto, Ruolo, Cliente, StoricoStipendio
Popolamento: 30 dipendenti, 5 dipartimenti, 12 progetti, 5 ruoli, 6 clienti, 50 storici stipendio
Query:
- Dipendente più pagato e meno pagato
- Elenco di dipendenti attualmente su più progetti, con relativo ruolo
- Dipartimento con più persone attualmente coinvolte in progetti
- Cliente che ha speso più budget
- Dipendente che ha ricevuto più cambi di stipendio
Assistenza IT
L’azienda gestisce Utenti (id utente, email, password) che si dividono nelle specializzazioni ClienteFinale (codice cliente, azienda) e Tecnico (matricola). Un ClienteFinale apre dei Ticket di assistenza (codice ticket, oggetto, data apertura, priorità, data ultimo intervento, note tecniche). Ciascun ticket è associato a una Categoria (id categoria, nome) e riguarda uno specifico Asset (codice inventario, tipo apparato, modello). Ogni ticket può subire diversi cambi di Stato, memorizzati in uno StoricoStato (data cambio, stato raggiunto, tecnico).
Entità attese: Utente, ClienteFinale, Tecnico, Ticket, Categoria, Asset,Stato, StoricoStato.
Popolamento: 30 utenti, 25 clienti finali, 5 tecnici, 100 ticket, 15 asset, 5 categorie, 3 stati (creato, preso in carico, chiuso), 250 storicistato.
Query:
- ClienteFinale che ha aperto più ticket
- Tecnico che ha gestito più ticket
- Numero di ticket presi in carico per tecnico
- Numero di ticket chiusi per tecnico
- Asset con più ticket
- Categoria con più ticket aperti
- Tecnico con più operazioni su una certa categoria
