mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-06-25 19:07:04 +08:00
38 lines
No EOL
3 KiB
Markdown
38 lines
No EOL
3 KiB
Markdown
# CMU 15-445: Database Systems
|
|
|
|
## Descriptions
|
|
|
|
- Offered by: CMU
|
|
- Prerequisites: C++, data structures, algorithms
|
|
- Programming Languages: C++
|
|
- Difficulty: 🌟🌟🌟🌟
|
|
- Class Hour: 100 hours
|
|
|
|
As an introductory course of database at CMU, this course is taught by Andy Pavlo, a great expert in the field of database. 15-445 will teach you the basic topics of database systems from the bottom up: storage architectures, indexing, query processing, and concurrency control. The highlight of this course is that CMU db has developed a relational database management system for the Introduction: [Bustub](https://github.com/cmu-db/bustub). And you are required to modify this database to implement the functions mentioned above. Moreover, as a small and medium-size projects written in C++, bustub covers program construction, code specification, unit testing, etc., and can be an excellent open source project to study.
|
|
|
|
## Resources
|
|
|
|
- Course Website: [Fall2019](https://15445.courses.cs.cmu.edu/fall2019/schedule.html), [Fall2020](https://15445.courses.cs.cmu.edu/fall2020/schedule.html), [Fall2021]((https://15445.courses.cs.cmu.edu/fall2021/schedule.html)
|
|
- Assignments: refer to the course website
|
|
- Textbook: Database System Concepts
|
|
- Assignments: 4 Projects
|
|
|
|
In Fall 2019, the second Project is to implement a hash table, and the fourth Project is to implement Logging, Recovery, and Checkpoints in your database system.
|
|
|
|
In Fall 2020, the second Project is to implement B+Tree dynamic index structure, and the fourth Project is to implement concurrency control.
|
|
|
|
In Fall 2021, the first Project is to implement a buffer pool, the second Project is to implement a hash table, and the fourth Project is to implement concurrency control.
|
|
|
|
If you have more time you can try them all, and when you do not understand the textbook very well, try to code to implement the project will increase your understanding.
|
|
|
|
## Personal Resources
|
|
|
|
All the resources and assignments used by @ysj1173886760 in this course are maintained in [ysj1173886760/Learning: db - GitHub](https://github.com/ysj1173886760/Learning/tree/master/db)
|
|
|
|
Due to Andy's request, there is no implementation of Project in the repository, only the Solution of Homework. In particular, for Homework1, @ysj1173886760 wrote a shell script to help you evaluate the scores automatically.
|
|
|
|
After the course, it is recommended to read a paper: [Architecture Of a Database System](https://github.com/ysj1173886760/paper_notes/tree/master/db) This paper provides an overview of the overall architecture of database systems, so that you can have a more comprehensive view of the database.
|
|
|
|
## Advanced courses
|
|
|
|
[CMU15-721](https://15721.courses.cs.cmu.edu/spring2020/) mainly focuses on in-memory database, and each class has a corresponding paper to read, and is recommended for those who wish to advance in the database. ysj1173886760 is currently following up on this course, and will create a pull request here after completing it to provide advanced guidance. |