Data-intensive systems
Summary
This course covers the data management system design concepts using a hands-on approach.
Content
We will cover database architecture, data models, query optimization and planning, query engine and system programming, and storage systems. As our field is evolving rapidly, the list below is not exhaustive and will be adapted to reflect current technology trends.
- Entity-relationship and relational model
- Relational Algebra, Calculus, and SQL
- Memory and storage hierarchy
- Sorting and Indexing
- Query operators and optimization
- Basic synchronization mechanisms: locking and latching, task coordination
- Transaction management and concurrency control
Learning Prerequisites
Required courses
CS-202 Computer Systems
CS-302 Parallelism and concurrency in software
Recommended courses
CS-200 Computer architecture
Important concepts to start the course
- Excellent C/C++ programming skills
- Undergraduate computer science course(s) on algorithms and data structures
Learning Outcomes
By the end of the course, the student must be able to:
- Identify and understand key components of database systems
- Choose or critique design choices for DB software
- Express application information requirements and model the data of an application
- Create and design a database with a practical application in mind while justifying choices
- Explore how a DBMS works
- Report performance and possible optimizations for applications utilizing a DBMS
Teaching methods
Lectures, exercices, and projects
Expected student activities
- Attend the lectures to ask questions and interact with the professor
- Attend the exercises session to solve and discuss exercises about the recently taught material
- Complete a team project that covers the practical side of the course, e.g., build a set of key components in a DBMS
- Study all the material provided and recommended during classes
- Take a midterm and a final exam
Assessment methods
- Labs (30%)
- Midterm (35%)
- Final exam (35%)
Supervision
Office hours | Yes |
Assistants | Yes |
Resources
Bibliography
Database Management Systems, 3rd Edition, Raghu Ramakrishnan and Johannes Gehrke
Ressources en bibliothèque
Websites
Moodle Link
Dans les plans d'études
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Data-intensive systems
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- Labo: 2 Heure(s) hebdo x 14 semaines
- Type: obligatoire
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Data-intensive systems
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- Labo: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Data-intensive systems
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- Labo: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Data-intensive systems
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- Labo: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Data-intensive systems
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- Labo: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel
- Semestre: Printemps
- Forme de l'examen: Ecrit (session d'été)
- Matière examinée: Data-intensive systems
- Cours: 2 Heure(s) hebdo x 14 semaines
- Exercices: 1 Heure(s) hebdo x 14 semaines
- Labo: 2 Heure(s) hebdo x 14 semaines
- Type: optionnel