Class Schedule - Fall 2026
==============================

Note that this schedule will be updated the semester proceeds, so
please check for accurate account of actual material that is covered.


Week 1 - Thursday (8/27)
-------------------------

- Introduction to Databases and Relational Data Model (Chapter 1, 2.1-2.2)
- (Optional) Videos:

    - `Lecture 1: Introduction to Databases <https://vimeo.com/452721555>`_
    - `Lecture 1.2: Introduction to Relational Data Model <https://vimeo.com/452915953>`_


Week 2 - Monday (8/31)
-------------------------

- Introduction to Relational Algebra (Chapter 2)
- (Optional) Videos:

     - `Lecture 2.1 Introduction to Relational Algebra <https://vimeo.com/453868965>`_
     - `Lecture 2.2 Rename, Select, Project <https://vimeo.com/454166156>`_
     - `Lecture 2.3 Cartesian Product <https://vimeo.com/454166680>`_  
       

Week 2 - Thursday (9/3)
------------------------


- Introduction to Relational Algebra  (Chapter 2 and 3)

- (Optional) Videos)

     - `Lecture 3.1: Relational Algebra (Join) <https://vimeo.com/455312258>`_

       (Errata: Note a mistake at 10 minute mark: hid=hid1 should be
       hid<>hid1, like in the first solution to the same query.

       This is why, due to inequality, we cannot use natural join for this
       query easily.)
       
     - `Relational Algebra tl;dr (5 mins Summary) <https://vimeo.com/455312404>`_
       

- Solve Lecture 4 Exercise  on Submitty after class (deadline in 48 hrs).

Week 3 - Monday (9/7)
------------------------

No class


Week 3 - Thursday (9/10)
------------------------

- Normalization (Chapter 3)
- Optional (Videos):

       - `Lecture 3.2: Normalization (Functional dependencies, inference, keys), infomercial style! <https://vimeo.com/455312447>`_  
     - `Lecture 4:1: Normal Forms <https://vimeo.com/455555941>`_
     - `Lecture 4:2: Minimal Basis <https://vimeo.com/455561999>`_

- Solve Lecture 5 Exercise on Submitty after class (deadline in 48 hrs).


Week 4 - Monday (9/14)
------------------------

- Normalization (Chapter 3)
- Optional (Videos):
  
     - `Lecture 5:3: Normalization (3NF Decomposition) <https://vimeo.com/457544268>`_
       Errata: in the example in this video, one of the keys is missing for R,
       BCD should also be a key!

     - `Lecture 5:1: Normalization (Introduction to Decompositions: Lossless Decocompositions) <https://vimeo.com/457543933>`_
     - `Lecture 5:2: Normalization (Dependency Preserving Decompositions) <https://vimeo.com/457544136>`_
     - `Lecture 5:4: Normalization (BCNF Decomposition) <https://vimeo.com/457547883>`_
     - `Lecture 5:Bonus: Normalization (BCNF Decomposition, Second example) <https://vimeo.com/457555832>`_

- Solve Lecture 6 Exercise on Submitty after class (deadline in 48 hrs).


Week 4 - Thursday (9/17)
------------------------

- Entity-Relationship Diagrams (Chapter 4)
- Optional (Videos):
  
     - `Lecture 6:1: Normalization (Fourth Normal Form) <https://vimeo.com/458752406>`_
     - `Lecture 6:2: Entity Relationship Diagrams (Entities) <https://vimeo.com/458752542>`_
     - `Lecture 6:3: Entity Relationship Diagrams (Relationships and Participation Constraints) <https://vimeo.com/458760435>`_

- Solve Lecture 7 Exercise after class (deadline in 48 hrs).


Week 5 - Monday (9/21)
------------------------

- Entity-Relationship Diagrams (Chapter 4)
- Optional (Videos):
  
     - `Lecture 8:1:  ER Diagrams (Entities Reexamined, Weak Entities) <https://vimeo.com/459979649>`_
     - `Lecture 7:1: Converting ER Diagrams to Relational Data Model <https://vimeo.com/459754834>`_

- Solve Lecture 8 Exercise after class (deadline in 48 hrs).


Week 5 - Thursday (9/24)
------------------------

- Entity-Relationship Diagrams (Chapter 4)
- Optional (Videos):
  
     - `Lecture 8:1:  ER Diagrams (Entities Reexamined, Weak Entities) <https://vimeo.com/459979649>`_
     - `Lecture 7:1: Converting ER Diagrams to Relational Data Model <https://vimeo.com/459754834>`_

- Solve Lecture 9 Exercise after class (deadline in 48 hrs).

Week 6 - Monday (9/28)
------------------------

Exam 1 Review


Week 6 - Thursday (10/1)
------------------------

**EXAM 1**


Week 7 - Monday (10/5)
------------------------

- Basic SQL Language (Chapter 6)
- Optional (Videos):
  
     - `Lecture 10:2+10.3: SQL: Intro, SELECT, WHERE <https://vimeo.com/465979129>`_
     - `Lecture 10:4: SQL: FROM <https://vimeo.com/465979315>`_

- Solve Lecture 11 Exercise on Submitty (deadline in 48 hrs after class)


Week 7 - Thursday (10/8)
-------------------------

- Basic and Advanced SQL Language (Chapter 6)
- Optional (Videos):
  
     - `Lecture 11:1: Set/bag operators, order by, limit <https://vimeo.com/466009052>`_
     - `Lecture 12:1: SQL Outer Join <https://vimeo.com/468304645>`_
    

