Tu sei qui

Basi di dati

Basi di Dati
Corso di Laurea Triennale in Informatica F004

SCV0040
Docente: Elena Ferrari


CFU SSD LEZIONI LABORATORIO ANNO LINGUA
9 INF/01 64 16 II Italiano


Obiettivi dell’insegnamento e risultati di apprendimento attesi
Il corso ha come obiettivo l'acquisizione degli strumenti, dei modelli e dei linguaggi per l'utilizzo, la progettazione e lo sviluppo di basi di dati relazionali e di applicazioni per tali basi di dati.
Conoscenza e capacità di comprensione
Il corso si propone di fornire le conoscenze di base per l’utilizzo e la progettazione di basi di dati relazionali, con particolare riferimento allo studio del modello relazionale e alla metodologia di progettazione di basi di dati basata sul modello entity-relationship.
In particolare, si desidera che lo studente sappia, sulla base delle conoscenze acquisite tramite le lezioni, comprendere ed utilizzare il modello relazionale per la gestione ed organizzazione dei dati ed i principali strumenti di modellazione per la progettazione di basi di dati che utilizzano il modello relazionale.
Conoscenza e capacità di comprensione applicate
Il corso ha una notevole valenza applicativa. In particolare, una rilevante parte del corso verrà dedicata al linguaggio SQL, linguaggio standard per la gestione e l’interrogazione di basi di dati, sia in modalità stand-alone, sia quando SQL viene utilizzato congiuntamente ad un linguaggio di programmazione. Lo studio del linguaggio SQL verrà facilitato mediante esercitazioni su un DBMS relazionale commerciale, al fine di mettere in grado lo studente, alla fine del corso, di utilizzare operativamente il linguaggio SQL sia per la creazione dello schema di una base di dati, sia per la manipolazione e l’interrogazione delle sue istanze. Verranno inoltre mostrati esempi di programmi in linguaggio Java che si interfacciano ad una base di dati relazionale. Il corso prevede inoltre lo studio delle metodologie di progettazione di una base di dati relazionale, studio che verrà esemplificato anche tramite presentazioni di casi di studio. Ci si aspetta che lo studente, alla fine del corso, sia in grado di condurre tutte le fasi della progettazione di una base di dati e di interagire in modo professionale con gli eventuali committenti.
Autonomia di giudizio e abilità comunicative
I risultati di apprendimento attesi comprendono la capacità di saper condurre tutte le fasi della progettazione di una base di dati, comunicando con linguaggi appropriati con gli eventuali committenti. Ci si attende inoltre che lo studente sia un grado di rilevare eventuali errori di progettazione o nella formulazione di un comando SQL.
Capacità di apprendere
La conoscenza dei modelli per la gestione dati e dei linguaggi per la loro implementazione, permette l’acquisizione di adeguate capacità per l'approfondimento individuale delle proprie conoscenze e per lo sviluppo di nuove competenze. Questo è una capacità di notevole importanza in un contesto in rapida evoluzione come l’informatica. Ad esempio, non dovrebbe essere difficile per uno studente che ha seguito proficuamente il corso, apprendere autonomamente i concetti base di un nuovo modello dei dati o la programmazione di applicazioni che si interfacciano ad una base di dati con un linguaggio diverso dal linguaggio Java visto a lezione.

Prerequisiti
Corso di programmazione.

Contenuti e programma del corso

  1. Introduzione alle basi di dati e ai sistemi di gestione di basi di
    dati (concetti introduttivi; dai sistemi operativi ai DBMS; obiettivi e servizi di un DBMS; modelli dei dati ed evoluzioni; livelli nella rappresentazione dei dati; linguaggi ed utenti di un DBMS).
  2. Il modello relazionale (relazioni; valori nulli; chiavi e chiavi esterne
  3. Il linguaggio SQL – comandi del DDL (tipi di dato; creazione di relazioni; cancellazione e modifica di relazioni).
  4. Il linguaggio SQL – comandi del DML
    1. interrogazioni in SQL, ovvero: formato di base del comando SELECT, operatori e funzioni, ordinamento del risultato di un’interrogazione, operazione di join, funzioni di gruppo e raggruppamento, valori nulli, sotto-interrogazioni, operazioni insiemistiche;
    2. operazioni di aggiornamento, ovvero: inserimento di tuple, cancellazione di tuple, modifica di tuple).
  5. Il linguaggio SQL – ulteriori comandi (vincoli CHECK ed asserzioni; controllo di vincoli di integrità; viste).
  6. SQL e linguaggi di programmazione (estensioni procedurali di SQL;librerie di funzioni; SQL ospitato).
  7. Il concetto di transazione – cenni.
  8. Progettazione concettuale
    1. fasi della progettazione; modello Entità-Relazione, ovvero: costrutti di base; vincoli di integrità; gerarchie di generalizzazione;
    2. metodologie di progettazione, ovvero: raccolta ed analisi dei requisiti, ristrutturazione delle specifiche, generazione schemi ER;
    3. verifica di qualità di schemi ER.
  9. Progettazione logica
    1. fase di ristrutturazione, ovvero: eliminazione degli attributi composti e multi valore, eliminazione delle gerarchie di generalizzazione;
    2. fase di traduzione, ovvero: traduzione entità, traduzione associazioni, schema finale ed ottimizzazioni.

Tipologia delle attività didattiche
Lezioni frontali ed esercitazioni di SQL su un DBMS commerciale.

Testi e materiale didattico
B. Catania, E. Ferrari, e G. Guerrini.Sistemi di Gestione Dati: Concetti e Architetture, CittàStudi Edizioni, 2006.
B. Carminati, A. Maddalena, M. Mesiti. Sistemi di Gestione Dati (Esercizi),CittàStudi Edizioni, 2008.
Dispense e slide delle lezioni e delle esercitazioni sul sito di e-learning.


Modalità di verifica dell’apprendimento
Esiste il solo esame finale, che accerta l’acquisizione delle conoscenze e delle abilità attese tramite lo svolgimento di una prova scritta della durata di 2 ore e 30 circa senza l'aiuto di appunti o libri. La prima parte dura di norma un’ora, mentre la seconda un’ora e trenta. La prova scritta consiste di 2 parti. La prima parte consta di 5/6 domande di teoria, a cui è attribuito uguale punteggio, mentre la seconda parte consiste di 3 esercizi. Le domande di teoria hanno come argomento il programma trattato nelle lezioni frontali e richiedono una risposta sintetica. Gli esercizi sono volti ad accertare le conoscenze di SQL e delle metodologie di progettazione. In particolare il primo esercizio verte sui comandi di SQL DDL, il secondo richiede la formulazione di un insieme di query SQL, mentre l’ultimo esercizio verte sulla progettazione concettuale e logica. Il primo esercizio consente di ottenere un massimo di 8 punti, il secondo 12, mentre il terzo 10. L’attribuzione del voto finale sarà determinata per 1/3 dal voto ottenuto nella prima parte (domande teoriche) e per 2/3 dal voto ottenuto nella seconda parte (esercizi). Per superare l’esame bisogna ottenere un minimo di 18/30 in entrambe le parti.


Orario di ricevimento
In coda alle lezioni o concordato tramite email con il docente.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer