Sito ufficiale del corso di Applicazioni Web e Basi di Dati (01TUHPC) per studenti della Laurea Triennale e della Laurea Magistrale in Ing. del Cinema e dei Mezzi di Comunicazione.

Questa pagina è relativa ad un'edizione precedente del corso. Per consultare le informazioni sull'ultima edizione andare a http://bit.ly/polito-webdb

Avvisi

  • 2020-01-15: La consegna dell'Homework su NodeJS deve avvenire tramite file ZIP (contenente tutti i file necessari)
  • 2019-12-19: Nella sezione “Materiale” è stato pubblicato il testo del terzo homework (ER), con scadenza 09/01/20.
  • 2019-12-17: Nella sezione “Esame” sono stati pubblicati alcuni esempi di temi d'esame.
  • 2019-12-15: Nella sezione “Materiale” è stato pubblicato il testo del secondo homework (NodeJS), con scadenza 15/01/20.
  • 2019-12-11: Il recupero del laboratorio del 9/12 sarà venerdì 20/12 dalle 8.30 alle 11.30. Venerdì 20/12 l'orario del corso sarà il seguente:
    • 8.30-10.00 - Laib1T: studenti di laurea magistrale
    • 10.00-11.30 - Laib1T: studenti di laurea triennale
    • 11.30-13.00 - Aula 11I: lezione in aula
  • 2019-12-07: Lunedi' 9 dicembre non ci sara' laboratorio dalle 10.00 alle 13.00, ma ci sara' lezione dalle 8.30 alle 11.30.
  • 2019-11-26: Devo inserire due blocchi aggiuntivi di lezione, per recuperare le ore perse a causa delle festivita' del 1 novembre e del 6 gennaio:
    • giovedì 5 dicembre dalle 11.30 alle 13.00, aula 10C
    • giovedì 9 gennaio dalle 11.30 alle 13.00, aula 10C
  • 2019-11-20: CAMBIO AULA - A partire da venerdi' 22/11 le lezioni del venerdi' non saranno piu' in aula 3M ma:
    • dalle 10.00 alle 11.30 in aula 7
    • dalle 11.30 alle 13.00 in aula 11I
  • 2019-11-20: Nella sezione “Programma” sono state pubblicate le regole d'esame.
  • 2019-11-17: Nella sezione “Materiale” è stato pubblicato il testo del primo homework (SQL), con scadenza 1/12/19. Per la consegna attenersi alle istruzioni specificate.
  • 2019-10-04: Pubblicata la suddivisione in squadre per il laboratorio, vedere nella sezione Materiale
  • 2019-09-21: Lunedì 30 settembre non ci sarà laboratorio, ma lezione dalle 8.30 alle 11.30 (in aula 11I dalle 8.30 alle 10.00 e in aula 7T dalle 10.00 alle 11.30).
  • 2019-09-17: Benvenuti all'edizione 2019/2020 del corso!

Informazioni

Presentazione

Docenti

  • prof. Laura Farinetti (This email address is being protected from spambots. You need JavaScript enabled to view it.)
  • ing. Lorenzo Canale (This email address is being protected from spambots. You need JavaScript enabled to view it.)

Orario del corso

Giorno e ora Tipologia Aula Note
Lunedì 8:30-10:00 Lezione/esercitazione 11I  
Lunedì 10:00-13:00 (2 squadre) Laboratorio laib 1T (ex aula 3T) a partire dal 7/10/2019
Venerdì 10:00-11:30 Lezione/esercitazione 7  
Venerdì 11:30-13:00 Lezione/esercitazione 11I  

Vedere la sezione Registro per informazioni più dettagliate.

Materiale di studio

  • Materiale fornito dai docenti
  • Documenti e link disponibili su Internet, segnalati di volta in volta

Testo di riferimento

  • Atzeni, Ceri, Paraboschi, Torlone, “Basi di dati - Modelli e linguaggi di interrogazione”, 4 ed., McGraw Hill, 2013.

 


Programma del corso

Contenuto tratto dalla pagina ufficiale del corso sul Portale della Didattica

Presentazione

Insegnamento obbligatorio per la Laurea Triennale in Ingegneria del Cinema e dei Mezzi di Comunicazione, collocato al I pd del III anno. Il corso descrive i sistemi per la gestione di basi di dati e le applicazioni in ambiente web che accedono alle basi di dati. Il corso considera le metodologie di progettazione di basi di dati, le interrogazioni e la gestione di basi di dati, e lo sviluppo di applicazioni web interattive in grado di interrogare le basi dati e presentare i risultati all'utente. L'attività di laboratorio permette di sperimentare l'uso dei prodotti open-source più diffusi.

