For the past year, my colleague Anastasia Lubennikova and I led a course called "DBMS Technology and Development." This course is dedicated to the development of relational DBMS with an emphasis on a particular implementation in the form of PostgreSQL. We collaborated with several universities at once. At HSE it was a required course designed for 4th year students (the photo shows students taking the exam). In VMMC OF MOSCOW STATE UNIVERSITY. it was an elective subject that students from different courses took.
Since the academic process at the named universities differs slightly (grading system, modules vs. semesters, etc.) we had to adapt the course. Below is its complete syllabus, including everything read at both universities, with all the latest corrections :
- Lecture 1. Introduction ;….
- Lecture 2. Architecture Overview ;
- Lecture 3. Storing data on disk ;
- Lecture 4. Access methods ;
- Lecture 5. Practical C/C++ ;
- Lecture 6. Transaction log ;
- Lecture 7. Replication in PostgreSQL ;
- Lecture 8: Transactional Isolation ;
- Lecture 9. MVCC Snapshot Isolation ;
- Lecture 10. Full-text search in PostgreSQL ;
- Lecture 11. Searching by geodata with PostGIS ;
- Lecture 12. Executing queries ;
- Lecture 13. Introduction to distributed systems ;
The directory on Google Drive with the lectures is here A ZIP archive with all the lectures in PDF format can be downloaded from here (4.4 MB) Also separate PDF files are available on GitHub As for the license issue, you can freely distribute and modify the slides, as well as read courses on them, as long as you don’t claim authorship. In general, if someone decides to read the course on our slides, we will be glad to help you with preparation.
Anticipating a legitimate question in the comments, I note that at the moment we decided to take a break from running the course. This turned out to be quite a laborious task, even considering that now we have all the course materials. But if you are interested in database development you can join the following Telegram-channel @dbmsdev , which was created to connect with our students. There we are happy to answer questions on this course and on DBMS development in general (as far as our modest experience allows).
In conclusion, I have a little fun fact for you. If you feel like you don’t fully understand something in any subject area, the best way to figure it out is to start taking an appropriate course 🙂