Compiti ed esercitazioni VERIFICATO

PROVA PRATICA DEL GIUGNO 2018

Università degli studi di Firenze informatica 2018
24 visualizzazioni
6 download
Nessun voto ancora
Condividi: WhatsApp Telegram
Anteprima pagina 1 — PROVA PRATICA DEL GIUGNO 2018

Stai vedendo l'anteprima delle prime pagine. Il file completo è gratis: registrati per leggerlo tutto.

Di cosa parla

  • **Istruzioni Generali:**
    • Creare una cartella BDSI sul computer.
    • Scaricare file specifici (Compito.sql, CorsiDiLaurea.csv, Corsi.in, Iscrizioni.in, DatiInsert.txt) nella cartella BDSI.
    • Rispondere alle domande nel file Compito.sql, includendo nome, cognome e numero di matricola.
    • Salvare il file con il proprio cognome e spedirlo per l'appello del 12 giugno 2018.
  • **Schema della Base di Dati di Riferimento:**
    • **Tabella CorsiDiLaurea:** CorsoLaurea (Intero, 4), Nome (Carattere, 40), Scuola (Carattere, 30), TipoLaurea (Enumerativo, LoLM).
    • **Tabella Docenti:** DocenteId (Intero, 4, autoincrementale), DNome (Carattere, 30), Dipartimento (Carattere, 20).
    • **Tabella Studenti:** Matricola (Intero, 4), SNome (Carattere, 30), AnnoDiNascita (Anno), CorsoLaurea (Integer, 4).
    • **Tabella Corsi:** SiglaC (Carattere, 10), CorsoLaurea (Integer, 4), OraRicevimento (Temporale), Aula (Carattere, 10), DocenteId (Integer, 4).
    • **Tabella Iscrizioni:** Matricola (Intero, 4), SiglaC (Carattere, 10), Anno (Anno).
  • **Vincoli di Integrità Referenziale:**
    • Studenti.CorsoLaurea → CorsiDiLaurea.CorsoLaurea
    • Corsi.DocenteId → Docenti.DocenteId
    • Corsi.CorsoLaurea → CorsiDiLaurea.CorsoLaurea
    • Iscrizioni.Matricola → Studenti.Matricola
    • Iscrizioni.SiglaC → Corsi.SiglaC
  • **Esercizi:**
    1. **Script di Creazione Tabelle:** Creare le tabelle con vincoli di integrità referenziale. Gli aggiornamenti devono propagarsi a cascata, mentre le cancellazioni non sono consentite.
    2. **Popolamento Dati:**
      • Docenti e Studenti: usare `INSERT INTO` da `DatiInsert.txt`.
      • CorsiDiLaurea, Corsi e Iscrizioni: usare `LOAD DATA` da `.csv` e `.in` files.
    3. **Query SQL (9 richieste):**
      • Trovare nomi studenti iscritti ad almeno un corso.
      • Trovare sigla corsi triennali ('L') della Scuola di Scienze e docente relativo.
      • Trovare DocenteId dei corsi senza studenti frequentanti (usando `NOT IN` e `NOT EXISTS`).
      • Trovare sigla corsi del corso di laurea Informatica B032 e docente relativo.
      • Per ogni tipo di laurea (LoLM), restituire TipoLaurea e l'età media degli studenti.
      • Trovare sigla corsi seguiti solo da studenti del corso di laurea Informatica B032.
      • Per ogni studente della Scuola di Scienze, trovare matricola e numero di corsi seguiti.
      • Trovare nome e DocenteId dei docenti che insegnano corsi seguiti da più di 2 studenti.
      • Realizzare un controllo per impedire l'inserimento di nuovi corsi con `OraRicevimento` o `Aula` NULL.
    4. **Procedura di Archiviazione:** Scrivere una procedura `Archivia(anno)` che sposta le tuple anteriori all'anno specificato dalla tabella `Iscrizioni` a `ArchivioIscrizioni` (stessa struttura) e le elimina da `Iscrizioni`. Segnalare se non ci sono dati da archiviare.
    5. **Trigger di Logging:** Definire una tabella `LogCorsi` (ID univoco, data/ora modifica, ID record modificato). Creare un trigger `ModificaCorsi` che inserisca una nuova riga in `LogCorsi` ogni volta che la tabella `Corsi` viene aggiornata, usando `NOW()` per la data/ora.

Questo appunto è gratis. Registrati in 30 secondi per leggere tutte le pagine e scaricarlo.

Altri appunti di BASI DI DATI E SISTEMI INFORMATIVI

Condividi questi appunti

WhatsApp Telegram