Logo UAB
2023/2024

Non-Relational Databases

Code: 104409 ECTS Credits: 6
Degree Type Year Semester
2503740 Computational Mathematics and Data Analytics OB 3 2

Contact

Name:
Laura Rivera Sanchez
Email:
laura.rivera@uab.cat

Teaching groups languages

You can check it through this link. To consult the language you will need to enter the CODE of the subject. Please note that this information is provisional until 30 November 2023.

Teachers

Oriol Ramos Terrades

Prerequisites

It’s highly recommended to have coursed the subject Relational DataBases.


Objectives and Contextualisation

This subject introduces the basic concepts of non-relational databases and distributed databases. The main objective is to provide the student with the necessary tools to design and use these data storage systems.

KNOWLEDGE: At the end of the course the student must be able to:

  • Design non-relational databases appropriate to the data to be processed.
  • Design and configure data processing infrastructures based on certain requirements.
  • Make queries about databases.

SKILLS: Students are expected to acquire the following skills:

  • To gather and interpret relevant data (usually within your study area) to make judgments that include reflection on relevant social, scientific or ethical issues.
  • To work cooperatively, in complex or uncertain environments and with limited resources, in a multidisciplinary context, assuming and respecting the role of the different team members.
  • To prevent and solve problems, adapt to unforeseen situations and make decisions.
  • To write technical reports from a database.

Develop the above skills with non-relational DBMS (DataBase Management Systems), such as MongoDB and Neo4J.


Competences

  • Design, develop, maintain and evaluate software systems that allow large volumes of heterogeneous data to be represented, stored and handled in accordance with the established requirements.
  • Make effective use of bibliographical resources and electronic resources to obtain information.
  • Students must be capable of applying their knowledge to their work or vocation in a professional way and they should have building arguments and problem resolution skills within their area of study.
  • Students must be capable of communicating information, ideas, problems and solutions to both specialised and non-specialised audiences.
  • Students must have and understand knowledge of an area of study built on the basis of general secondary education, and while it relies on some advanced textbooks it also includes some aspects coming from the forefront of its field of study.
  • Using criteria of quality, critically evaluate the work carried out.
  • Work cooperatively in a multidisciplinary context assuming and respecting the role of the different members of the team.

Learning Outcomes

  1. Correctly dimension the infrastructure of the database required for the management and mass storage of data in a given service.
  2. Design relational or non-relational databases appropriate to the characteristics of the data that they aim to represent, manipulate and store.
  3. Enquire into a database to efficiently extract relevant information for analysing the required data.
  4. Make effective use of bibliographical resources and electronic resources to obtain information.
  5. Students must be capable of applying their knowledge to their work or vocation in a professional way and they should have building arguments and problem resolution skills within their area of study.
  6. Students must be capable of communicating information, ideas, problems and solutions to both specialised and non-specialised audiences.
  7. Students must have and understand knowledge of an area of study built on the basis of general secondary education, and while it relies on some advanced textbooks it also includes some aspects coming from the forefront of its field of study.
  8. Using criteria of quality, critically evaluate the work carried out.
  9. Work cooperatively in a multidisciplinary context, taking on and respecting the role of the distinct members in the team.

Content

1.Object-oriented and non-relational DataBases

  • Basic concepts of object orientation.
  • Identity and structure of an object.
  • Encapsulation of operations, methods and persistence.
  • Introduction to Non-SQL databases: definition, characteristics and types.

 

2.Documemtary DataBases: MongoDB

  • Basic concepts and characteristics.
  • Design patterns.
  • Basic operations: CRUD, import / export.
  • Physical design: indexing and hashing.
  • Distributed systems: replicasets and sharding.

 

3.Columnar (column oriented) or Key-value DataBases

  • Basic concepts and characteristics.
  • Basic operations.

 

4.Graph DataBases: Neo4J

  • Basic concepts and characteristics.
  • Design patterns.
  • Basic operations in graphs: CRUD, import / export.
  • Advanced operations in graphs: search algorithms.

Methodology

