Tentative Class Schedule - Fall 2020
=======================================

Week 15 - Monday (12/7)
---------------------------

- Before lecture:

   - Read: Chapter 17 (Durability)
     
     - `Course Notes: Durability <course_notes/transactions_durability.html>`_      
  
   - Watch (Vimeo Links):

     -  `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>`_
     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 25

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

- Before lecture:

   - Read: Chapter 18 (Concurrency Control, 18.1-18.6) and Chapter 17 (Durability)
     
   - `Course Notes: Concurrency Control <course_notes/transactions_concurrency.html>`_
   - `Course Notes: Durability <course_notes/transactions_durability.html>`_      
  
   - Watch (Vimeo Links):

     -  `Lecture 24 1: Two Phase Locking <https://vimeo.com/484937273>`_

     -  `Lecture 24 2: Lock Management <https://vimeo.com/485733797>`_

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

     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 24

  
Week 14 - Monday (11/30)
---------------------------

- Before lecture:

   - Read: Chapter 16 (Query Compiler) and Chapter 18 (Concurrency Control, 18.1-18.4)
     
   - `Course Notes: Query Optimization <course_notes/query_optimization.html>`_    - `Course Notes: Concurrency Control <course_notes/transactions_concurrency.html>`_   
  
   - Watch (Vimeo Links):

     -  `Lecture 22 5: Size Estimation  <https://vimeo.com/482188505>`_

     -  `Lecture 23 1: Concurrency Control Introduction <https://vimeo.com/484937168>`_

     -  `Lecture 23 2:  Checking Serialiazibility <https://vimeo.com/484937242>`_
     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 23

Week 13 - Monday (11/23)
---------------------------

- Before lecture:

   - Read: Chapter 15 (Query Execution) and Chapter 16 (Query Compiler)
     
   - `Course Notes: Query Processing <course_notes/query_processing.html>`_   
   - `Course Notes: Query Optimization <course_notes/query_optimization.html>`_   
   - Watch (Vimeo Links):

     -  `Lecture 22 1: External Sort   <https://vimeo.com/482157060>`_

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

     -  `Lecture 22 3: Query Optimization Introduction  <https://vimeo.com/482157187>`_

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

     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 22



Week 12 - Thursday (11/19)
---------------------------

- Before lecture:

   - Read: Chapter 15 (Query Execution)
   - `Course Notes: Query Processing <course_notes/query_processing.html>`_   
   - Watch (Vimeo Links):

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

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

     -  `Lecture 21 3: Block Nested Loop Join  <https://vimeo.com/481023352>`_

     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 21



Week 12 - Monday (11/15)
---------------------------

- Before lecture:

   - Read: Chapter 14 (Index Structures)
   - `Course Notes: Secondary Storage <course_notes/secondary_storage.html>`_   
   - Watch (Vimeo Links):

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

     - `Lecture 20 2: Other types of indices  <https://vimeo.com/479651370>`_

     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 20

Week 11 - Thursday (11/12)
---------------------------

- Before lecture:

   - Read: Chapter 13 (Secondary Storage Management)
   - `Course Notes: Secondary Storage <course_notes/secondary_storage.html>`_   
   - Watch (Vimeo Links):

     - `Lecture 19 1: Indexing  <https://vimeo.com/478303296>`_

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

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


   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)


- Solve Lecture Exercise for Lecture 19
     

Week 11 - Monday (11/9)
---------------------------

- Before lecture:

   - Read: Chapter 13 (Secondary Storage Management)
   - `Course Notes: Secondary Storage <course_notes/secondary_storage.html>`_   

   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)
     
- No Lecture Exercises


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

- Before lecture:

   - Read: Views and Indexes (Chapter 8.1-8.2)
   - `Course Notes: Procedural SQL <course_notes/sql_otherfeatures.html>`_   

   - Watch (Vimeo Links):

     - `Lecture 16_1: Views and Access Control <https://vimeo.com/473213387>`_

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

   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Solve Lecture Exercise for Lecture 16


Week 9 - Monday (10/25)
---------------------------

- Before lecture:

   - Read: Constraints and Trigger (Chapter 7)
   - `Course Notes: Data Definition and Manipulation in SQL <course_notes/sql_dmlddl.html>`_   
   - `Course Notes: Procedural SQL <course_notes/sql_procedural.html>`_   

   - Watch (Vimeo Links):

      - `Lecture 15:1: PL/pgSQL <https://vimeo.com/471969771>`_

      - `Lecture 15:2: SQL Triggers <https://vimeo.com/471969909>`_

   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Note: No lecture Exercise for this lecture!


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

- Before lecture:

   - Read: SQL Language (Chapter 6), Constraints and Trigger (Chapter 7)
   - `Course Notes: Data Definition and Manipulation in SQL <course_notes/sql_dmlddl.html>`_   
   - `Course Notes: Procedural SQL <course_notes/sql_procedural.html>`_   

   - Watch (Vimeo Links):

     - `Lecture 14:1: SQL Constraints <https://vimeo.com/470771139>`_

     - `Lecture 14:2: SQL Isolation <https://vimeo.com/470771344>`_

     - `Lecture 14:3: SQL Introduction to Procedural SQL <https://vimeo.com/470778271>`_

   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Solve Lecture Exercise for Lecture 14

       
Week 8 - Monday (10/18)
-------------------------

- Before lecture:

   - Read: SQL Language (Chapter 6)
   - `Course Notes: Advanced SQL <course_notes/sql_advanced.html>`_   
   - `Course Notes: Data Definition and Manipulation in SQL <course_notes/sql_dmlddl.html>`_   

   - Watch (Vimeo Links):

     - `Lecture 13:1: SQL Correlated Set Comparisons <https://vimeo.com/469606479>`_

     - `Lecture 13:2: Transactions and SQL Insert <https://vimeo.com/469606612>`_

     - `Lecture 13:3: SQL Update/Delete <https://vimeo.com/469610731>`_
     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Solve Lecture Exercise for Lecture 13


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

- Before lecture:

   - Read: SQL Language (Chapter 6)
   - `Course Notes: Advanced SQL <course_notes/sql_advanced.html>`_   

   - Watch (Vimeo Links):
     
     - `Lecture 12:1: SQL Outer Join <https://vimeo.com/468304645>`_

     - `Lecture 12:2: SQL Anonymous and Scalar Queries <https://vimeo.com/468304284>`_ 
      
     - `Lecture 12:3: SQL Set Comparisons <https://vimeo.com/468304031>`_

     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Solve Lecture Exercise for Lecture 12


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

- Before lecture:

   - Read: SQL Language (Chapter 6)
   - `Course Notes: SQL Basics <course_notes/sql_basics.html>`_   

   - Watch (Vimeo Links):
     
     - `Lecture 11:1: Set/bag operators, order by, limit <https://vimeo.com/466009052>`_

     - `Lecture 11:2: Group by/Having <https://vimeo.com/466009110>`_

     
   - Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Solve Lecture Exercise for Lecture 11 (assuming it is ready after class!)
     

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

- Before lecture:

   - Read: SQL Language (Chapter 6)
   - `Course Notes: SQL Basics <course_notes/sql_basics.html>`_   

   - Watch Vimeo videos below (or in lecture videos posted on Mediasite)

     - `Lecture 10:2+10.3: SQL: Intro, SELECT, WHERE <https://vimeo.com/465979129>`_

     - `Lecture 10:4: SQL: FROM <https://vimeo.com/465979315>`_

     Note: I recorded the content in Vimeo after lecture (for 10.2,
     10.3 and 10.4), but for exercises and introduction to PSQL,
     Mediasite videos are also very useful.

   - Join lecture at 2:30PM on Webex Teams! (Recording on Mediasite after lecture)

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

