Overview

All individuals who own a personal computer need to store data on a daily basis. The operating system provides the file system as a way to organize and access files easily, masking the complexities of physical data storage. Although the file system is a simple and efficient data management system, many applications need more sophisticated features, which a file system does not provide, such as data integrity, indexes and fine-grained access control mechanisms.

This is where databases come into play.

The objective of this course is to introduce the basic notions on which all modern database management systems are grounded. The course is divided into two parts. The first part focuses on relational databases and presents the notions of integrity constraints, data consistency, transactions and normalization, both in single-server and distributed environments. The second part will introduce the four families of NoSQL databases, with a special focus on document databases (MongoDB)

Prerequisites

Basic understanding of how computer systems work: processor, memory, disk operations and functions of the operating system.

Teaching staff

Course summary

1. An introduction to database systems and data modeling.

  • Database systems: definitions and motivations.
  • Data models.
  • Introduction to the relational data model.
  • Database design with the Entity-Relationship model (ER).

2. Normalization theory.

  • Normalization: definitions and motivations.
  • Notion of functional dependency.
  • 1st, 2nd and 3rd normal forms.
  • Further normal forms: Boyce-Codd, 4th and 5th normal forms.
  • Normalization in real life.

3. Relational database management systems (RDBMS).

  • Types of relational DBMS: client-server vs. embedded.
  • An embedded relational DBM: SQLite.
  • Interacting with a relational DBMS: the SQL language.

4. Advanced database concepts.

  • Overview of a database management system.
  • Transactions: definitions and motivations.
  • Transaction management and processing.
  • Query processing.
  • Indexing.

5. Distributed databases.

  • Distributed databases: definitions and motivations.
  • Data replication and sharding.
  • Data consistency in distributed databases.
  • The CAP theorem.

6. NoSQL database systems.

  • NoSQL database systems: definitions and motivations.
  • Overview of NoSQL databases systems.
  • Document-oriented databases: MongoDB.

Exam

The evaluation is based on:

  1. A project (40% of the final grade).
  2. A written examination (60% of the final grade).

The project is a teamwork assignment where the students use the notions learned in classroom to design and create a database for a travel reservation system. Each team will be composed of 2-3 students.

The written examination lasts 1.5 hours and consists of two parts:

  • A multiple choice questionnaire.
  • A series of exercises on relational/NoSQL database modeling and querying.