In this subject we will follow the flipped classroom methodology. In this methodology, the study of the theoretical contents must be carried out as autonomous activities before the in-person sessions, based on material and documentation that will be accessible through the virtual campus of this subject. The classes become practical sessions for solving exercises and the realization of the project, aimed at resolving all doubts and problems that will have encountered throughout the week.  

There will be two types of activities: theory and project activities. Theory activities will be aimed at consolidating the most theoretical aspects of the subject. A part of them will be individual while others will be carried out in working groups. The project will be an essentially practical group activity that will be carried out throughout the course and that will serve to help consolidate the theoretical aspects that have been worked on in class.      

The working groups will be groups of 4 students, will be formed on the first day of class and will remain stable throughout the course. They will be the same for the group theory activities and the project.   

Without counting the hours that must be spent for preparing for the partial exams, the average load is 9 hours per week and student, distributed in 4 hours for in-person classes, plus the following activities: 

  • Work before the class: an average of 2 hours per week estimated it will have to devote to reading or viewing the material that will work in sessions.
  • Working on the project: an average of 3 hours per week and member of the group will be dedicated to do the project, plus the hours that could be dedicated to solving problems and the project.
  • Project and problem solving: the weeks with the less workload will be devoted to making more exercises and problem solving of the topics worked on in-person sessions.

Transversal competences: In this subject, students will work on competences T01, T02 and T04. These skills will be worked throughout the entire course in all activities during the course, but with more intensity in solving problems and developing the project. 

  

Annotation: Within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.


Activities

Title Hours ECTS Learning Outcomes
Type: Directed      
in-person class 25 1 8, 1, 2, 7, 6, 5
Type: Supervised      
Problems and project class 24 0.96 1, 2, 3, 7, 6, 5
Type: Autonomous      
Developing the project 40 1.6 8, 1, 2, 3, 5, 9, 4
Pre-work 26 1.04 8, 1, 2, 3, 7, 5, 4
Study for the exams 20 0.8 1, 2, 3, 7, 6, 5, 4

Assessment

The evaluation will be continuous, so there is no unique evaluation modality. There will be two individual written theoretical-practical exams, with the weight indicated below for each of them. The first test (Par1) will be done approximately halfway through the semester and will evaluate the theoretical and practical concepts in documentary databases such as MongoDB. The second test (par2) will take place at the end of the semester and evaluate the theoretical concepts not evaluated in Par1.        

Recovery exam: In case the Theory Note does not reach the pass (5), students may do a recovery exam on the failed part.

Most weeks there will be the possibility to deliver activities worked during the week. The delivery is optional and can be made up to the hours set in advance on the Virtual Campus. With the 80% of the deliveries, the student can achieve the highest score (1 point) of this activity (NPrb).   

The grade of the project will be obtained from the weighted average of the grades obtained in each delivery. Each note will be the arithmetic mean of the group note and the individual note. Each one of the deliveries must be passed separately. In case of failing any delivery, there will be the option to recover the failed part. The grade of the recovery will be a maximum of 5.  

GRADE INDICATORS:

The final mark is calculated as follows:

  • Partial Score 1 = Par1
  • Partial Score 2 = Par2
  • Theory Score = 0'5*Par1 +0'5*Par2 + NPrb
  • Project Score = 0’5*Prj1 + 0’5*Prj2
  • COURSE FINAL GRADE = 0'5 * Theory Mark + 0'5 * Project Mark

