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
- Lucidi di introduzione al corso
- Regole d'esame
- Pagina ufficiale del corso sul Portale della Didattica
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
Materiale
Questa sezione conterrà tutto il materiale didattico (slide, documenti, link, ...) utilizzato durante il corso.
Lucidi delle lezioni
- Introduzione al corso
- Introduzione alle basi di dati
- Modello relazionale
- Linguaggio SQL: fondamenti
- Linguaggio SQL: costrutti avanzati
- Progettazione di basi di dati
- Tecnologie Web
- Basi dati NoSQL
Esercitazioni in aula
- SQL base: testo e soluzioni
- SQL - 1: testo e soluzioni
- SQL - 2: testo e soluzioni
- SQL - 3: testo e soluzioni
- Altri esercizi proposti di SQL e soluzioni
- Esercizi ER: testo e soluzioni
- Altri esercizi ER: testo e soluzioni
- ER - rappresentazione del tempo: testo e soluzioni
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
- Laboratorio 1 (7/10): prime interrogazioni in SQL
- Database: esempio_slide, world
- Testo
- Risultati attesi
- Soluzione
- Laboratorio 2 (14/10): funzioni aggregate, raggruppamento
- Database: world
- Testo
- Risultati attesi
- Soluzione
- Laboratorio 3 (21/10): funzioni aggregate, raggruppamento, IN e NOT IN
- Database: world
- Testo
- Risultati attesi
- Soluzione
- Laboratorio 4 (28/10): join, select annidate
- Database: deliveries
- Testo
- Risultati attesi
- Soluzione
- Laboratorio 5 (4/11): correlazione, divisione, table function
- Database: deliveries
- Testo
- Risultati attesi
- Soluzione
- Laboratorio 6 (11/11): visione d'insieme di una base dati
- Laboratorio 7 (18/11): NodeJS - primi passi
- Laboratorio 8 (25/11): Web server con NodeJS
- Laboratorio 9 (2/12): Accesso a DBMS con Node JS
- Testo e materiale
- Soluzione
- Laboratorio 10 e 11 (16/12 e 20/12): Homework
- Laboratorio 12 (13/1): NodeJS server
Strumenti
- Un database server
- Il server
MariaDB
https://downloads.mariadb.org/ (nota: scegliere di non installareHeidiSQL
in quanto è una versione vecchia)
- Il server
- Un front-end per MySQL. Installare uno a scelta tra:
HeidiSQL
http://www.heidisql.com/download.php, leggero, veloce ma solo per Windows.Sequel Pro
http://www.sequelpro.com/, per Mac OS X
- 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.
Data | Ore | Tipo | Ore | Argomento | Docente |
---|---|---|---|---|---|
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 |