CS121 Fall 2017 - Lecture Slides and Videos

Slides are made available as PDF files. All lectures are recorded in .mp4 format. Each recording is around 25MB in size.

The previous year's lecture slides and recordings are available here.


Lecture 1: 2017-09-25 [slides] [recording]
Databases and DBMSes. Data models. Relational Model. Relations, relation schemas, tuples. Superkeys, candidate keys, primary keys, foreign keys.
Lecture 2: 2017-09-27 [slides] [recording]
Query languages, Data Manipulation Languages (DML). Relational algebra. Fundamental operators, additional operators.
Lecture 3: 2017-09-29 [slides] [recording]
Extended relational algebra operators: generalized projection, grouping and aggregation, outer joins. Null values. Handling null values in relational algebra. Database modification. Inserting, updating, deleting records.

Lecture 4: 2017-10-02 [slides] [recording]
Basic SQL DDL: tables, basic column types, primary keys. Basic SQL statements: insert, select, delete. Select statements: simple expressions in SELECT, FROM, WHERE.
Lecture 5: 2017-10-04 [slides]
SELECT: ordered results, aggregation, grouping. Subqueries in WHERE clause. Set operations. Subqueries in FROM clause. Derived relations. INSERT...SELECT. DELETE and WHERE clauses. Simple UPDATE statements.
Lecture 6: 2017-10-06 [slides]
Subqueries in FROM clause. Derived relations. INSERT...SELECT. DELETE and WHERE clauses. Simple UPDATE statements. NULL values. Predicates involving NULL and UNKNOWN. Alternate join syntax. Inner/cross/outer join. Theta join. Natural join. Outer joins and aggregates. Creating/using views. Updatable views and WITH CHECK OPTION.

Lecture 7: 2017-10-09 [slides]
Catalogs, schemas, tables. DB connection state. Primary key constraints. Unique constraints. Not-null constraints. CHECK constraints. Foreign key constraints and cascade operations.
Lecture 8: 2017-10-11 [slides]
Deferred constraint enforcement. Date and time SQL types: DATE, TIME, DATETIME, TIMESTAMP, INTERVAL. Large object "LOB" types: BLOB, CLOB, TEXT. Default values for columns. Schema alteration with ALTER TABLE. Global and local temporary tables.
Lecture 9: 2017-10-13 [slides]
Procedural SQL. User-defined functions. Stored procedures. Cursors. Conditions and condition handlers.

Lecture 10: 2017-10-16 [slides] [recording]
Triggers, materialized views, INSERT variants, SQL security.
Lecture 11: 2017-10-18 [slides] [recording]
Indexes, MySQL EXPLAIN command.
Lecture 12: 2017-10-20 [slides] [recording]
SQL query evaluation and plan optimization. Plan node implemenations: file scan, index scan, external-memory sorting, nested loop join, sort-merge join, hash join. Table statistics and database ANALYZE commands.

Lecture 13: 2017-10-23 [slides] [recording]
Midterm review.
Lecture 14: 2017-10-25 [slides] [recording]
Entity-relationship model.
Lecture 15: 2017-10-27 [slides] [recording]
Entity-relationship model II.

Lecture 16: 2017-10-30 [slides] [recording]
Ternary relationships and mapping cardinalities. Mapping E-R models to the relational model.
Lecture 17: 2017-11-01 [slides] [recording]
Generalization/specialization in the E-R model. Alternate schema mappings.
Lecture 18: 2017-11-03 [slides] [recording]
Normal forms. First Normal Form (1NF). Functional dependencies. Trivial functional dependencies. Closure of a set of functional dependencies. Boyce-Codd Normal Form (BCNF).

Lecture 19: 2017-11-06 [slides] [recording]
Functional Dependency Theory I
Lecture 20: 2017-11-08 [slides] [recording]
Functional and Multivalued Dependency Theory.
Lecture 21: 2017-11-10 [slides] [recording]
Objects and databases.

Lecture 22: 2017-11-13 [slides] [recording]
Alternate diagramming methods. Data warehouses.
Lecture 23: 2017-11-15 [slides] [recording]
Data Warehousing II.
Lecture 24: 2017-11-17 [slides] [recording]
Passwords. Trees and hierarchies.

Lecture 25: 2017-11-20 [slides] [recording]
Database transactions.
Lecture 26: 2017-11-22 [slides] [recording]
Data stream management systems.