CS ATLAS A map of computing

Domain 09 —

Data & Databases

6 topics1970 — 2012

Chronology — 26 entries

Chronology

Every milestone in this domain, ordered by date. An event shared by several topics is counted once.

1970Codd's relational modelTables, relational algebra and data independence.The Relational Model
1974System RA prototype of SQL and query optimisation.The Relational Model
1974SEQUEL is proposedIBM's relational query language.SQL
1976Transactions in System RTwo-phase locking and recovery.Transactions & ACID
1979Oracle goes commercialThe relational database reaches the market.The Relational Model
1979Oracle ships SQLCommercial adoption spreads.SQL
1981Gray's transaction paperACID made systematic.Transactions & ACID
1983The term ACIDCoined by Härder and Reuter.Transactions & ACID
1986SQL is standardisedANSI SQL.The Relational Model
1986SQL-86Standardised by ANSI.SQL
1990MVCC spreadsReads stop blocking writes.Transactions & ACID
1992SQL-92One of the most important revisions of the standard.SQL
2000The CAP theoremConsistency, availability, partition tolerance.Distributed Databases
2003Window functionsAnalytical queries get stronger.SQL
2003The GFS paperA distributed file system.Big Data & MapReduce
2004The MapReduce paperA programming model for batch processing.Big Data & MapReduce
2006HadoopThe open-source implementation.Big Data & MapReduce
2006BigTableColumn families and distributed indexes.NoSQL
2007DynamoEventual consistency and consistent hashing.NoSQL
2009MongoDB and RedisDocument and in-memory stores go mainstream.NoSQL
2010SparkIn-memory computing and RDDs.Big Data & MapReduce
2012SpannerGlobally distributed, strongly consistent transactions.Transactions & ACID
2012NewSQLFusion routes such as VoltDB and Spanner.NoSQL
2014FlinkStream and batch in one engine.Big Data & MapReduce
2015Raft becomes popularA consensus algorithm you can understand.Distributed Databases
2017CockroachDB and TiDBNewSQL goes commercial.Distributed Databases

Curriculum

Courses and labs

Which university courses this domain usually maps to, and whether the practical work is a standalone project course or an in-class lab.

Standalone lab course / project

The labs are substantial: CMU’s BusTub has you implement core components inside a real DBMS skeleton.

Courses

Database SystemsDatabase Project

Open courses

  • CMU 15-445 Database Systems
  • Berkeley CS 186 Introduction to Database Systems

What the labs look like

  • The four BusTub projects

    CMU 15-445: buffer pool manager, B+ tree index, query execution, concurrency control

  • SQL and transactions

    Create tables and indexes, then use two sessions to see the four isolation levels differ

  • A small DBMS

    Implement storage, an index and a simple SQL parser yourself