Hacker Courses The online courses programmers keep recommending, ranked from 20 years of public forum comments.
i
15-445/645 Intro to Database Systems
Image: youtube.com
#22 overallClassic

15-445/645 Intro to Database Systems

Carnegie Mellon University

17 recommenders · 20 threads · recommended in 9 years, 2017–2025 · score 26.6

Go to course ↗

CMU's introductory database systems course covering how DBMSs are designed and built: data models, storage, indexing, concurrency control, recovery, and query processing. Lectures are published free on YouTube, and homework is available on the course site.

Commenters repeatedly call it top-notch and praise Andy Pavlo's clear, free video lectures on how databases work internally.

Databases & Data Engineeringintermediatefreevideo lectures#database internals#sql#indexing#concurrency control#pavlo

Recommendations by year

20062026

What commenters said (29)

  1. Strongly recommendsjasonwatkinspdx2025in “Subtleties of SQLite Indexes”

    Yeah, if you're going to work with databases regularly I think it's worth learning how b-trees work. It'll make a lot of things much more intuitive.

    If you wanna get a very complete grounding in how the big rdbmses work, Andy Pavlo's lectures and class notes are fantastic.

  2. Strongly recommendsgavinray2023in “Databases in 2022: A Year in Review”

    Can we also start a general "Andy Pavlo" appreciation comment chain?

    Please comment below if Andy has in any way positively improved your life or helped you further your education/career.

    I can start:

    - Early in 2022, I decided I wanted to learn how databases like Postgres work and build one from scratch. If it wasn't for the CMU lectures available to the public on YouTube, I don't think I would have been able to give myself anywhere near a decent education.

    - This year, Andy even made the homework-grading platform available to the public, so you could submit solutions to the database coursework and get graded as if you were a student attending CMU.

    - Not only does Andy take the time to record, edit, and upload his lectures to the public, but he hosts a yearly seminar series where he interviews speakers from all over the database industry (https://db.cs.cmu.edu/seminar2022)

    - Andy does all he does (Professorship) on top of running OtterTune, I have no idea how he functions. He truly is the realest of all gangsters, and a secret member of the Wu-Tang Clan. Andy makes databases fun.

  3. Strongly recommendsoxff2022in “Ask HN: Best resources to learn the intricacies of relational databases”

    The first two CMU courses are goated. I recommend reading at least some of the papers Pavlo says to, but if I'd have to recommend a particular one it'd be "Architecture of a Database System": https://dsf.berkeley.edu/papers/fntdb07-architecture.pdf

  4. Strongly recommendspocket_cheese2020in “We Replaced an SSD with Storage Class Memory”

    For anyone interested in how a database works underneath the hood, I could not recommend a better MOOC than Andy Pavlo's database courses. His intro to database course is so freaking good.

  5. Strongly recommendsddlutz2020in “Introduction to Hacking PostgreSQL (2007)”

    while not specific to postgres, for general DB internals the CMU courses are top-notch. intro: https://15445.courses.cs.cmu.edu/fall2019/ advanced: https://15721.courses.cs.cmu.edu/spring2020/

  6. Strongly recommendsptr2020in “Ask HN: What Technologies to Learn in 2020?”

    I'd start with CMU's "Intro to Database Systems", their lectures are on youtube. Highly recommended both for the depth and how Andy Pavlo presents the topic. https://www.youtube.com/watch?v=oeYBdghaIjc&list=PLSE8ODhjZX...

  7. Recommendsgolergka2024in “The Practical Guide to Scaling Django”

    Knowing SQL and how relational databases actually work is one of the best superpowers a backend developer can have. If you want to go deeper than your database manual, the best place is Andy Pavlo's db course, freely available at youtube. I don't write databases, but after watching it I understand trade-offs and performance considerations much better, and feel much more comfortable reading Postgresql manual.

  8. Recommends_georgesim_2023in “The Inner Workings of Distributed Databases”

    You can take CMU's 15-445 which is available online with lectures uploaded to youtube: https://15445.courses.cs.cmu.edu/fall2022/.

  9. Recommendspolskibus2022in “Foundations of Databases”

    Check out Andy Pavlo’s courses - videos are freely available. Then see what books you will need as the topic is very broad.

  10. Recommendsmaxmcd2022in “How does database indexing work? (2008)”

    Obligatory recommendation for the CMU Databases Systems lecture series by Andy Pavlo. https://www.youtube.com/watch?v=oeYBdghaIjc&list=PLSE8ODhjZX...

    Here's the lecture on tree indexes: https://www.youtube.com/watch?v=JHZFc4hMGhk

  11. Recommendszffr2021in “Databases in 2021: A Year in Review”

    The author is a professor at CMU who specializes in databases: https://www.cs.cmu.edu/~pavlo/

    Not completely related, but his lectures on databases on YouTube are really good. Much better than the DB class I had at college.

  12. Recommendsrgbimbochamp2021in “Foundations of Databases (1995)”

    Plugging in Andy Pavlo's Database lectures @ CMU which are completely free on Youtube. Great guy and great lectures.

  13. Recommendsacidbaseextract2020

    Not at all. I'd highly recommend CMU's 15-445/645 Intro to Database Systems course (sponsored by Snowflake lol) because they put all their lectures online on YouTube [1]! Here's what's involved in making fast databases from the syllabus [2]:

    This course is on the design and implementation of database management systems. Topics include data models (relational, document, key/value), storage models (n-ary, decomposition), query languages (SQL, stored procedures), storage architectures (heaps, log-structured), indexing (order preserving trees, hash tables), transaction processing (ACID, concurrency control), recovery (logging, checkpoints), query processing (joins, sorting, aggregation, optimization), and parallel architectures (multi-core, distributed). Case studies on open-source and commercial database systems are used to illustrate these techniques and trade-offs. The course is appropriate for students that are prepared to flex their strong systems programming skills.

    [1] https://www.youtube.com/playlist?list=PLSE8ODhjZXjbohkNBWQs_...

    [2] https://15445.courses.cs.cmu.edu/fall2020/syllabus.html

  14. Recommendspolskibus2020in “Launch HN: QuestDB (YC S20) – Fast open source time series database”

    Please consider going through Andy Pavlo's superb video courses on building databases.

    http://www.cs.cmu.edu/~pavlo/

    He discusses many common pitfalls and architectural decisions that impact database quality and performance, including map and why it's bad.

  15. Recommendspolskibus2020in “Apache Druid vs. Time-Series Databases”

    I recommend watching Andy Pavlo's courses:

    https://15445.courses.cs.cmu.edu/fall2019/

    https://15721.courses.cs.cmu.edu/spring2020/

  16. Recommendspipu2019in “Intro to Database Systems (Fall 2019) [video]”

    Andy Pavlo's video lectures are very good. Watched both introductory and advanced lectures a year or so ago. Recommended. Previous videos may be found from the channel.

  17. Recommendsalecco2019in “Let’s Build a Simple Database (2017)”

    CMU Andy Pavlo’s lectures on YouTube are great and also shows state of the art. Start there.

  18. Recommendsbarbecue_sauce2019in “Database Architecture Blog”

    Andy Pavlo from the CMU Database Group has excellent courses on Database design on YouTube. Large time commitment, but he goes into great detail about internals and design tradeoffs, and is very knowledgeable about which database systems use which approaches. The intro course is about traditional databases, while the advanced course is about modern in-memory databases.

  19. Recommendspipu2018in “How SQL Database Engines Work, by the Creator of SQLite (2008) [video]”

    I truly recommend CMU's Andy Pavlov's video lectures on the topic (and also more advanced stuff)

    https://www.youtube.com/playlist?list=PLSE8ODhjZXjYutVzTeAds...

  20. Recommendswhy-el2017in “PostgreSQL 10 Released”

    I would suggest the database courses from CMU. Really good stuff and free online.

  21. Mentionsdanielfalbo2026in “Databases in 2025: A Year in Review”

    Maybe off-topic but,

    If you're not familiar with the CMU DB Group you might want to check out their eccentric teaching style [1].

    I absolutely love their gangsta intros like [2] and pre-lecture dj sets like [3].

    I also remember a video where he was lecturing with someone sleeping on the floor in the background for some reason. I can't find that video right now.

    Not too sure about the context or Andy's biography, I'll research that later, I'm even more curious now.

    [1] youtube.com/results?search_query=cmu+database

    [2] youtu.be/dSxV5Sob5V8

    [3] youtu.be/7NPIENPr-zk?t=85

  22. Mentionsdqg822025in “OMSCS Open Courseware”

    OMSCS student here. You are absolutely right that the DB course is one of the weaker offerings. There is a newer Database System Implementation course, which is based on Andy Pavlo's excellent undergrad course (which is also available online), but only the first half or so of that course is covered, which is disappointing for a graduate course. In terms of the larger program, however, the two database courses are outliers and most courses are of much higher quality and definitely not undergrad level.

  23. Mentionsdebanjan162023in “Teach yourself Computer Science functionally”

    Keep us posted about the lectures. I don't find a personal website of you. Then I would have bookmarked it.

    There are so many awesome lectures from other CMU courses like Andy Pavlo's Database, Keenan Crane's Graphics courses.

    I so hope CMU records their intro courses and put them out in public.

  24. MentionsTostino2022in “For Want of a JOIN”

    Not exactly the same, but check out the CMU database course lectures on YouTube.

  25. Mentionsoxff2022in “Systems Software Research is Irrelevant (2000) [pdf]”

    The author defines systems research as:

    What is Systems Research these days? Web caches, web servers, file systems, network packet delays, all that stuff. Performance, peripherals, and applications, but not kernels or even user-level applications.

    This seems false. DBMS and OS research is pretty interesting today. Look into Andy Pavlo or Onur Mutlu's courses and students to get pointers.

  26. Mentionsjasonwatkinspdx2020in “NoisePage – Self-Driving Database Management System”

    So this comes out of Andy Pavlo's group. He teaches an undergrad and graduate level database class each year, and makes nearly all of his course materials available (there's some guest lectures that don't want to be public sadly): http://www.cs.cmu.edu/~pavlo/

    I'd definitely go through the slide decks on concurrency control in both of these classes. They're an amazing resource for anyone interested in database internals. There's a ton of tradeoffs, and a lot of prior research into them. Andy's slide decks are something of a road map to the different choices.

    What you describe is roughly snapshot isolation, which mostly works, but is vulnerable to write skew.

  27. Mentionsmanigandham2019in “CMU 15-721: In-Memory Databases / Advanced Database Systems [video]”

    Check out the CMU database group for all the other content and the multiple courses: https://db.cs.cmu.edu/

    Here's their Youtube channel: https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/fea...

  28. Mentionsdiehunde2019in “Ask HN: How to get better in advanced SQL”

    Just by doing advanced exercises. For example take a look at the SQL homework for one of the CMU courses on databases:

    https://15445.courses.cs.cmu.edu/fall2018/homework1/

    While doing the exercises you'll be doing some research and looking at question in stack overflow.

  29. Mentionsvalarauca12019in “Ask HN: What should a systems/low-level software engineer know?”

    For High Throughput compute, and cache correctness. Here are the primers I can give. None of these are required. Strong langauge, cs, interpersonal skills, team inter-interoperability, and commitment to quality (via unit and integration testing, and skill working with liners) can get you a lot further.

    The resources I'm linking are supplementary to the above, and you'll likely encounter them in the wild. But they'll help you build a base of knowledge, and give you terminology to search for, and work with.

    - What Every Programmer should know about memory: https://people.freebsd.org/~lstewart/articles/cpumemory.pdf

    - Cache Obviousness: https://www.youtube.com/watch?v=bY8f4DSkQ6M (the suggestions, and terminology are important)

    - Parallelism: (This is a good primer, there are a lot of complementary posts linked on the site) https://preshing.com/20120612/an-introduction-to-lock-free-p... https://preshing.com/20120913/acquire-and-release-semantics/

    - If you plan on working with linux these is an excellent reference: http://man7.org/linux/man-pages/dir_section_2.html remember there is no magic in Linux, everything eventually has to go through a system call. So if you learn the systemcalls, you can can learn how things work :)

    - Fog's optimization resources are awesome: https://www.agner.org/optimize/

    - MIT courseware: https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP... https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP...

    - This cheat sheet is worth committing to memory: http://www.bigocheatsheet.com/ the reference links are also great for building up knowledge

    - I highly recommend CMU DB open course ware: (intro) https://www.youtube.com/watch?v=vyVGm_2iFwU&list=PLSE8ODhjZX... (advanced) https://www.youtube.com/watch?v=poEfLYH9W2M&list=PLSE8ODhjZX...

    This should give you a good primer on Concurrency, and DB's. For networking likely a basic TLA+ certification class will be 99% review, but for the things it isn't will offer great insight.

Related courses

Keyboard

In the course grid
←↑→↓
Move between courses
Home End
Start / end of row (with Ctrl: first / last)
PgUp PgDn
Jump several rows
Enter
Open course
S
Save / unsave course
1–5
Best, Trending, Hidden gems, Evergreen, Saved
[ ]
Previous / next topic
On a course page
← →
Previous / next course in your list
S
Save / unsave
O
Open the course website
Esc
Back to the grid
Everywhere
/
Search
T
Light / dark theme
?
This help