CS-300 / 6 credits

Teacher(s): Ailamaki Anastasia, Kashyap Sanidhya

Language: English


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

Note that the topics listed are tentative and may be covered at different levels of depth. Material discussed in previous editions of the course provides an indication of what may be covered, but does not constitute a guarantee, as data-intensive systems, technologies, and practices continue to evolve rapidly. Active participation in class and completion of the course projects/labs are strongly recommended.

Learning Prerequisites

Required courses

CS-202 Computer Systems

 

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 manage key components of database and operating systems
  • Choose or critique design choices for DB and OS system 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 and/or an OS performs work
  • Report performance and possible optimizations for applications
  • Explore how a DBMS works
  • Report performance and possible optimizations for applications utilizing a DBMS
  • Identify and understand key components of database systems
  • Choose or critique design choices for DB software

Teaching methods

Lectures, exercices,  and projects

Expected student activities

  • Complete the course projects/labs, which provide practical experience with the concepts covered in the course and prepare students for the corresponding practical questions in the final exam.
  • Study all material provided and recommended during the course.
  • Take the final written exam.

Assessment methods

The final grade is based entirely (100%) on the final written exam.The final exam will assess both the theoretical and practical aspects of the course. Questions similar in nature to the work carried out in the course projects/labs may account for up to the weighting previously allocated to the projects/labs in past editions of the course.The projects/labs themselves are not graded and do not contribute directly to the final grade.

 


Supervision

Office hours Yes
Assistant.e.s Yes

Resources

Bibliography

Database System Concept, 7th Edition, Avi Slberschatz, Henry F. Korth, S. Sudrshan

Ressources en bibliothèque

Moodle Link

In the programs

  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Lab: 2 Hour(s) per week x 14 weeks
  • Type: mandatory
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Lab: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Lab: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Lab: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Lab: 2 Hour(s) per week x 14 weeks
  • Type: optional
  • Semester: Spring
  • Exam form: Written (summer session)
  • Subject examined: Data-intensive systems
  • Courses: 2 Hour(s) per week x 14 weeks
  • Exercises: 1 Hour(s) per week x 14 weeks
  • Lab: 2 Hour(s) per week x 14 weeks
  • Type: optional

Reference week

Related courses

Results from graphsearch.epfl.ch.