MATEMATICA E INFORMATICAInformaticaAnno accademico 2023/2024
1000416 - BASI DI DATI A - L
Docente: ALFREDO PULVIRENTI
Risultati di apprendimento attesi
Descrizione generale sintetica
Il corso mira a formare le conoscenze e le competenze di base per la rappresentazione, l’organizzazione, l’interrogazione ed il recupero dell’informazione mediante la tecnologia delle basi di dati. Si fa riferimento al modello relazionale dei dati, ampiamente adottato nei sistemi commerciali e open-source, per illustrare le idee di base della rappresentazione tabellare delle informazioni. Si introducono approfonditamente i meccanismi dell’algebra relazionale, rivolti al recupero delle informazioni. Viene presentato il linguaggio di interrogazione SQL che implementa ed estende i meccanismi dell’algebra relazionale. Si studiano i meccanismi a più alto livello per il design delle basi di dati, la rappresentazione delle informazioni, le nozioni di entità (o oggetto) e di relazione (o associazione), il loro uso nella progettazione concettuale e logica delle basi di. Si presenta la normalizzazione delle basi di dati, lo studio delle anomalie e le forme normali di Boyce-Codd e 3NF. Si studiano le transazioni e gli studmenti per il recovery delle basi di dati. Viene presentato l’XML (assieme ad xpath ed xquery) come linguaggio per la rappresentazione dell’informazione semi-strutturata. Si danno i cenni sulle basi di dati NoSQL. Come sistema si sperimenterà MySQL in connessione al linguaggio host Php e JavaScript. Come sistema noSQL verranno sperimentati MongoDB e CouchDB.
Obiettivi formativi generali dell'insegnamento in termini di risultati di apprendimento attesi.
- Conoscenza e capacità di comprensione (knowledge and understanding): Il corso mira a formare le conoscenze e le competenze di base per la rappresentazione, l’organizzazione, l’interrogazione ed il recupero dell’informazione mediante la tecnologia delle basi di dati.
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente acquisirà le competenze necessarie per progettare concettualmente e logicamente un database. Sarà in grado di implementare una base di dati relazionale usando il linguaggio SQL ed interfacciarllo con opportuni linguaggi host. Acquisirà pure i concetti per realizzare database di tipo non relazionali quali XML e noSQL. A tale riguardo una parte del corso consisterà in lezioni di pratiche dove saranno presentati MySQL, CouchDB, MongoDB e i linguaggi Php, javascript e Ajax.
- Autonomia di giudizio (making judgements): Attraverso esempi concreti e casi di studio, lo studente sarà in grado di elaborare autonomamente soluzioni a determinati problemi legati alle basi di dati.
- Abilità comunicative (communication skills): lo studente acquisirà le necessarie abilità comunicative e di appropriatezza espressiva nell'impiego del linguaggio tecnico nell'ambito generale delle basi di dati.
- Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie teoriche e pratiche per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante una attività lavorativa. A tale scopo diversi argomenti saranno trattati a lezione coinvolgendo lo studente nella ricerca di possibili soluzioni a problemi reali quali ottimizzazione delle query.
Modalità di svolgimento dell'insegnamento
Lezioni frontali.
Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Anno di corso: Secondo - primo semestre
Settore scientifico-disciplinare: INF-01
CFU: 9 ore: 72
Propedeuticità: Programmazione 2
Frequenza lezioni
Le risorse principali messe a disposizione dello studente sono le lezioni frontali, la cui frequenza è fortemente consigliata.
Per seguire meglio le lezioni, vengono messe a disposizione le slide utilizzate per il corso. Le slide non costituiscono un mezzo di studio: forniscono un dettaglio puntuale sugli argomenti trattati a lezione.
Contenuti del corso
- Introduzione alle basi di dati: modelli dei dati, generalità sui DBMS.
- Il modello dei dati: Il modello Relazionale. Relazioni, attributi, istanze di relazione, tuple. Vincoli di integrità, concetto di chiave. Algebra relazionale: operatori fondamentali e derivati.
- Il linguaggio SQL (Structured Query Language). Il linguaggio di definizione dei dati: definizione di tabelle, domini, indici. Specifica di semplici vincoli di integrità. Il linguaggio di interrogazione: operatori di join-selezione-proiezione, operatori aggregati, operatore di raggruppamento. Interrogazioni nidificate e correlate, operatori insiemistici. Query ricorsive. Il linguaggio di manipolazione dei dati: inserimento, eliminazione e modifica di tuple. Definizione di viste, vincoli di integrità generici. Controllo dell'accesso ad una base di dati. Basi di dati attive.
- Progettazione delle basi di dati: Progettazione concettuale; Progettazione logica; Progettazione fisica
- Normalizzazione delle basi di dati: Anomalie. Dipendenze Funzionali. Decomposizioni di Schemi : che conservano i dati, che conservano le dipendenze funzionali. Forme Normali: di Boyce-Codd e 3NF.
- Introduzione ai NoSQL database.
- Sistemi: MySQL (interfacce php/javaScript/Ajax). CouchDB, MongoDB.
Testi di riferimento
Testi adottati:
- Atzeni,Ceri,Paraboschi, Fraternali, Torlone, Basi di Dati, McGraw-Hill.
- Albano-Ghelli-Orsini, Fondamenti di basi di dati, Zanichelli.
Altri testi utili:
- Garcia-Molina, Ullman, Widow Database Systems: The Complete Book, Prentice Hall.
Programmazione del corso
| Argomenti | Riferimenti testi |
1 | Modello Relazionale | Capitolo 2, Atzeni et al. e materiale didattico integrativo |
2 | Algebra relazionale | Capitolo 3, Atzeni et al. e materiale didattico integrativo |
3 | SQL: Interrogazioni | Capitolo 4, (paragrafo 4.3) Atzeni et al. e Capitolo 6, Albano et al. e materiale didattico integrativo |
4 | SQL: Definizione dati | Capitolo 4, (paragrafo 4.2) Atzeni et al. e materiale didattico integrativo |
5 | SQL: Modifica dati | Capitolo 4, (paragrafo 4.4) Atzeni et al. e materiale didattico integrativo |
6 | Viste e Stored Procedure | Capitolo 5, Atzeni et al. e materiale didattico integrativo |
7 | Trigger | Capitolo 5, Atzeni et al. e materiale didattico integrativo |
8 | Progettazione di una base di dati | Capitolo 6, Atzeni et al. e materiale didattico integrativo |
9 | Progettazione concettuale | Capitolo 7, Atzeni et al. e materiale didattico integrativo |
10 | Progettazione logica | Capitolo 8, Atzeni et al. e materiale didattico integrativo |
11 | Normalizzazione | Capitolo 5, Albano et al e materiale didattico integrativo |
12 | Sviluppo Applicazioni e linguaggi host | http://www.w3schools.com e materiale didattico integrativo |
13 | Organizzazione fisica e gestione delle interrogazioni | Capitolo 11, Atzeni et Al. e materiale didattico integrativo |
14 | Transazioni, controllo affidabilità e controllo concorrenza | Capitolo 12, Atzeni et al e materiale didattico integrativo |
15 | XML, XML schema, Xquery Xpath | Capitolo 14, Atzeni et al. e materiale didattico integrativo |
16 | Cenni sui NoSQL database. | materiale didattico integrativo |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
La valutazione delle conoscenze acquisite avviene tramite un esame scritto seguito da un colloquio dove lo studente discute un progetto. Il voto è espresso su una scala di trenta, fino a un massimo di 30/30 e lode.
L'esame scritto consisterà in 8-10 esercizi sugli argomenti trattati durante le lezioni (l'esame ha durata 1h.30 minuti. L'esame prevede un ulteriore colloquio orale in cui è prevista la discussione di un progetto. Il progetto viene assegnato dal docente dopo la fine del corso. Le verifiche mirano a valutare: i) il livello di conoscenza degli argomenti trattati durante il corso; ii) la capacità di applicare tali conoscenze per risolvere problemi specifici legati alle basi di dati (problem-solving e autonomia di giudizio); iii) la chiarezza espositiva; iv) l'uso del linguaggio medico-scientifico. La valutazione dell'apprendimento può essere effettuata anche a distanza, se le condizioni lo richiedono.
Per l'assegnazione del voto finale si terrà conto dei seguenti parametri:
- Punteggio 29-30 e lode: Lo studente dimostra una conoscenza approfondita degli argomenti, integra prontamente e correttamente e analizza criticamente le situazioni presentate, risolvendo autonomamente problemi anche molto complessi. Possiede ottime capacità comunicative e padroneggia con competenza il linguaggio medico-scientifico.
- Punteggio 26-28: Lo studente ha una buona comprensione degli argomenti, è in grado di integrare e analizzare criticamente e logicamente le situazioni presentate, è in grado di risolvere in modo abbastanza indipendente problemi complessi e presenta gli argomenti in modo chiaro utilizzando un linguaggio medico-scientifico appropriato.
- Punteggio 22-25: Lo studente ha una discreta comprensione degli argomenti, anche se limitata alle aree principali. È in grado di integrare e analizzare criticamente le situazioni presentate, anche se non sempre in modo lineare, e presenta gli argomenti in modo abbastanza chiaro con una moderata competenza linguistica.
- Punteggio 18-21: Lo studente ha una conoscenza minima degli argomenti, possiede una modesta capacità di integrare e analizzare criticamente le situazioni presentate e presenta gli argomenti in modo sufficientemente chiaro, sebbene la sua competenza linguistica possa essere poco sviluppata.
- Esame non superato:Lo studente non ha la conoscenza minima richiesta dei contenuti fondamentali del corso. La capacità di usare un linguaggio specifico è minima o inesistente e lo studente non è in grado di applicare autonomamente le conoscenze acquisite.
Chi non supera la prova scritta, non può sostenere il colloquio orale. La prova scritta può essere visionata prima delle prove orali.
Salvo diversa comunicazione:
- l'esame scritto si svolge alle ore 9:00
Note:
- È vietato l'uso di qualsiasi strumento hardware (calcolatrici, tablet, smartphone, cellulari, auricolari BT etc.), di libri o documenti personali durante gli esami (scritti).
- Per sostenere gli esami è obbligatorio prenotarsi utilizzando l'apposito modulo del portale CEA.
- Non sono ammesse prenotazioni tardive tramite email. In mancanza di prenotazione, l'esame non può essere verbalizzato.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti
Gli esami degli anni passati con le soluzioni, esempi di domande e/o esercizi verranno pubblicati su studium.
English version