EVALUATION CRITERIA

  • For taking into account the Theory mark, it is necessary to obtain a minimum of 4 on each Partial (Par1 and Par2).
  • For taking into account the Problem mark (NPrb), it is necessary to obtain a minimum of 4,5 on the average partial: = 0'5*Par1 +0'5*Par2 >= 4,5.
  • To count the scores of the project deliveries (PRJ), it is necessary to obtain a score greater than or equal to 4 in all deliveries.
  • If the student fails some of the project deliveries, the maximum score that can be obtained in the recovery is 5.
  • To pass each part (theory and practices), a minimum of 5 must be obtained.
  • The course will be passed if the COURSE FINAL SCORE is greater than or equal to 5.
  • In case of not reaching the minimum required in any of the evaluation activities, the numerical grade of the record will be the lower value between 4.5 and the weighted average of the grades.
  • NOT EVALUABLE: If the student does not deliver any evaluation activity.
  • REPEATERS: No separately approved part (theory, project) is kept/validated from one academic year to another.
  • IMPORTANT FOR ALL STUDENTS: It is important to register on the virtual campus, where the materials of the subject are published, the deliveries of the activities are made and the final scores of the subject are published.
  • Awarding an honors degree is the decision of the teaching staff responsible for the subject. UAB regulations indicate that MH can only be granted to students who have obtained a final grade equal to or greater than 9.00. Up to 5% MH of the total number of students enrolled can be awarded.

 

EVALUATION SCHEDULE:

  • Partial exams: according to the academic calendar of the Science Faculty.
  • Recovery Exam: according to the academic calendar of the Science Faculty.
  • Deliveries of activities: date and time set in advance at the virtual campus.
  • Deliveries of the project: date and time fixed in advance at the virtual campus.

 

The dates of deliveries at the virtual campus may be subject to program changes for reasons of adaptation to possible incidents. These changes will always be reported at thevirtual campus, as it is the usual mechanism for the exchange of information between teachers and students.

For each assessment activity, a place, date and time of review will be indicated in which the student can review the activity with the teacher. In this context, claims may be made about the grade of the activity, which will be evaluated by the teachers responsible for the subject. If the student does not come to this review, the activity will not be reviewed later.

Without prejudice to others that are deemed appropriate and in accordance with current legislation academic discipline, irregularities committed by a student that can lead to a variation of the rating will be rated with a zero mark (0). Assessment activities classified in this way and by this procedure will not be recoverable. If it is necessary to pass any of these assessment activities to pass the course, this course will be suspended directly, with no opportunity to recover it in the same course. These irregularities include, among others:

  • the total or partial copy of a practice, report, or any other evaluation activity;
  • let other copy your exam/work;
  • present a group work that has not been entirely done by the members of the group;
  • present as own those materials produced by a third party, even if they are translations or adaptations, and in general works with non-original and exclusive elements of the student;
  • have communication devices (such as mobile phones, smartwatches, etc.) accessible during the theoretical assessment tests - individual practices (exams).

In case the student has committed irregularities in any evaluation part (and therefore it will not be possible to pass via compensation), the numerical grade of the subject will be the lower value between 3.5 and the weighted average of the grades. In summary: copying, let others copy your work or plagiarizing in any of the evaluation activities is equivalent to a failure with a grade lower than 3.5.


Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
1st Partial Exam (Par 1) 0.25 2 0.08 8, 1, 2, 3, 7, 6, 5
2nd Partial Exam (Par 2) 0.25 2 0.08 8, 1, 2, 3, 7, 6, 5
Delivery of the problems (NPrb) 0.05 2 0.08 8, 1, 2, 3, 6, 5, 4
Delivery of the project 0.5 9 0.36 8, 1, 2, 3, 6, 5, 9, 4

Bibliography

MATERIALS OF THE SUBJECT: Virtual campus of the UAB, subject Non-relational DataBases.

BASIC BIBLIOGRAPHY:

  • NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Pramod J. Sadalage , Martin Fowler. Addison-wesley, 2013.
  • MongoDB: The Definitive Guide. Kristina Chodorow. O'Really , 2013.
  • Graph Databases, Ian Robinson, Jim Webber and Emil Eifrem, 2n Edition. O’Really, 2015.
  • Graph Algorithms, Mark Needham & Amy E. Hodler, O’Really, 2019.

Software

  • MongoDB server: (https://www.mongodb.com)
  • MongoDB client: nosqlBooster (https://nosqlbooster.com)
  • Neo4j (server and client): Neo4j Desktop (https://neo4j.com)
  • IDE for Python (PyCharm, Spider, Anaconda, etc.)
  • Code repository (github or bitbucket)