I took CS186 Introduction to Database Systems as an undergraduate at UC Berkeley in 2017. However, the class iteration I took abstracted out the need to understand some parts of the database (e.g. I implemented the B+ tree and joins, but not the lock manager). The 2023 iteration of the class is significantly better, plus I wanted to revisit and solidify my understanding of the subject anyway (now that I have attained more mathematical/computer science maturity).
Projects: https://cs186.gitbook.io/project/
Starter code: https://github.com/berkeley-cs186/fa23-rookiedb/
Class website (current): https://cs186berkeley.net/