Week 8 - Thursday (10/15)
-------------------------

- Advanced SQL Language (Chapter 6)
- Optional (Videos):
  
     - `Lecture 12:3: SQL Set Comparisons <https://vimeo.com/468304031>`_
     - `Lecture 13:1: SQL Correlated Set Comparisons <https://vimeo.com/469606479>`_
- Solve Lecture 12 Exercise  on Submitty after class (deadline in 48 hrs).


Week 8 - Friday (10/16)
-------------------------
SQL Review

  
Week 9 - Monday (10/19)
---------------------------
- Advanced SQL Language (Chapter 6), Anonymous Queries and WITH Statement
- Data Definition and Manipulation in SQL
- Introduction to Transactions  
- Optional (Videos):

     - `Lecture 13:2: Transactions and SQL Insert <https://vimeo.com/469606612>`_
     - `Lecture 13:3: SQL Update/Delete <https://vimeo.com/469610731>`_
- Solve Lecture 13 Exercise  on Submitty after class (deadline in 48 hrs).


Week 9 - Thursday (10/22)
---------------------------
- Producedural SQL
- PL/PGSQL  
- Optional (Videos):

      - `Lecture 15:1: PL/pgSQL <https://vimeo.com/471969771>`_
- Solve Lecture 14 Exercise on Submitty after class (deadline in 48 hrs).


Week 10 - Monday (10/26)
---------------------------
- PL/PGSQL - Procedural SQL
- Optional (Videos):

     - `Lecture 15:1: PL/pgSQL <https://vimeo.com/471969771>`_
     - `Lecture 16_1: Views and Access Control <https://vimeo.com/473213387>`_
       
- Complete Lecture Exercise 15

Week 10 - Thursday (10/29)
---------------------------
- Triggers and Access Control
- Optional (Videos):

     - `Lecture 16_2: Other SQL Features (case, recursion, advanced group by)  <https://vimeo.com/473213914>`_

- Complete Lecture Exercise 16

Week 11 - Monday (11/2)
---------------------------

Exam 2 Review

Week 11 - Thursday (11/5)
---------------------------

**EXAM #2**
  
Week 12 - Monday (11/9)
---------------------------
- Introduction to Secondary Storage
- Optional (Videos):
     - `Lecture 19 1: Indexing  <https://vimeo.com/478303296>`_

       
Week 12 - Thursday (11/12)
---------------------------
- B-trees
- Optional (Videos):

     - `Lecture 19 2: B-trees  <https://vimeo.com/478303360>`_
     - `Lecture 19 3: B-trees: insertion/deletion  <https://vimeo.com/478303444>`_

     - `Lecture 20 1: B-trees: duplicate values and multiple attributes  <https://vimeo.com/479650781>`_

- Complete Lecture Exercise 21 (due 11/21)	


Week 13 - Monday (11/16)
---------------------------
- B-tree and Index Scan
- Optional (Videos):

     -  `Lecture 21 2: Index Scans <https://vimeo.com/481023203>`_

- Complete Lecture Exercise 22 (due 11/26)	

Week 13 - Thursday (11/19)
---------------------------
- External Sorting
- Query Processing

- Block-nested Loop Join
- Optional (Videos):

     -  `Lecture 21 1: Query Execution  <https://vimeo.com/481023321>`_
     -  `Lecture 21 3: Block Nested Loop Join  <https://vimeo.com/481023352>`_
     -  `Lecture 22 1: External Sort   <https://vimeo.com/482157060>`_

     -  `Lecture 22 2: Pipelining  <https://vimeo.com/482157108>`_

     -  `Lecture 21 1: Query Execution  <https://vimeo.com/481023321>`_

- Complete Lecture exercise 23 

Week 14 - Monday (11/30)
---------------------------
- Cost Estimation for Query Plans
- Query Optimization
- Size Estimation
- Index Selectivity

- Optional (Videos):
     -  `Lecture 22 5: Size Estimation  <https://vimeo.com/482188505>`_
     -  `Lecture 22 3: Query Optimization Introduction  <https://vimeo.com/482157187>`_

     -  `Lecture 22 4: Query Plan Generation  <https://vimeo.com/482188476>`_
     
- Complete Lecture Exercise 24

Week 14 - Thursday (12/4)
---------------------------

- Transactions Concurrency
- Optional (Videos):
  
     -  `Lecture 23 1: Concurrency Control Introduction <https://vimeo.com/484937168>`_
     -  `Lecture 23 2:  Checking Serialiazibility <https://vimeo.com/484937242>`_
     -  `Lecture 24 1: Two Phase Locking <https://vimeo.com/484937273>`_
	
     -  `Lecture 24 2: Lock Management <https://vimeo.com/485733797>`_

- Complete Lecture Exercise 25


Week 15 - Monday (12/7)
---------------------------
- Transactions Durability
- Optional (Videos):

     -  `Lecture 24 3: Durability introduction <https://vimeo.com/485733896>`_

     -  `Lecture 25 1: Durability: Logging <https://vimeo.com/487677843>`_

     -  `Lecture 25 2: Durability: Force/Steal <https://vimeo.com/487677887>`_
     -  `Lecture 25 3: Durability: Recovery: Aries Algorithm <https://vimeo.com/487677967>`_


Week 15 - Thursday (12/10)
---------------------------

- Overall review and Database Tuning
- Optional (Videos):

     -  `Course Notes: Database Tuning <course_notes/dbs_tuning.html>`_      


Finals Week
---------------------------

**FINAL EXAM**
