CS 471000 Introduction to Database Systems

Implementation, architectural design, and trade-offs.

Description

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.

Syllabus

Instructor

Teaching Assistants

Wei-Hung Chang
*張維紘

Shih-Yu Teng
鄧仕榆

Zhong-Ming Guo
郭忠明

Yung-Chen Chiang,
江咏宸


Contact TAs: dbta2025@datalab.cs.nthu.edu.tw
*DB Team

Time & Location

  • Lecture: Mon. 15:30-17:20 at Delta 103
  • Lab: Thur. 14:20-15:10 at Delta 103
  • Office hour: Thur. 13:20-14:10 at Delta 729

Grading Policy

  • Assignments (x5): 50%
  • Quiz: 15%
  • Midterm exam: 15%
  • Final project : 20%

Prerequisits

This course is intended for senior undergraduate and junior graduate students who understand

  • OOP Programming,
  • Multi-threaded Programming,
  • Data Structure, and
  • Version Control.
We use Java as the main programming language throughout the course. Although not required, background knowledge about operating system will be helpful.

Announcement

Curriculum

If you have any feedback, feel free to contact: shwu@cs.nthu.edu.tw

Lecture 00

Introduction

What's Database? | About This Course... | FAQ

Slides

Lecture 01

Using a DBMS

Main Features of a DBMS | Data Models

Slides

Lab1 Using PostgreSQL

Using PostgreSQL

Slides

Lab1 Java Concurrency

Java Concurrency

Slides

Resources

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.

Other Course Materials

For more course materials (such as assignments, score sheets, etc.) and online forum please refer to the GitLab.

GitLab

Documentation

Describes the API operations for the VanillaDB in detail.

Java Doc

Reference Books

  • 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