Databases

Next running

9 Sep - 17 Oct
5:00pm-6:30pm Mon/Thu

Location

San Francisco

Price

$1800

Apply for this course

Most software engineers use database systems, but few understand them. It is not surprising, then, that database related issues are a common cause of application failure, and that misuse of databases frequently impedes engineering team productivity.

Our course aims to provide practicing software engineers with a firm understanding of the architectures of database systems and the trade-offs that they make. We hope this will help our students make better choices when deciding between database systems and their features, to better utilize their chosen technologies and to more effectively debug any issues.

Classes

  1. Joins
  2. Lab: Implementing Joins
  3. Indexes
  4. Lab: Implementing a Database Index
  5. The Relational Model and Query Optimization
  6. Lab: Parsing SQL Queries
  7. Logging for Atomicity and Durability
  8. Concurrency
  9. Distributed Databases
  10. Introduction to Database Systems
  11. Sorting, Hashing and Single Table Queries
  12. Lab: Implementing a Query Executor

Projects and exercises

This course involves a significant practical component: implementing a simplified relational database management system from scratch. Most classes will cover some amount of theory, which you will then directly apply to your own DBMS implementation. In addition, the optimization portion of the curriculum involves anticipating, reasoning about and optimizing query plans for a handful of given queries, in what is one of our most popular and illuminating exercise.

Assumed knowledge

This course assumes confident programming abilities, and some familiarity with computer architecture. Working familiarity with at least one relational database management system is also highly advised.

Available sessions

9 Sep - 17 Oct
5:00pm-6:30pm Mon/Thu
San Francisco

This course will next be taught by

Oz Nova

Oz is the lead instructor at Bradfield, and most frequently teaches Algorithms and Data Structures, Computer Architecture, Databases, Operating Systems and Distributed Systems. Prior to co-founding Bradfield, he worked for a decade as a software engineer and engineering manager, including as CTO and Co-founder of Topguest (acquired by Switchfly) and Vida.com.