NOSQL DATABASES

Degree course: 
Corso di Second cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
2019/2020
Year: 
1
Academic year in which the course will be held: 
2019/2020
Course type: 
Compulsory subjects, characteristic of the class
Language: 
English
Credits: 
6
Period: 
First Semester
Standard lectures hours: 
48
Detail of lecture’s hours: 
Lesson (48 hours)
Requirements: 

The course has no mandatory prerequisite

Final Examination: 
Orale

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.

Assessment: 
Voto Finale

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 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 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.

Convenzionale

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.

Students reception takes place by appointment, issuing an email to the lecturer.

Professors