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)
Basic understanding of how computer systems work: processor, memory, disk operations and functions of the operating system.
1. An introduction to database systems and data modeling.
2. Normalization theory.
3. Relational database management systems (RDBMS).
4. Advanced database concepts.
5. Distributed databases.
6. NoSQL database systems.
The evaluation is based on:
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: