Author is a database amateur, so the content is not authoritative, welcome to point out my error.
Since the database course is recommended, only good articles, papers or blogs are listed starting from part 3.
- List of Knowledge
- 1. Description
- 2. Recommended Basic Course and Books
- 3. SQL & Relational Algebra
- 4. DDL & DML
- 5. Relational Model
- 6. Storage management
- 8. Query Evaluation(Processing)
- SQL Query Parser
- Query Executor
- 9. Query Optimization
- Lock manager
- 10. Transaction management
- 11. Network
- 12. Serialization
- 13. Concurrency Control
- 14. Crash Recovery management
- 15. NoSQL
- 16. NewSQL
- 17. Distributed & Paralleled
- 18. AI4DB and DB4AI (frontier tech)
- 15. OLAP、OLTP、HTAP
- 16. Project Source Code Analysis
- 17. Mini-Project Labs
This repo will not include knowledge about basic programming language. it mainly focus on direction of database kernal development.
The tutorial will include content:
- Courses
- Blogs
- Papers
- Activities
- Talks
Ok, The repo include two language content:
- English Content
- Chinese Content.
If you have any good materials, welcome to submit a pull request for this repo.
Finally, I would like to thank the professor who provided the Course resource, papper resource Etc. Also thanks the blogger who provided the study notes. Thanks to all content resource providers.
I will not update course notes and labs.
- MIT The Missing Semester of Your CS Education
- C/C++
- Go
- Rust
You only need to know a programming language.
University | ID | Name | Time | Comment |
---|---|---|---|---|
CMU | 15-213/14-513/15-513 | Intro to Computer Systems(ICS) | Fall 2015 | CS:APP3e |
UC Berkeley | CS61C | Great Ideas in Computer Architecture (Machine Structures) | Spring 2017 | N/A |
UC Berkeley | CS 152/252A | Computer Architecture and Engineering | Spring 2022 | N/A |
N/A | N/A | Crash Course Computer Science | bilibili地址 |
- Reference Course Resources
University | ID | Name | Time | Comment |
---|---|---|---|---|
Stanford | CS110 | Principles of Computer Systems | Winter 2022 | |
MIT | 6.828 | Operating System Engineering | Fall 2018 | |
UC Berkeley | CS162 | Operating Systems and System Programming | Fall 2020 | |
MIT | 6.033 | http://web.mit.edu/6.033/www/index.shtml | N/A | covers four units of technical content: operating systems, networking, distributed systems, and security |
- Reference Course Resources
University | ID | Name | Time | Comment |
---|---|---|---|---|
Stanford | CS144 | Introduction to Computer Networking | Fall 2021 | |
CMU | CS 15-744 | Computer Networks | Spring 2018 | |
中科大USTC | N/A | 计算机网络 | N/A | undergraduate stage |
中科大USTC | N/A | 高级计算机网络 | N/A | postgraduate stage |
- Reference Course Resources
University | ID | Name | Time | Comment |
---|---|---|---|---|
UC Berkeley | CS 61B | Data Structures | Fall 2020 | |
CMU | CS 15-122 | Principles of Imperative Computation | Spring 2023 | Past Courses Page 404 |
CMU | CS 15-121 | Introduction Data Structures | Spring 2018 |
- Reference Course Resources
University | ID | Name | Time | Comment |
---|---|---|---|---|
UC Berkeley | UC Berkeley | Efficient Algorithms and Intractable Problems | ||
MIT | 6.006 | Introduction to Algorithms | Spring 2020 | Introduction to Algorithmns |
CMU | CS 15-451/651 | Algorithm Design and Analysis | Fall 2021 | |
CMU | CS 15-850 | Advanced Algorithms | Fall 2020 |
- Reference Course Resources
University | ID | Name | Time | Comment |
---|---|---|---|---|
CMU | CS 15-445/645 | Database Systems | Fall 2022 | Instructor: Andy Pavlo |
UC Berkeley | CS 186 | Introduction to Database Systems | Spring 2022 | |
Pennsylvania | CMPSC 431W | Database Management Systems | Fall 2015 | |
Stanford | CS346 | Database System Implementation | Spring 2015 | |
uwaterloo | CS 448/648 | Database Systems Implementation | Winter 2009 | |
CMU | CS 15-721 | Advanced Database Systems | Spring 2020 | Instructor: Andy Pavlo |
CMU | CS 15-799 | Special Topics: Self-Driving Database Management Systems | Spring 2022 | Instructor: Andy Pavlo |
uwaterloo | CS 856 | Distributed data management fundamentals (architectures, data placement, query optimization) Distributed transaction processing, concurrency control, recovery, interoperability |
Fall 2002 | Only need these two slides, nothing else |
N/A | N/A | Let's Build a Simple Database: Writing a sqlite clone from scratch in C | Thanks to cstack |
-
fundamentals of database systems 7th edition solutions, by Ramez Elmasri, Shamkant B. Navathe
-
Database System Concepts Seventh Edition, by Silberschatz, Korth and Sudarshan 中文版:《数据库系统概念》
-
Database Management Systems, by Ramakrishnan and Gehrke 中文版:《数据库管理系统原理与设计》
-
Database Internals A Deep-Dive into How Distributed Data System Work, by Alex Petrov 中文版:《数据库系统内幕》
-
Designing Data-Intensive Applications, by Martin Kleppmann
-
Database Design and Implementation, by Edward Sciore
-
Database System Implementation, by Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom 中文版:《数据库系统实现》
- This book has been replaced by Database Systems: The Complete Book
-
Transaction Processing Concepts and Techniques by Jim Gray
-
Principles of Distributed Database Systems, by M. Tamer Özsu and Patrick Valduriez 中文版:《分布式数据库系统原理》
-
nosql distilled a brief guide to the emerging world of polyglot persistence, by Pramod J. Sadalage and Martin Fowler 中文版:《NoSQL精髓》
-
High Performance MySQL Third Edition, by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko 中文版:《高性能MySQL》
-
MySQL High Availability: Tools for Building Robust Data Centers, by CharlesBell,MatsKindahl,LarsThalmann 中文版:《高可用MySQL:构建健壮的数据中心》
CS 15-721 Topics Papers
This Section is for distributed database.
University | ID | Name | Time | Comment |
---|---|---|---|---|
MIT | 6.824 | MIT Distributed Systems | Spring 2021 | Golang |
N/A | N/A | Distributed Systems | ||
Columbia University | COMS 4113 | Distributed Systems Fundamentals | ||
CMU | CS 15-440 | CMU Distributed Systems | ||
Princeton | COS 418 | Princeton Distributed Systems | Fall 2019 | |
Columbia University | Advanced Distributed Systems | Research Papers |
-
SQL 知识点:Book《Database System Conceptsm》Chapter3、Chapter4、Chapter5
-
Relational Algebra 知识点:Book《Database System Conceptsm》Chapter6
-
w3cSchools SQL: https://www.w3schools.com/sql/
-
slide : Relational Algebra and SQL
-
DDL : https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language
-
DML : https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax
CS 15-445 课程 Lecture03、Lecture04
CS 15-445 课程 Lecture05
-
wikiPedia : Database index
-
wikiPedia : B+ tree
-
CS 186 Spring notes pdf : B+ tree
-
University of Utah sliede :Database Systems Index: B+ Tree
-
Paper 2004 : Query and Update Efficient B-Tree Based Indexing of Moving Object
-
课程:《Let's Build a Simple Database》
-
Paper 2010, Efficient B-tree Based Indexing for Cloud Data Processing, VLDB, National University of Singapore & IBM Watson Research Center
-
wikipedia : Hash table
-
CMU CS15-445 slide : Hash table slide
-
GAtech.edu slide : Hash table & Extendible Hash & Linear Hash
-
BlogAn Introduction to B-Tree and Hash Indexes in PostgreSQL
-
slide : Log Structured Merge Tree, thanks to Pinglei Guo
-
AlibabaCloud Community : Starting from Zero: Build an LSM Database with 500 Lines of Code
-
Top 10 SQL Query Optimization Tips to Improve Database Performance, by Avishek Singh
-
2006, Cost-based query transformation in Oracle, VLDB
- Oracle7 Server Concepts Manual : Distributed Databases
- Spanner: Google's Globally-Distributed Database
- University of Magdeburg slides:
- Tsinghua University databaseGroup Github : https://github.com/TsinghuaDatabaseGroup/AIDB
- Tsinghua & MIT Paper : https://dbgroup.cs.tsinghua.edu.cn/ligl/papers/sigmod21-tutorial-paper.pdf
- openGauss Blog : openGauss AI4DB and DB4AI
- MIT databaseGroup : http://dsg.csail.mit.edu/mlforsystems/papers/
- Blogger Github : https://github.com/LumingSun/ML4DB-paper-list
OnLine Analytical Processing
Online Transaction Processing
Hybrid Transactional/Analytical Processing
-
A Common Database Approach for OLTP and OLAP Using an In-Memory Column DataBase
-
PingCAP : How We Build an HTAP Database That Simplifies Your Data Platform
-
StoneDB 文章
ID | Database | DataBase Type | Blog | Github |
---|---|---|---|---|
1 | SQLite | SQLite源码分析 | https://github.com/sqlite/sqlite | |
2 | LevelDB | fast key-value storage library | LevelDB 源码剖析 | https://github.com/google/leveldb |
3 | PolarDB-X | cloud native distributed SQL Database | PolarDB-X 源码解读 | https://github.com/polardb/polardbx-sql |
4 | OceanBase | distributed relational database | https://github.com/oceanbase/oceanbase | |
5 | TiDB | cloud-native, distributed, MySQL-Compatible database | TiDB源码阅读分析 | https://github.com/pingcap/tidb |
6 | openGauss | open source relational database management system | openGauss数据库源码解析 | https://github.com/opengauss-mirror/openGauss-server |
taobao MySQL 数据库内核月报:http://mysql.taobao.org/monthly/
-
DeepDB : https://github.com/deepbodra97/Database-System-Implementation
-
CS 15-445 Labs