The basic design principles of systems managing very large databases will be discussed. Topics will include: database design, data models, integrity constraints, query languages, database file organization, indexing, query processing and optimization, transaction processing. Students will re-implement a local-only version of Apache SparkSQL.