Risultati attesi

Conoscenza e capacità di comprensione: aspetti fondamentali di un sistema per la gestione di basi di dati; struttura e proprietà del modello relazionale dei dati; linguaggio SQL per interrogazioni, gestione tabelle e viste, controllo delle transazioni e degli accessi; modello concettuale Entità-Relazione per la rappresentazione dei dati; metodologia per la progettazione concettuale e logica relazionale di una base di dati; modalità di interazione tra SQL e linguaggi di programmazione; processo di sviluppo di applicazioni web interattive; tecnologie allo stato dell’arte per lo sviluppo delle applicazioni web - Capacità di

Capacità di applicare conoscenza e comprensione: interrogazioni in linguaggio SQL, progettazione di basi di dati relazionali, progettazione e sviluppo di un'applicazione web che esegue l'accesso a una base di dati.

Prerequisiti

Competenze di base di programmazione: algoritmi, strutture dati e fondamenti di programmazione.

Programma

  • Caratteristiche di un sistema per la gestione di basi di dati
  • Caratteristiche del modello relazionale dei dati
  • Linguaggio SQL: istruzioni per la definizione delle basi di dati e l'elaborazione dei dati
  • Linguaggio SQL: istruzioni per la gestione delle viste, del controllo dell'accesso, delle transazioni e degli indici
  • Modello concettuale dei dati (modello Entità-Relazione) e metodologia di progettazione concettuale e logica relazionale di una base di dati
  • Architetture web client-server
  • Programmazione web lato client e lato server
  • Progettazione e sviluppo di applicazioni client-server web-based con accesso a una base di dati

Laboratori e/o esercitazioni

Esercitazioni in aula: svolgimento di esercizi in aula (linguaggio SQL e progettazione di basi di dati).
Esercitazioni in laboratorio informatico: interrogazioni di basi dati in SQL e sviluppo di applicazioni web che interagiscono con una base dati.

Modalita' di verifica dell'apprendimento

Regole d'esame.

 


Materiale

Questa sezione conterrà tutto il materiale didattico (slide, documenti, link, ...) utilizzato durante il corso.

Lucidi delle lezioni

Esercitazioni in aula

Laboratori

  • Suddivisione in squadre:
    • Squadra A, lunedì dalle 10.00 alle 11.30: studenti di laurea magistrale + studenti di laurea triennale da A a GI
    • Squadra B, lunedì dalle 11.30 alle 13.00: studenti di laurea triennale da GO a Z

 

Strumenti

  • Un database server
  • Un front-end per MySQL. Installare uno a scelta tra:
  • JetBrains WebStorm
    • scaricare l'ultima versione disponibile dalla sezione Download del sito di WebStorm
    • registrarsi sul sito di JetBrains utilizzando l'email del politecnico (This email address is being protected from spambots. You need JavaScript enabled to view it.) per ottenere una licenza studenti gratuita: https://www.jetbrains.com/student/
  • Google Chrome: installare l'ultima versione disponibile

Homework

Caricare le soluzioni nella sezione Elaborati del Portale della Didattica, in cui e’ disponibile l’opzione upload.

