This course provides an overview of the current database management systems in the cloud, and explains how they are different from traditional database systems. The goal is to get students familiar with some well-known implementations like NoSQL databases, Google BigTable, Google MegaStore, and Google Spanner etc., and more importantly, to help students make better decisions on the design tradeoffs when configuring/building their own database systems given a particular set of target applications (tenants) in mind.
Proper understanding of Java/OOP programming and data structure is required.
Wei-Hung Chang
*張維紘
Shih-Yu Teng
鄧仕榆
Zhong-Ming Guo
郭忠明
Yung-Chen Chiang,
江咏宸
This course is intended for senior undergraduate and junior graduate students who understand
2025/03/20 - lab 4: slides announced
2025/03/20 - Lecture 05: slides announced
2025/03/13 - lab3 && Lecture 04: slides announced
2025/03/10 - Lecture 03: slides announced
2025/03/03 - Lecture 02: slides announced
2025/02/20 - Lecture 01: slides announced
2025/02/16 - Lecture 00: slides announced
If you have any feedback, feel free to contact: shwu@cs.nthu.edu.tw
Main Features of a DBMS | Data Models
Using PostgreSQL
Java Concurrency
ER & Relational Models | Weak Entities | Functional Dependencies | Normal Forms
Introducing the assignment platform we will be using in this course and the general rules for assignments
This lab guides you through the main idea of version control systems and the basic usage of Git.
Basic tutorial of VanillaDB
Given some scenario, design the ER model.
Explain Assignment 1
Architecture Overview | SQL | JDBC | Native Interface | RecordFile | MetaData
This lab guides you through the Benchmark Project.
Introduction | Threads Processes | Supporting Concurrent Clients | Embedded Clients vs. Remote Clients | RMI | JDBC Implementation
This lab guides you through the VanillaCore. (Server, Remote Access, Utilities)
Implement JDBC version and Stored Procedures version of Read/Write transaction in VanillaDB.
Explain Assignment 2
Overview | Parsing & Verification | Parser & SQL Data | Predicates | Predicates | Scans | Plans | Assignment
This lab guides you through the VanillaCore. (Query)
Implement Explain SQL operation in VanillaDB.
Following provides links to some useful online resources. If this course starts your DB journey, don't stop here. Enroll yourself in advanced courses (shown below) to learn more.
For more course materials (such as assignments, score sheets, etc.) and online forum please refer to the GitLab.
Describes the API operations for the VanillaDB in detail.
Raghu Ramakrishnan et al., Database Management Systems, 3 Edition, McGraw-Hill, 2002, ISBN: 0072465638
Abraham Silberschatz et al, Database System Concepts, 6 Edition, McGraw-Hill, 2010, ISBN: 0073523321
Edward Sciore, Database Design and Implementation, Wiley, 2008, ISBN: 0471757160
M.Tamer Özsu, Principles of Distributed Database Systems, 3 Edition, Springer, 2011, ISBN: 1441988335
Rachid Guerraoui et al., Introduction to Reliable Distributed Programming, Springer, 2006, ISBN: 3540288457