ITALIANO
Italian
Il programma didattico del corso comprende una parte teorica, che verrà svolta mediante lezioni frontali, ed una parte applicativa, che verrà svolta mediante esercitazioni in aula e laboratori.
The program of the course includes a theoretical part, which will be carried out through classroom lessons, and a practical part, which will be carried out through classroom exercises and workshops.
Il corso mira ad introdurre concetti, metodi e linguaggi per la gestione di grandi moli di dati in ambienti centralizzati e distribuiti. Verranno dapprima introdotti il modello relazionale ed i sistemi di gestione dei dati basati su tale modello, per poi analizzare l’evoluzione verso nuove architetture (NOSQL, NewSQL) e nuovi modelli dei dati (key-value, column-oriented, document-oriented, graph-oriented), si analizzeranno le metodologie per la progettazione di basi di dati relazionali, e le problematiche di progettazione di basi di dati in ambienti distribuiti, comprendendo i vantaggi e i limiti delle diverse soluzioni rispetto ai diversi ambiti applicativi e acquisendo consapevolezza delle problematiche, soluzioni e opportunità della gestione di dati nei moderni contesti applicativi.
Alla fine del corso lo studente sarà in grado di progettare, creare, popolare, ed interrogare basi di dati relazionali e di nuova generazione. Sarà inoltre in grado di valutare le diverse soluzioni in funzione del particolare contesto applicativo.
Applicazioni pratiche, confronti e discussioni, che avranno luogo durante il corso, consentiranno agli studenti di migliorare la loro autonomia, e le loro competenze sotto il profilo della comunicazione, dell'apprendimento e dell'approccio critico.
The course aims to introduce concepts, methods and languages for the management of huge amount of data in centralized and distributed environments. First the relational model and data base management systems based on this model will be introduced, then the evolution towards new architectures (NOSQL, NewSQL) and new data models (key-value, column-oriented, document-oriented, graph-oriented) will be analyzed. The methodologies for the design of relational databases and issues of database design in distributed environments will be analyzed, understanding the advantages and limitations of different solutions with respect to different application fields and acquiring awareness of the issues, solutions and opportunities of data management in modern application contexts.
At the end of the course the student will be able to design, create, populate, and query relational and new generation databases. The student will also be able to evaluate the different solutions according to the particular application context.
Practical applications, comparisons and discussions, which will take place during the course, will allow students to improve their autonomy, and their skills in terms of communication, learning and critical approach.
1 - Introduzione alle basi di dati e sistemi di gestione di basi di dati: gestione dei dati in un sistema informatico, motivazioni per l’introduzione di sistemi per la gestione dei dati, schemi e istanze, livelli di astrazione, astrazione e indipendenza. Linguaggi per la gestione di basi di dati. Utenti di una base di dati.
2 - Modello relazionale: definizione di relazione, relazioni e tabelle, gestione di valori nulli, vincoli di integrità.
3 - Progettazione di basi di dati: metodologia generale. Progettazione concettuale e modello Entity/Relationship. Progettazione logica.
4 – Linguaggio SQL, il DBMS MySQL
5 - Tecnologie per la gestione dei dati: memorizzazione ed organizzazione dei dati su memoria secondaria, gestione delle interrogazioni, gestione delle transazioni.
6 - DBMS distribuiti: architettura, frammentazione e allocazione, livelli di trasparenza. Replicazione. Cenni alla gestione delle interrogazioni e delle transazioni in ambienti distribuiti.
7 - Sistemi NOSQL: motivazioni e caratteristiche, CAP theorem, livelli di consistenza. Integrazione di basi di dati autonome
8 - Modelli di dati NOSQL: concetto di aggregato, modelli key-value, column-oriented, document-oriented, modelli a grafo. Progettazione di basi di dati NOSQL.
9 – il sistema NOSQL MongoDB
1 - Introduction to databases and database management systems: data management in a computer system, reasons for introducing data base management systems, schemes and instances, levels of abstraction and independence. Languages for database management. Users of a database.
2 - Relational model: definition of relation, relations and tables, management of null values, integrity constraints.
3 - Database design: general methodology. Conceptual design and Entity/Relationship model. Logical design.
4 - SQL language, the MySQL DBMS
5 - Technologies for data management: storage and organization of data on secondary memory, query management, transaction management.
6 - Distributed DBMS: architecture, fragmentation and allocation, transparency levels. Replication. Queries and transactions management in distributed environments.
7 - NOSQL systems: motivations and features, CAP theorem, consistency levels. Integration of autonomous databases
8 - NOSQL data models: aggregate concept, key-value models, column-oriented, document-oriented, graph models. Design of NOSQL databases.
9 - NOSQL MongoDB system
La valutazione del livello di apprendimento si compone di una prova orale, consistente nella esposizione di concetti e aspetti teorici e nella risoluzione di esercizi come l’esecuzione di una interrogazione in un linguaggio per basi di dati relazionali o NoSQL.
Per superare con esito positivo la prova orale, lo studente deve dimostrare di aver ben compreso i concetti esposti nel corso sulle tecnologie, modelli e linguaggi per la gestione di dati, espressi con linguaggio tecnico corretto. La valutazione massima è attribuita agli studenti che dimostrano una conoscenza approfondita ed esaustiva dei contenuti dell’insegnamento, con ottime capacità di analisi, rigore metodologico e appropriatezza del vocabolario tecnico.
Viene attribuito un voto in trentesimi, con eventuale lode. Il voto minimo per il superamento dell'esame è 18/30.
Ad ognuna delle domande o esercizi viene attribuito un voto massimo di 30 punti. Il voto finale viene calcolato come media dei punteggi ottenuti nelle singole domande. La lode verrà attribuita nel caso di punteggi nelle singole domande tutti pari a 30.
The assessment of the learning level is carried out through an oral examination, consisting in both the discussion of concepts and theoretical aspects, and the resolution of exercises such as the execution of a query in a relational or NoSQL database language.
In order to successfully pass the oral examination, the student must demonstrate a good understanding of the concepts presented in the course on technologies, models and languages for data management, expressed in proper technical language. The maximum score is achieved by demonstrating a thorough and exhaustive understanding of the course topics, with excellent analytical skills, methodological exactness and appropriateness of the technical vocabulary.
The final mark is between 0 and 30, with possible praise. The minimum mark for passing the exam is 18/30.
For each of question of the oral examination a score between zero and thirty is assigned. The overall score is the average of scores obtained in each questions. The 30 cum laude is given to students who obtained a score of 30 in all questions.
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di dati” 5° ed., McGraw-Hill, Italia
- P. Sadalage, M. Fowler, “NoSQL Distilled: a brief guide to the emerging world of polyglot persistence”, Addison-Wesley
- G. Harrison, “Next Generation Databases: NoSQL, NewSQL, and Big Data”, Apress, 2015. Scaricabile a partire da http://www.allitebooks.org
- D. Ganesan, S. Chellappan, “MongoDB Recipes”, Apress, 2019. Scaricabile a partire da http://www.allitebooks.org
- Altro materiale reso disponibile sul sito del corso raggiungibile al link https://learn.univpm.it
- P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di dati” 5° ed., McGraw-Hill, Italia
- P. Sadalage, M. Fowler, “NoSQL Distilled: a brief guide to the emerging world of polyglot persistence”, Addison-Wesley
- G. Harrison, “Next Generation Databases: NoSQL, NewSQL, and Big Data”, Apress, 2015. Scaricabile a partire da http://www.allitebooks.org
- D. Ganesan, S. Chellappan, “MongoDB Recipes”, Apress, 2019. Scaricabile a partire da http://www.allitebooks.org
- Further material available on the course website at https://learn.univpm.it.
no
no
Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427