CS 186 at UC Berkeley | Spring 2020
Introduction to Database Systems
Week 0 Overview
Introductions
Week 2 Overview
Disks, Buffers, Files
Week 3 Overview
B+ Trees & Indices
Week 4 Overview
Buffer Management & Relational Algebra
Week 5 Overview
Sorting & Hashing
Week 6 Overview
Iterators & Joins
Week 7 Overview
Query Optimization
Week 8 Overview
Parallel Query Processing
Week 9 Overview
Transactions & Concurrency
Week 10 Overview
Database Design
Week 11 Overview
Recovery & ARIES
Week 12 Overview
Unstructured Data: Searching Text
Week 13 Overview
Distributed Transactions
Notes
In addition to the textbook, the staff will publish a set of lecture notes that serve as supplements to the edX lectures. Make sure you revisit the notes after lecture. Each note may be covered in one or more lectures. See Syllabus for more information.
- Note 0: SQL I
- Note 1: SQL II
- Note 2: Disk + Files
- Note 3: B+ Trees
- Note 4: Buffer Management
- Note 5: Relational Algebra
- Note 6: Sorting
- Note 7: Hashing
- Note 8: Iterators & Joins
- Note 9: Query Optimization
- Note 10: Parallel Query Processing
- Note 11: Transactions
- Note 12: Database Design
- Note 13: Recovery
- Note 14: Distributed Transactions
Discussions
In-person discussion sections are an optional and highly recommended component of this course, and you may attend whichever section(s) you like. In discussion, you'll learn more in depth about the previous week's content and you'll have the opportunity to ask your TA relevant conceptual questions. Here is a list of all the discussion sections for the course.
- Discussion 1: SQL (Solution) (Slides)
- Discussion 2: Disks/Files/Buffers (Solution) (Slides)
- Discussion 3: Indices, B+ Trees (Solution) (Slides)
- Discussion 4: Buffer Management (Solution) (Slides)
- Discussion 5: Sorting, Hashing (Solution) (Slides)
- Discussion 6: Joins (Solution) (Slides)
- Discussion 7: Query Optimization (Solution) (Slides) (Walkthrough)
- Discussion 8: Parallel Queries (Solution) (Slides) (Walkthrough)
- Discussion 9: Transaction & Concurrency (Solution) (Slides) (Walkthrough)
- Discussion 10: Functional Dependencies, ER Diagrams (Solution) (Slides) (Walkthrough)
- Discussion 11: Recovery (Solution) (Slides) (Walkthrough)
- Discussion 12: Distributed Transactions (Solution) (Slides) (Walkthrough)
Projects
Throughout the semester, we will release 5 programming assignments via Piazza, each worth 7% of your grade. They are designed to cover distinct parts of the course and are done in SQL (Project 1) and Java (Project 2 - 5). See Syllabus for more information.
- Project 0: Setup
- Project 1: SQL
- Project 2: B+ Trees
- Project 3: Joins + Query Optimization
- Project 4: Locking
- Project 5: Recovery
Lecture Slides
Slides generally follow the notes. Lecture videos are provided via edX. See Syllabus for more information.
- Slide 1: SQL I
- Slide 2: SQL II
- Slide 3: Disks, Files, Buffers I
- Slide 4: Disks, Files, Buffers II
- Slide 5: Disks, Files, Buffers III
- Slide 6: B+ Trees
- Slide 7: Indexes, B+ Tree Refinements
- Slide 8: Buffer Management
- Slide 9: Relational Algebra
- Slide 10: Sorting & Hashing
- Slide 11: Iterators & Joins
- Slide 12: Query Optimization I
- Slide 13: Query Optimization II
- Slide 14: Parallel Query Processing
- Slide 15: Transaction & Concurrency I
- Slide 16: Transaction & Concurrency II
- Slide 17: Entity Relationship Models
- Slide 18: FDs and Normalization
- Slide 19: Recovery
- Slide 20: Searching Text (Optional)
- Slide 21: Web Crawlers and IR (Optional)
- Slide 22: Distributed Transactions
- Slide 23: NoSQL (Optional)
- Slide 24: Big Data and Data Wrangling (Optional)
- Slide 25: Closing Thoughts
Guerrilla Section
Worksheets and their corresponding solutions from guerrilla sections are posted here. Guerrilla sections are optional and are encouraged as a way to ensure you're keeping up with the material.
- Section 1 (Solution) (Slides)
- Section 2 (Solution) (Slides)
- Section 3 (Solution) (Slides) (Walkthroughs)
- Section 4 (Solution) (Slides) (Walkthroughs)
- Section 5 (Solution) (Slides) (Walkthroughs)