Esercizi database
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
