Università degli Studi Guglielmo Marconi

Insegnamento
Basi di dati e di conoscenza
Docente
Prof. Regoli Luca
Settore Scientifico Disciplinare
ING-INF/05
CFU
12
Descrizione dell'insegnamento

Il corso si prefigge di presentare le caratteristiche di sistemi basati sulla tecnologia delle basi di dati, in particolare quelli relazionali, la loro architettura e i principi ai quali si ispirano, ponendosi dal punto di vista dei progettisti delle applicazioni. Si studieranno inoltre i sistemi per la gestione dei dati, i linguaggi di interrogazione e le metodologie di progettazione delle basi di dati stesse.
Il corso è articolato in sei moduli, il primo dei quali specifica i diversi modelli di basi di dati, l’algebra relazionale ed il calcolo relazionale. Il secondo modulo è dedicato all’apprendimento del linguaggio SQL con diversi esempi di applicazione. Nel terzo modulo sono presentati i passi di progettazione di una base di dati. Nel quarto modulo viene illustrata la modalità con cui costruire un ambiente di esercitazione per permettere allo studente di esercitarsi. Il quinto modulo presenta le architetture ed i meccanismi di funzionamento di un RDBMS. Il sesto modulo contiene un seminario “dalle basi di dati alle basi conoscenza”.

Obiettivi formativi (espressi come risultati di apprendimento attesi)
Al termine di questo corso, lo studente sarà in grado di:
  • comprendere i concetti ed i meccanismi di funzionamento del modello relazionale;
  • conoscere l’algebra e il calcolo relazionale;
  • saper utilizzare il linguaggio SQL;
  • saper progettare una base di dati;
  • saper usare un RDBMS;
  • saper analizzare le basi di conoscenza;
  • valutare in autonomia quali scelte adottare per garantire il livello di normalizzazione ottimale di una base dati;
  • esprimere con opportuno linguaggio gli argomenti del corso;
  • disporre degli strumenti per apprendere e integrare le conoscenze di base fornite dal corso con le specifiche necessità di progetti/sviluppi che si affronteranno in ambito lavorativo o in studi successivi.
Prerequisiti

Non si richiedono conoscenze particolari per sostenere questo esame.

E’  tuttavia necessario conoscere la programmazione con linguaggi imperativi per poter svolgere le prove in itinere (tipicamente php). E' necessaria inoltre la conoscenza di strumenti base di accesso a spazi web condivisi (ftp, sftp) nonchè l'utilizzo di editor per programmazione (es. vim). Auspicabile una manualità di base degli strumenti di web development (conoscenza di html).

Contenuti dell'insegnamento
Modulo 1
  • Introduzione dalle Basi di Dati
  • Basi di dati: le proprietà fondamentali
  • Il modello relazionale
  • L’algebra relazionale
Modulo 2
  • Il linguaggio SQL
Modulo 3
  • La progettazione concettuale
  • La progettazione logica
  • La normalizzazione: teoria e applicazioni
  • La progettazione fisica
Modulo 4
  • Costruzione ambiente di esercitazione e prove in itinere
Modulo 5
  • Transazioni e concorrenza
  • Architetture distribuite
  • Basi Dati attive
  • Architetture WEB
  • Basi di conoscenza
Modulo 6
  • Seminario “dalle basi di dati alle basi conoscenza”

Esercitazioni
Il corso prevede alcune esercitazioni suggerite dal docente; vengono anche indicati due libri su cui svolgere esercizi e da cui sono in parte tratte le esercitazioni.

Vengono proposti due progetti pratici da realizzare a cura dello studente. I progetti sono obbligatori e propedeutici per poter svolgere l’esame.

