Università degli studi dell'Insubria

NOSQL DATABASES

A.A. di erogazione 2019/2020
Insegnamento opzionale

Laurea Magistrale in INFORMATICA
 (A.A. 2019/2020)

Docenti

Anno di corso: 
1
Tipologia di insegnamento: 
Caratterizzante
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Inglese
Crediti: 
6
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
48
Dettaglio ore: 
Lezione (48 ore)

NoSQL databases are modern data management systems which are getting more and more popularity for their ability to handle high volumes of heterogeneous and semi-structured data in a very efficient way, meeting the requirements of a variety of today ICT applications. This course aims at defining data management skills for NoSQL databases, such as the ability to manage the choice of the NoSQL systems that best fit the data management requirements of given application scenarios, and to properly configure and use these systems.

It is expected, which once completed the course, the students

1) know the main data models that are currently used by NoSQL databases

2) are able to manage data modeling strategies tailored for NoSQL systems that refer to the main data models

3) are able to manage data analysis and manipulation for a selection of popular systems

4) know data sharding and replication techniques used by NoSQL systems with cluster based deployments, and are able to handle these data distribution mechanisms.

5) know access control mechanisms currently used by NoSQL systems, and are able to configure such data protection mechanisms.

Throughout the course, the students are expected to form the ability to autonomously recognize and handle problems related to data modeling, analysis and management with NoSQL databases.

The students will learn the terminology related to the domain of NoSQL databases.

The course has no mandatory prerequisite

The course will cover the following topics:

- Introduction to NoSQL databases (4h, teaching goal 1)
++ Motivations, variety of NoSQL systems, and basic concepts.

- Key-Value databases (6h, teaching goal 2 and 3)
++ Adopted data model, database design strategies, and analysis features

- Document databases (6h, teaching goal 2 and 3)
++ Adopted data model, database design strategies, and analysis features

- Column family databases (6h, teaching goal 2 and 3)
++ Adopted data model, database design strategies, and analysis features

- Data distribution mechanisms and data consistency principles (8h, teaching goal 4)
++ Sharding, replication and consistency models

- Data analysis and manipulation (12h, teaching goal 3)
++ SQL-like languages, platform specific query languages, and MapReduce

- Access control within NoSQL datastores (6h, teaching goal 4)

The course consists of 48 hours of lectures. The lessons aim at presenting multiple aspects of data management with NoSQL databases, as well as practical applications of the proposed data modeling, data analysis and management techniques.

Exams aim at verifying that students have successfully acquired the knowledge and abilities described in the "Objectives" section. The exam consists of a written test which lasts 2 hours. Students are not allowed to consult any textbook or other learning material during the exam. The written exam consists of 3 open questions on the conceptual aspects of the course, and 3/4 exercises which aim at assessing data modeling, or data analysis, or data distribution or data protection abilities learned by the students. The grade is given in thirtieths. At mid, and at the end of the course, students can do partial written tests that aim at assessing the acquired knowledge and abilities. The grade of both tests is given in thirtieths. Finally, students can optionally give a talk of 30 minutes on a topic agreed upon with the lecturer.The grade of this optional presentation can raise or lower the final grade of the written test of up to three points.The exam is passed if a student receivesa grade greater than 18/30 in both partial tests, or if he/she receives a grade greater than 18/30 in the written test.
If a student has received a grade greater than 18/30 in both partial tests, the final score of the exam is determined by: the average value of the grades received in the partial tests, which is summed to the points received with the optional talk. Otherwise, the final score corresponds to the grade received in the written test, which is summed to the grade received with the optional talk.

The advised textbooks are:

- Pramod J. Sadalage, Martin Fowler. NoSQL Distilled - A Brief Guide to the Emerging World of Polyglot Persistence. Addison Wesley

- Guy Harrison. Next Generation Databases - NoSQL, NewSQL, and Big Data. Apress

- Dan Sullivan. NoSQL for Mere Mortals. Addison Wesley

The slides used during the lessons, and any additional required documentation is provided to students through the University's e-learning platform.

Students reception takes place by appointment, issuing an email to the lecturer: pietro.colombo@uninsubria.it