Skip to content

Latest commit

 

History

History
100 lines (76 loc) · 4.71 KB

15445.md

File metadata and controls

100 lines (76 loc) · 4.71 KB

15-445/645 Introduction to Database Systems

Category Difficulty
HW 4
Projects 6
Exams 7

Introduction to Database Systems is a Systems class which takes a deep dive into Database System Internals. This course concerns itself more about Implementation of Database Systems than their application. This course is one of the more easier systems courses in terms of project difficulty and expectations. One of the major perks is that every person who works in the field of Database Systems knows about the course. The instructor also hosts weekly seminars with professionals working on notable database systems.

Language Used

This class uses C++11

Topics Covered

  • Relational Model
  • Advanced SQL
  • Database Storage and Buffer Pools
  • Index Concurrency Control
  • Indexes using Trees and Hash Tables
  • Sorting + Aggregations
  • Joins Algorithms
  • Query Execution, Planning and Optimization
  • Concurrency Control Theory and Two-Phase Locking, Timestamp Ordering and Multi-Version Concurrency Control
  • Logging Protocols + Schemes
  • Crash Recovery Algorithms
  • Distributed Databases and OLTP & OLAP Distributed Databases

Lectures

The lectures of this course are the best material on database systems as an introduction available anywhere. All lectures pre-covid were uploaded to youtube which adds to the fame of this course. Lectures are dense with information and might be intimidating at first.

The density on the other hand ensures all important topics related to database systems are covered in sufficient detail. The lectures do a great job of explaining concepts with clear visualisations. All lectures are enjoyable and highly recommended. The instructor presents demos on many of the concepts taught in the class in real world DBMS.

This class has a focus on concurrency in database systems, which many other comparable courses worldwide avoid. The theory on concurrency is also applicable in the projects.

Some topics in the lectures are covered with less depth but the instructor does a good job of giving a good brief overview of these topics while leaving an impression of importance and curiosity in the mind of the students.

Together with the parallel seminar series the material and content of this course makes it one of the best database systems courses in the world.

Projects

Projects are one of the core components of this class. The Bustub academic relational database system is used as a base for all projects. The projects are individual and are also built on top of each other so it is never a good idea to fail in any project.

The first project is a warm up for C++11, the second one implements Buffer pool for the Bustub DBMS, the third one implements indexes using B+Trees, the fourth one builds a query execution engine, and the last fifth project makes the DBMS concurrent.

The projects are not difficult for any student with a software systems background, except the B+tree index project. This project is difficult mainly because of the size and complexity of the B+tree logic and CMU's special focus on concurrency.

Exams

Exams are good test of knowledge and are 2 hours long. The staff does a good job setting the right expectations for the exam by giving sample exams and guidance. Almost all the questions can be answered using the content of lectures. The exam has logical questions as either MCQs or Short or long answer based, rarely does a question involve numerical calculation but they are obvious and easy.

HW

Homeworks are the easiest component of the course, the first assignment is challenging for students who have never dabbled in SQL before, but does a good job getting everyone up to speed with SQL.

How to do well

  • Make sure you are proficient in C++11. Yes, it is different and it's new features are an integral part of the projects.
  • Start early and be liberal about consulting TAs and classmates(keep the Academic Integrity Policy in mind). Some projects require a few details which are extremely esoteric and are crucial for implementing the project and these details are not obvious at first.
  • The class has a leaderboard and the top students get extra credit, get to the top and make your future in this class easier.
  • ATTEND ALL LECTURES, THEY ARE THE BEST.
  • ATTEND ALL THE SEMINARS, and try to watch all the recorded seminars from the past. These seminars make this course holistic and will give you an edge in interviews.

What to look out for

  • The B+Tree project i.e. the scariest tree I have ever seen.
  • All projects build on top of each other, missing any of them can be disastrous.