Attività didattiche
Didattica Erogativa
L'insegnamento prevede, per ciascun CFU, 5 ore di Didattica Erogativa, costituite da 2,5 videolezioni (tenendo conto delle necessità di riascolto da parte dello studente). Ciascuna videolezione esplicita i propri obiettivi e argomenti, ed è corredata da materiale testuale in pdf.
L’insegnamento prevede videolezioni (in ognuna sono specificati gli argomenti e gli obiettivi organizzate in moduli.
Alcune videolezioni sono perlopiù teoriche con lo scopo di far conoscere le basi di funzionamento su cui si basano le basi di dati relazionali. Altre videolezioni hanno un carattere pratico al fine di fornire allo studente la capacità di sviluppare e progettare una base di dati effettuando le opportune scelte in autonomia sulla base dei requisiti progettuali. Si farà uso di una terminologia adeguata agli argomenti trattati.

Didattica Interattiva
L'insegnamento segue quanto previsto dalle Linee Guida di Ateneo sulla Didattica Interattiva e l'interazione didattica, e propone, per ciascun CFU, 1 ora di Didattica Interattiva dedicata alle seguenti attività: lettura area FAQ, partecipazione ad e-tivity strutturata costituita da attività finalizzate alla restituzione di un feedback formativo e interazioni sincrone dedicate a tale restituzione.
Al termine dello studio dei capitoli di progettazione di una base di dati e del linguaggio SQL, lo studente dovrà redarre le due prove in itinere obbligatorie previste; tali prove sono propedeutiche all'esame finale.
Lo svolgimento delle prove sarà fondamentale affinché lo studente possa comprendere il livello di assimilazione dei concetti appresi. Nel caso in cui lo studente trovi difficoltà nell'approccio alle prove, è consigliato lo svolgimento degli esercizi di progettazione dal libro "Esercizi di progettazioni di Basi di Dati". Tale libro riporta anche le soluzioni ragionate di tali esercizi e permette di comprendere a fondo i passi di progettazione illustrati nelle lezioni.
Si richiede di predisporre le due prove almeno 20 giorni prima della data dell'appello. Lo studente è invitato a comunicare al tutor ed al professore gli url delle home page delle prove, nonché le credenziali applicative di accesso alle prove.
Nel corso dello sviluppo delle prove in itinere lo studente normalmente interagisce con il docente in maniera asincrona tramite messaggi di posta elettronica/su piattaforma dell’Università. Tra le interazioni sincrone, sono utilizzate anche le aule virtuali in genere così strutturate:
-    il docente espone i temi da sviluppare e le modalità con cui affrontare gli sviluppi;
-    lo studente svolge in autonomia gli esercizi;
-   durante l’aula virtuale, il docente dà un “feedback formativo” ovvero valuta il livello di apprendimento degli argomenti del corso, raccoglie i dubbi e fornisce chiarimenti ed eventuali approfondimenti in base alle scelte effettuate sulle strategie di sviluppo e alle difficoltà riscontrate. Il docente favorirà la discussione e il confronto al fine di sviluppare competenze critiche.

Modalità di verifica dell'apprendimento
Tutte le prove di verifica e autoverifica intermedie previste dai Corsi ed erogate in modalità distance learning sono da considerarsi altamente consigliate e utili ai fini della preparazione e dello studio individuali. Le prove di verifica e autoverifica intermedie non sono obbligatorie ai fini del sostenimento della prova d´esame, la quale deve essere svolta in presenza dello studente davanti ad apposita Commissione ai sensi dell´art. 11 c.7 lett.e) del DM 270/2004.

L’esame si svolge in forma scritta e/o orale. Il punteggio della prova è espresso in trentesimi. La prova scritta ha una durata massima di 120 minuti e consiste nel sottoporre allo studente una serie di domande alle quali lo studente dovrà rispondere in maniera soddisfacente attenendosi all’argomento richiesto senza dilungarsi su argomenti collegati ma non centrali nella domanda. Le domande richiedono di norma la spiegazione o la descrizione di argomenti ben precisi trattati durante il corso, che mirano a dimostrare la conoscenza e comprensione dei meccanismi di funzionamento di una base dati e la capacità dello studente di applicare tali conoscenze per lo sviluppo di un progetto e di risolvere alcune query in linguaggio SQL.
Normalmente le prove di esame sono strutturate in tre esercizi a difficoltà variabile ed è sempre indicato il valore massimo del punteggio conseguibile dall’esercizio.
Parte del punteggio è riservato alle prove in itinere che lo studente avrà affrontato prima dell’appello.

Al fine di valutare il conseguimento degli obiettivi formativi del corso, il docente terrà conto nella valutazione finale dell’esame:
  • della capacità di apprendere e quindi di esporre l’argomento richiesto;
  • della padronanza di linguaggio dello studente;
  • della capacità di applicare correttamente i diversi passi di progettazione di una base dati;
  • della autonomia che mostrerà nelle scelte di progettazione.
Per superare l’esame, lo studente deve dimostrare di aver acquisito conoscenze sufficienti sui concetti di base del funzionamento di un RDBMS, del linguaggio SQL, del modello relazionale e dell’algebra relazionale. Per conseguire un punteggio pari a 30/30 e lode, lo studente deve invece dimostrare di aver acquisito una conoscenza eccellente di tutti gli argomenti trattati durante il corso e di essere in grado di applicare i concetti teorici.
Libri di testo

Oltre alle lezioni realizzate dal Docente ed ai materiali didattici pubblicati in piattaforma, è obbligatorio lo studio dei seguenti testi:

  • Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone, Basi di dati- Modelli e linguaggi di interrogazione, McGrawHill Editrice, edizione 2009;
  • Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi, Riccardo Torlone, Basi di dati Architetture e linee di evoluzione, McGrawHill Editrice, edizione 2007;
  • Maio, Rizzi, Franco, Esercizi di progettazioni di Basi di Dati, Esculapio Editrice. 2° Edizione 2005;
  • Andy Oppel, SQL – tecniche e soluzioni, McGrawHill, febbraio 2006.
Ricevimento studenti

Previo appuntamento (l.regoli@unimarconi.it).