Regole per la consegna delle esercitazioni. Affinché la consegna delle esercitazioni consenta di ottenere il relativo punteggio (0,5 punti per ciascun homework) è necessario rispettare le seguenti condizioni:

  • Svolgere tutti gli esercizi indicati nel testo.
  • Preparare un file in formato PDF contenente lo svolgimento degli esercizi. E’ possibile caricare anche una soluzione scritta a mano scansionata o fotografata.
  • Il nome del file del file pdf deve essere assegnato secondo il seguente formato: QuadernoX_Matricola dove X è il numero del quaderno (1 per il quaderno di SQL, 2 per il quaderno di ER, Matricola è da sostituire quella dello studente. L’estensione del file (pdf) non è da ripetere nel nome del file. Esempio di nome del file valido (comprensivo dell’estensione): Quaderno1_181818.pdf oppure Quaderno2_222222.pdf
  • Caricare il file sul portale della didattica, nella sezione di consegna elaborati del corso, entro la data di scadenza.  Non effettuare caricamenti multipli per lo stesso quaderno.
  • Durante la procedura di upload viene richiesto l’inserimento di un campo “Descrizione”. Riportare lo stesso nome assegnato al file (esclusa l’estensione) secondo le specifiche sopra descritte. Esempio: Quaderno1_181818 oppure Quaderno2_222222
  • Solo coloro che NON hanno accesso alla pagina web del corso sul portale della didattica sono autorizzati ad inviare le esercitazioni tramite mail a Laura Farinetti  (This email address is being protected from spambots. You need JavaScript enabled to view it.) entro la data di consegna.
  • Sostenere con esito positivo, se selezionati, il colloquio di verifica.  La selezione verrà comunicata il giorno prima della prova scritta tra gli studenti iscritti.

Esercitazione n. 1 – SQL

  • Testo pubblicato il 17/11/2019 (pdf)
  • Scadenza per la consegna: 1/12/19 h. 23.59

Esercitazione n. 2 – NodeJS

  • Testo pubblicato il 15/12/2019 (pdf)
  • Scadenza per la consegna: 15/01/20 h. 23.59
  • DEVE essere caricato un file ZIP con dentro tutti i file necessari.

Esercitazione n. 3 – ER

  • Testo pubblicato il 19/12/2019 (pdf)
  • Scadenza per la consegna: 09/01/20 h. 23.59

Approfondimenti

 


 

Esame

Regole d'esame

Homework

Tre homework

  • Consegna tramite «Portale della Didattica» entro la scadenza (rigida) di volta in volta indicata

Temi d'esame

Prossimi esami con scadenze

 


Piano del corso

La tabella seguente riporta l'andamento delle lezioni del corso, per trasparenza di informazione e per facilitare la pianificazione da parte degli studenti. Ci riserviamo di modificare la pianificazione delle lezioni per esigenze didattiche.

Legenda: la colonna Tipo può essere L=Lezione, EA= Esercitazione in aula, EL=Esercitazione in laboratorio.

DataOreTipoOreArgomentoDocente
 30/09/2019   8.30-11.30  L  3  Introduzione al corso. Introduzione alle basi di dati. Modello relazionale.  Laura Farinetti
 04/10/2019  10.00-13.00  L  3  Linguaggio SQL: introduzione. Select base, ordinamento, join.  Laura Farinetti
 07/10/2019   8.30-10.00  L  1,5  Join. Esempi.  Laura Farinetti
 07/10/2019  10.00-11.30  EL  1,5  Squadra A. Prime interrogazioni in SQL.  Lorenzo Canale
 07/10/2019  11.30-13.00  EL  1,5  Squadra B. Prime interrogazioni in SQL.  Lorenzo Canale
 11/10/2019  10.00-13.00  EA  3  Esercitazione in aula su linguaggio SQL.  Lorenzo Canale
 14/10/2019   8.30-10.00  L  1,5  Funzioni aggregate. Ragguppamento.  Laura Farinetti
 14/10/2019  10.00-11.30  EL  1,5  Squadra A. Funzioni aggregate, ragguppamento.  Lorenzo Canale
 14/10/2019  11.30-13.00  EL  1,5  Squadra B. Funzioni aggregate, ragguppamento.  Lorenzo Canale
 18/10/2019  10.00-13.00  L  3  Condizioni di selezioni sui gruppi. Select annidate. Operatore IN. Esempi.  Laura Farinetti
 21/10/2019   8.30-10.00  L  1,5 Operatore NOT IN. Costruttore di tupla. Esempi.  Laura Farinetti
 21/10/2019  10.00-11.30  EL  1,5  Squadra A. Raggruppamento. Select annidate.  Lorenzo Canale
 21/10/2019  11.30-13.00  EL  1,5  Squadra B. Raggruppamento. Select annidate.  Lorenzo Canale
 25/10/2019  10.00-13.00  L  3  EXISTS e NOT EXISTS. Correlazione fra interrogazioni. Divisione. Esempi.  Laura Farinetti
 28/10/2019  8.30-10.00  L  1,5  Table functions. Esempi.  Laura Farinetti
 28/10/2019  10.00-11.30  EL  1,5  Squadra A. Select annidate.  Lorenzo Canale
 28/10/2019  11.30-13.00  EL  1,5  Squadra B. Select annidate.  Lorenzo Canale
 04/11/2019  8.30-10.00  EA  1,5  Esercizi di SQL riassuntivi.  Laura Farinetti
 04/11/2019  10.00-11.30  EL  1,5  Squadra A. Correlazione, divisione, table function.  Lorenzo Canale
 04/11/2019  11.30-13.00  EL  1,5  Squadra B. Correlazione, divisione, table function.  Lorenzo Canale
 08/11/2019  10.00-13.00  L  3  Operatori insiemistici. Istruzioni di aggiornamento. Esempi.  Laura Farinetti
 11/11/2019  8.30-10.00  EA  1,5  Esercizi di SQL.  Laura Farinetti
 11/11/2019  10.00-11.30  EL  1,5  Squadra A. Creazione di interrogazioni.  Lorenzo Canale
 11/11/2019  11.30-13.00  EL  1,5  Squadra B. Creazione di interrogazioni.  Lorenzo Canale
 15/11/2019  10.00-13.00  L  3  Gestione delle transazioni. Gestione delle tabelle.  Laura Farinetti
 18/11/2019  8.30-10.00  EA  1,5  JavaScript e NodeJS.  Lorenzo Canale
 18/11/2019  10.00-11.30  EL  1,5  Squadra A. JavaScript e NodeJS.  Lorenzo Canale
 18/11/2019  11.30-13.00  EL  1,5  Squadra B. JavaScript e NodeJS.  Lorenzo Canale
 22/11/2019  10.00-11.30  L  1,5  Gestione degli indici. Metodologia di progettazione.  Laura Farinetti
 22/11/2019  11.30-13.00  EA  1,5  NodeJS e interrogazioni a DB.  Lorenzo Canale
 25/11/2019  8.30-10.00  L  1,5  Modello ER.  Laura Farinetti
 25/11/2019  10.00-11.30  EL  1,5  Squadra A. Web server con NodeJS.  Lorenzo Canale
 25/11/2019  11.30-13.00  EL  1,5  Squadra B. Web server con NodeJS.  Lorenzo Canale
 29/11/2019  10.00-13.00  L  3  Modello ER. Progettazione concettuale. Esempi.  Laura Farinetti
 02/12/2019  8.30-10.00  EA  1,5  NodeJS e interrogazioni a DB.  Lorenzo Canale
 02/12/2019  10.00-11.30  EL  1,5  Squadra A. Web server con NodeJS.  Lorenzo Canale
 02/12/2019  11.30-13.00  EL  1,5  Squadra B. Web server con NodeJS.  Lorenzo Canale
 05/12/2019  11.30-13.00  L  1,5  Progettazione logico-relazionale. Vincoli di integrità.  Laura Farinetti
 06/12/2019  10.00-13.00  L  3  Progettazione logico-relazionale. Esempi di progettazione.  Laura Farinetti
 09/12/2019  8.30-11.30  L  3  Gestione delle viste. Controllo degli accessi. Esempi di progettazione.  Laura Farinetti
 13/12/2019  10.00-13.00  L  3  Basi dati NoSQL. Correzione dell'homework di SQL.  Laura Farinetti
 16/12/2019  8.30-10.00  EA  1,5  NodeJS e interrogazioni a DB.  Lorenzo Canale
 16/12/2019  10.00-11.30  EL  1,5  Squadra A. Homework: NodeJS challenge.  Lorenzo Canale
 16/12/2019  11.30-13.00  EL  1,5  Squadra B. Homework: NodeJS challenge.  Lorenzo Canale
 20/12/2019  8.30-10.00  EL  1,5  Squadra A. Homework: NodeJS challenge.  Lorenzo Canale
 20/12/2019  10.00-11.30  EL  1,5  Squadra B. Homework: NodeJS challenge.  Lorenzo Canale
 20/12/2019  11.30-13.00  L  1,5  Temi d'esame.  Laura Farinetti
 09/01/2020  11.30-13.00  L  1,5  Esempi di progettazione concettuale (rappresentazione del tempo) e di domande di teoria.  Laura Farinetti
 10/10/2020  10.00-13.00  EA  3  Temi d'esame.  Lorenzo Canale
 13/10/2020   8.30-10.00  L  1,5  Correzione del terzo quaderno.  Laura Farinetti
 13/10/2020  10.00-11.30  EL  1,5  Squadra A. NodeJS server.  Lorenzo Canale
 13/10/2020  11.30-13.00  EL  1,5  Squadra B. NodeJS server.  Lorenzo Canale
 17/01/2020  10.00-12.00  L  2  Temi d'esame.  Laura Farinetti