Giorno | Orario | Aula |
---|---|---|
Lunedì | 13.30 - 15.15 | P200 |
Martedì | 13.30 - 15.15 | LuM250 |
Mercoledì | 13.30 - 15.15 | LuM250 |
Giovedì | 15.30 - 17.15 | LuM250 |
Venerdì | 13.30 - 15.15 | LuM250 |
Il corso è tenuto dal prof. Paolo Baldan e dal prof. Mauro Conti, che si occuperà principalmente della gestione del progetto e del laboratorio.
Le date degli appelli sono normalmente disponibili alla corrispondente pagina del Dipartimento di Matematica.
L'esame consiste in una prova scritta, in un progetto, e in una prova orale. La consegna del progetto è condizione necessaria per poter sostenere la prova scritta (vedi la sezione Progetto per le modalità di esecuzione e consegna). Il progetto contribuisce alla valutazione per 3 crediti su 10.
Il progetto può essere consegnato una sola volta per l'intero anno accademico. Progetti evidentemente indecenti o, peggio, copiati pregiudicheranno la possibilità di sostenere l'esame per l'anno accademico corrente.
La prova scritta contiene domande ed esercizi focalizzati principalmente su:
Integrazione: Chi ha sostenuto Basi di dati 1 nel vecchio ordinamento e dovesse quindi fare l'integrazione dovrà fare solo una parte dello scritto (relativa ai punti 5.3, 5.4, 6.1 e 6.2 del programma), ed il progetto. Questo può essere il progetto di BD1, esteso in modo da rispettare le nuove specifiche. In ogni caso, deve contattarmi prima dell'esame.
Alcuni testi dei precedenti appelli si possono trovare qui.Per poter sostenere una determinata prova scritta è indispensabile essersi registrati alla corrispondente prova mediante il sistema UNIWEB. Questo è normalmente possibile solo fino a due giorni prima dell'esame stesso (la lista chiude due giorni prima dell'esame stesso alla mezzanotte).
Per poter sostenere la prova orale è necessario aver superato con esito sufficiente la prova scritta nel medesimo appello (e quindi aver consegnato il progetto). Il voto dello scritto non rimane valido per gli appelli successivi. Il progetto consegnato rimane valido per gli appelli successivi, anche in caso di mancato superamento di una prova scritta e\o di una prova orale.
Chi si fosse registrato a una lista di prenotazione e decidesse di non presentarsi è pregato di cancellarsi dalla lista o, in caso la lista fosse già chiusa, di darne tempestiva comunicazione al docente.
Durante l'esame non è possibile consultare testi, appunti o altro materiale. Chi copia o consulta bigliettini (o affini) vedrà annullato lo scritto corrente e non potrà sostenere l'appello successivo.
In linea di massima, il lavoro consiste nella progettazione e nello sviluppo di una base di dati e della relativa interfaccia WEB, per un'organizzazione a scelta dello studente, che potrà quindi applicare le proprie conoscenze alla soluzione di un caso reale di interesse applicativo proprio o di propri familiari, amici, etc. Esempi possono essere una base di dati per automatizzare le esigenze informative del negozio gestito dalla famiglia dello studente, della squadra sportiva che lo studente allena, del circolo culturale di cui lo studente è membro, ecc. Il livello di complessità della base di dati deve essere simile a quello delle basi di dati relative alla Biblioteca o alla Segreteria Studenti discusse a lezione in varie riprese (e riportate nel libro di testo, nei Capitoli 2 e 3 rispettivamente).
L'interfaccia WEB dovrà utilizzare le nozioni viste a lezione:
e dovrà permettere di inserire, cancellare e ricercare record nella base di dati, secondo le specifiche esigenze dell'organizzazione modellata.
Il progetto può essere svolto singolarmente o a coppie.
Il lavoro deve obbligatoriamente comprendere:
Lo studente dovrà consegnare, il giorno dello scritto, al docente una relazione (in forma cartacea) del lavoro svolto in cui siano evidenziati i risultati delle fasi sopra descritte (descrizione del problema e analisi dei requisiti, progetto concettuale, progetto logico, implementazione della base di dati nel DDL, query nel DML, trigger e procedure, architettura dell'applicazione web).
Si chiede di allegare alla relazione il codice SQL realizzato. Si può evitare di inserire il codice necessario al popolamento, se dovesse essere di dimensione cospicua. Nel caso di progetti svolti in coppia è sufficiente consegnare una sola relazione.
Il lavoro dovrà essere consegnato anche in forma elettronica tramite lo script consegna da richiamare eseguendo il comando
consegna basidati2014da una directory dove sono contenuti solo i files da consegnare e dovrà essere in linea nello spazio web dello studente presso il laboratorio (da richiedere mediante iscrizione all'apposita lista UNIWEB).
Il progetto concorrerà alla determinazione del voto finale (con peso 3 crediti). Elementi che verranno presi in considerazione ai fini di tale valutazione saranno la correttezza dei risultati, la complessità del problema affrontato, l'appropriatezza della metodologia seguita, la chiarezza espositiva della relazione.
La consegna del progetto è condizione necessaria per poter sostenere lo scritto.
mysql -h basidati.studenti.math.unipd.it -u [login] -p [database]Ogni studente ha a disposizione due database [login]-ES e [login]-PR che possono essere utilizzati per le esercitazioni ed il progetto, rispettivamente.
È possibile accedere al database anche tramite phpMyAdmin, una interfaccia Web (solo dai pc delle tre aule informatiche del Paolotti) collegandosi alla url http://basidati.studenti.math.unipd.it/phpmyadmin.
Il server web è ospitato nella stessa macchina del server MySQL, ovvero basidati. A questo potete connettervi con il vostro login e password su studenti (NON quella del server MySQL).
Sul server basidati, nella vostra home, avete a disposizione uno spazio web public_html, che è poi visibile all'indirizzo
Se ad esempio create un file prova.php che contiene solo
<html> <head><title>Basi di dati</title></head>nella directory basidati/public_html su basidati (oppure lo create in remoto e lo copiate con scp prova.php basidati:basidati/public_html/.) potete accedervi tramite un browser all'indirizzo http://basidati/basidati/~login/prova.php.
<body> <?php echo "Buongiorno!" ?> </body> </html>
-f
ssh va in backgroud dopo aver chiesto la password così da avere solo i tunnel ma nessun prompt dei comandi su ssh.studenti
):
ssh -L23306:basidati:3306 -L20443:basidati:443 -L20080:basidati:80 -L20022:basidati:22 nomeutente@ssh.studenti.math.unipd.it
http://localhost:20080/basidati/~nomeutente/
https://localhost:20080/phpmyadmin/
basidati.studenti.math.unipd.it
da una cartella locale, ad esempio MyDir
, usare scp (-P MAIUSCOLA):
scp -P 20022 -r MyDir nomeutente@localhost:basidati/public_html
basidati
usare il comando ssh (-p minuscola):
ssh -p 20022 nomeutente@localhost
Il seguente calendario delle lezioni conterrà un programma dettagliato e le copie delle slide utilizzate durante le lezioni. Le slide non ancora discusse possono non essere definitive (sono soggette a piccoli cambiamenti per la parte non ancora discussa a lezione).
Data | Tema della lezione | Lucidi |
---|---|---|
07/04/14 | Introduzione: sistemi informativi, sistemi informatici, e basi di dati | [PDF] |
10/04/14 | Sistemi di gestione di basi di dati (DBMS) | [Vedi lucidi precedenti] |
11/04/14 | Modelli dei dati | [PDF] |
14/04/14 | Progettazione di una base di dati con il modello ad oggetti | [Vedi lucidi precedenti] |
15/04/14 | Esercizi di modellazione concettuale di DB | [PDF] |
16/04/14 | Esercizi di modellazione concettuale di DB | [Vedi lucidi precedenti] |
17/04/14 | Il modello relazionale. Progettazione logica: Trasformazione dello schema concettuale a oggetti nello schema relazionale. | [PDF] |
28/04/14 | Progettazione logica: Trasformazione dello schema concettuale a oggetti nello schema relazionale (cont.). | [Vedi Lucidi precedenti] |
29/04/14 | Trasformazione dello schema concettuale
a oggetti nello schema relazionale: Esercizi Algebra relazionale: operatori primitivi e derivati. |
[Vedi Lucidi Precedenti] |
30/04/14 | Algebra relazionale: Operatori di aggregazione Algebra relazionale. Esercizi |
[Vedi Lucidi Precedenti] |
05/05/14 | Algebra relazionale: Esercizi. Calcolo relazionale. Introduzione a SQL. |
[PDF] |
06/05/14 | DML di SQL: select elementari | [Vedi Lucidi Precedenti] |
File per la creazione dello schema 'Università' utilizzato a lezione. | creaUniv.sql | |
07/05/14 | DML di SQL: interrogazioni con select annidate. Quantificazione. | [Vedi Lucidi Precedenti] |
08/05/14 | Inserimento, aggiornamento e cancellazione. Esercizi (query sul db Cinema). |
[Vedi Lucidi Precedenti] |
09/05/14 | Esercizi (query sul db Cinema). Il DDL di SQL: Definizione dello schema. |
[PDF] |
12/05/14 | Descrizione del progetto (prof. Conti) | [link] |
13/05/14 | View, vincoli di integrità. | [Vedi Lucidi Precedenti] |
14/05/14 |
Controllo degli accessi, indici, catalogo. Note su associazioni simmetriche e sottoclassi senza attributi propri. |
[Vedi Lucidi Precedenti] |
15/05/14 | Introduzione alla normalizzazione. Assiomi di Armstrong, chiusura, copertura | [PDF] |
19/05/14 | Laboratorio: query SQL su DB esistente (prof. Conti) | [link] |
20/05/14 | Normalizzazione: Decomposizione. Preservazione di dati e dipendenze. Forma normale di Boyce-Codd. | [Vedi lucidi precedenti] |
21/05/14 | Laboratorio (prof. Conti) | link |
22/05/14 | Terza Forma Normale e cenni alla Quarta. | [Vedi lucidi precedenti] |
23/05/14 | SQL per le applicazioni. SQL per le applicazioni. Transazioni. | [PDF] |
26/05/14 | Laboratorio (prof. Conti) | link |
27/05/14 | PL/SQL: Funzioni e procedure. Trigger | [Vedi lucidi precedenti] |
28/05/14 | Laboratorio (prof. Conti) | link |
29/05/14 | SQL per le applicazioni. Cenni a SQL embedded, ODBC e ORM. | [Vedi lucidi precedenti] |
30/05/14 | Basi di dati e WEB. Cenni di HTML. |
[Vedi lucidi precedenti] [PDF] [PDF] |
Descrizione dell'esame | [PDF] | |
03/06/14 | Elementi di PHP | [PDF] |
04/06/14 | Descrizione del progetti: aspetti procedurali (prof. Conti) | [link] |
05/06/14 | PHP e API per MySQL. Interazione con l'utente: form e loro gestione | [PDF] |
06/06/14 | Gestione dello stato. Query string e hidden fields. Cookies e sessioni. | [PDF] |
09/06/14 | Laboratorio (prof. Conti) | link |
10/06/14 | Autenticazione con sessioni, cookie, http. Cenni a PHP object oriented. | [Vedi lucidi precedenti] |
16/06/14 | Laboratorio (prof. Conti) | testo |
18/06/14 | Laboratorio (prof. Conti) | testo |