# UCB CS186: Introduction to Database System

## Descriptions

- Offered by: UC Berkeley
- Prerequisites: CS61A, CS61B, CS61C
- Programming Languages: Java
- Difficulty: 🌟🌟🌟🌟🌟
- Class Hour: 150 hours

How to write SQL queries? How are SQL commands disassembled, optimized, and transformed into on-disk query commands step by step? How to implement a high-concurrency database? How to implement database failure recovery? What is NoSQL? This course elaborates on the internal details of relational databases. Besides the theoretical knowledge, you will use Java to implement a real relational database that supports SQL concurrent query, B+ tree index, and failure recovery.

From a practical point of view, you will have the opportunity to write SQL queries and NoSQL queries in course projects, which is very helpful for building full-stack projects.

## Course Resources

- Course Website: <https://cs186berkeley.net/>
- Recordings: <https://www.youtube.com/playlist?list=PLYp4IGUhNFmw8USiYMJvCUjZe79fvyYge>
- Assignments: <https://cs186.gitbook.io/project/>

## Personal Resources

All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS186 - GitHub](https://github.com/PKUFlyingPig/CS186).
