Database Systems
I took this course on databases at Tufts and it served as the perfect primer for working with relational databases like SQL and provided a foundation for understanding noSQL databases like Mongo. It covered a wide variety of high-level concepts including:
- Relational algebra
- The relational model
- Normalization (functional dependencies, BCNF)
- Disk storage management (pages v.s. log-structured, slotted pages, heap organization, directory pages)
- Indexes and their implementations
- Query planning (joins, optimization)
- ACID
- Concurrency control (locks, conflict equivalence, conflict serializability)
The course also provided assignments writing SQL and normalizing schemas. It covered a ton of content in a small amount of time, so there were definitely some things that went right over my head. However, I think it gave me an excellent platform to start building my understanding of databases and their use. After taking this course, I was able to go straight into my summer internship at Paytronix and quickly get acquainted with their existing database, then start writing prod-ready SQL queries in just a couple of weeks.