- Before lecture:

   - Read: Entity-Relationaship Diagrams (Chapter 4)
   - `Course Notes: ER Diagram <course_notes/er.html>`_   
   - Watch (Vimeo Links):

     - `Lecture 8:1:  ER Diagrams (Entities Reexamined, Weak Entities) <https://vimeo.com/459979649>`_

     - `Lecture 8:2: ER Diagrams (Entity Hierarchies) <https://vimeo.com/459979698>`_


- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_

- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- Solve Lecture Exercise for Lecture 8


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

- Before lecture:

   - Read: Entity-Relationaship Diagrams (Chapter 4.1-4.5)
   - `Course Notes: ER Diagram <course_notes/er.html>`_   
   - Watch (Vimeo Links):

     - `Lecture 7:1: Converting ER Diagrams to Relational Data Model <https://vimeo.com/459754834>`_

     - `Lecture 7:2: ER Diagrams (Cardinalities Reexamined) <https://vimeo.com/459754951>`_

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_

- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

- No Lecture Exercise for Lecture 7


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

- Before lecture:

   - Read: Entity-Relationaship Diagrams (Chapter 4.1-4.3)
   - `Course Notes: ER Diagram <course_notes/er.html>`_   
   - Watch (Vimeo Links):

     - `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>`_

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_
       
- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

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


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

- Before lecture:

   - Read: Normalization (Chapter 3)
   - `Course Notes: Normalization <course_notes/normalization.html>`_   
   - Watch (Vimeo Links):
     
     - `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: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:4: Normalization (BCNF Decomposition) <https://vimeo.com/457547883>`_
     - `Lecture 5:Bonus: Normalization (BCNF Decomposition, Second example) <https://vimeo.com/457555832>`_

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_
  
- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

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



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

- Before lecture:

   - Read: Introduction to Relational Algebra and Normalization (Chapter 2 & 3)
   - `Course Notes: Normalization <course_notes/normalization.html>`_   
   - Watch (Vimeo Links):
     
     - `Lecture 4:1: Normal Forms <https://vimeo.com/455555941>`_
     - `Lecture 4:2: Minimal Basis <https://vimeo.com/455561999>`_

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_
  
- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

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


Week 2 - Tuesday (9/8)
------------------------

- Reading: Introduction to Relational Algebra and Normalization (Chapter 2)

  - Before lecture:

   - Read: Rest of Chapter 2 and Start reading Chapter 3
   - `Course Notes: Relational Algebra <course_notes/relational_algebra.html>`_    - `Course Notes: Normalization <course_notes/normalization.html>`_   
   - Watch (Vimeo Links):


     - `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.)

     - `Lecture 3.2: Normalization (Functional dependencies, inference, keys), infomercial style! <https://vimeo.com/455312447>`_  

   - Optional:

     - `Relational Algebra tl;dr (5 mins Summary) <https://vimeo.com/455312404>`_  

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_
   
- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

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

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

- Reading: Introduction to Relational Algebra (Chapter 2)

  - Before lecture:

   - Read: Rest of Chapter 2 
   - `Course Notes: Relational Algebra <course_notes/relational_algebra.html>`_   
   - Watch (Vimeo Links):

     - `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>`_  

   - If you want, try out the following queries that we will solve in class
     tomorrow: `Sample queries. <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/example_queries.txt>`_  from the `class example database <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/example_data_model.txt>`_

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_
     
- Join lecture at 3:20PM on Webex Teams! (Recording on Mediasite after lecture)

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

- Make sure your time zone is marked on Submitty!

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

- Introduction to Databases and Relational Data Model 

- Before lecture:

   - Read: Chapter 1, 2.1-2.2
   - `Course Notes: Introduction <course_notes/intro.html>`_   
   - Watch (Vimeo Links):

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

- Hand written notes from videos can be found `here <https://www.cs.rpi.edu/~sibel/dbs_notes/fall2020_lecture_notes/>`_
      
- Attend lecture at 3PM (meet on Webex Teams) (Recording on Mediasite after lecture)

  - Update your personal info, especially Time Zone on Submitty!
    
  - Complete Lecture 1 Exercise 1 on Submitty (test exercise, not
    counted towards a grade!)
