This course provides an overview of the current database management systems. The goals are 1) to get students familiar with how to use a database system to solve real problems; 2) the internals of a database and some state-of- the-art implementations (e.g., MySQL, PostgreSQL etc.).
課程說明
Course Description
This course provides an overview of the current database management systems.
The goals
♠ | are 1) to get students familiar with how to use a database system to solve |
| real problems; 2) |
♠ | the internals of a database and some state-of-the-art implementations |
| (e.g.,Google BigTable, |
♠ | Google MegaStore, and Google Spanner etc.). |
✠ | Proper understanding of Java/OOP programming and data structure is required. |
剛修完作業系統、演算法,對大型程式系統有興趣之學生優先。
指定用書
Textbook
♠ Lecture Notes
參考書籍
References
教學方式
Teaching Method
♠ Lecture and Lab
教學進度
Syllabus
1 | Introduction to database systems |
| A. Relational model, SQL, transactions, and ACID (with quiz) |
| B. Modern database systems for scalability, availability, and elasticity |
2. | Query engine |
| A. JDBC and DB server B. Relational algebra C. Query plans, scans, and the storage interface D. Parsing E. Planning |
3. | Storage engine |
| A. Disk and file management B. Memory management C. Transaction management (+OCC) D. Record management E. metadata management |
4. | Benchmarking with TPC-C |
5. | Optimizations |
| A. Indexing B. Materialization and sorting C. Multi-buffer plans D. Query optimization |
6. | Distributed database systems and advanced topics |
| A. NoSQL database systems B. NewSQL database systems C. OLAP and datawarehousing |
| |