Fall 2026 — Schedule

Tentative class schedule (may be updated without prior notice)
All times on this page are in U.S. Eastern Time
Meet Date Topics and Handouts Readings Assignments / Project Activities / POTDs
Course overview and intro to database systems
1 Wed 08/26 Get Familiar with Our Course
Let's Set Expectation

A bit about this course and how we shall work together

    Activity: Get to know you

(no submission)

Activity: Check-in

(no submission)


DIY: complete the Let's start form

(please complete it by 4-Sep-2026, 11:59pm)

2 Fri 08/28 Intro to Database Systems

What is a database? What is DBMS? Do we need both? Who cares? So what?

Ch.1   Activity: What is a database?

(no submission)

Activity: Brainstorm — carpool

(no submission)

3 Mon 08/31

Intro to Database Systems (wrap-up)

DB Architecture and Data Model

How do we describe information?

Ch.2   Activity: Brainstorm — carpool

(no submission)

data model worksheet

(no submission)

Database planning and designing
4 Wed 09/02

DB Architecture and Data Model (wrap-up)

Entity-Relationship (E-R) diagram
  • Entity sets, attributes, relationships
  • Cardinality, participation

How do we represent things in the world in a database?

Ch.6 Report your project team members data model worksheet

(no submission, wrap-up)
(see slides for sample solution)

E-R worksheet

(no submission)
[sample solution]

5 Fri 09/04

Entity-Relationship (E-R) diagram (continue)

E-R
  • Roles in relationships
  • Binary vs. Multi-way relationships

How do we represent real-world semantics and constraints in a database design?

Ch.6

[6-Sep] Assignment 1 posted

More practice: Thing to Entity

(no submission)

worksheet (relationships)

(no submission)
[sample solution]

6 Mon 09/07
Add deadline 09/08
E-R: Weak entity

How do we deal with real-world objects that depend on another object?

E-R: Subclassing

What about real-world objects that share some commonality? How do we represent generalization and specialization in a database design?

Ch.6   worksheet (weak entity)

(no submission)
[sample solution]

worksheet (subclassing)

(no submission)
[sample solution]

7 Wed 09/09 E-R diagrams to relational designs

Now that we have a database design, how do we transform the design into database schemas?

Ch.6   worksheet (E-R to schema)

(no submission)

More practice: ER and schema (Santa)

(no submission)
[sample solution]

More practice: ER and Schema (Prescriptions)

(no submission)
[sample solution]

Fine tuning and normalization
8 Fri 09/11 Functional dependencies

Get started with the first step in fine-tuning a database structure. How do we recognize data interrelationships? How do we make use of them to fine-tune our database?

Ch.7 Project proposal due 09/11, 11:59pm

(No late submission, no extension)

FD worksheet

(no submission)

9 Mon 09/14 Normalization overview

Fine-tuning part 2: figure out the fundamentals of what makes good database schemas and how to organize the data (i.e., refine the schemas) to promote ease of use and efficiency

Example: Summarize the normal forms by FDs

How do we identify what needs refinement? How do we refine the schemas? How do we verify whether the schemas are in the form we want? (Please read on your own. Bring questions/concerns to class so we can discuss.)

Ch.7    
10 Wed 09/16 3NF and BCNF

How do we refine the schemas? How do we verify whether the schemas are in the form we want?

Ch.7 Assignment 1: E-R & schema (due 09/16, before class) POTD 1: Normalization
(due 09/17, 10am)
11 Fri 09/18 more 3NF and BCNF

Let's experience & practice more schema refinement and verification

Ch.7    
Query language for relational databases

Please try to set up the environment before next class. The class discussion will be more effective and enjoyable if your environment is readily available.

DIY: Set up DB environment

Note on GCP: **DO NOT** enter your credit card. We do not have funding to cover the charge for you. We cannot help you pay.

Additional resources:

Many of these resources are free and include detailed steps to complete practice projects of varying complexity. You can use the GCP credits (refer to an announcement on how to redeem and obtain additional GCP coupons) toward these labs.

12 Mon 09/21 Transition from ER → schema → fine tuning → SQL

SQL: Basics

Now that we have data and schemas, how do we access them? What happens when we execute the SQL query?

Ch.3
W3 school SQL lab
   
13 Wed 09/23 More basic SQL practice

More SQL queries in action — "What" data do we want?

Ch.3 Assignment 2: Normal forms (due 09/23, before class) POTD 2: SQL basics
(due 09/24, 10am)
14 Fri 09/25 SQL: Aggregates

How do we effectively summarize the results? What is the order of actions? How do we handle "for-each" semantics? Applying the conditions on groups vs. individuals.

SQL: Joins

What if we need data from multiple tables? How do we describe a relationship between tables? How do we realize combinations of data?

Ch.3.7, Ch.4.1, Ch.5.5    
15 Mon 09/28 Exam 1 — Intro, DB design (ER and normalization)
[Exam 1 guide]
16 Wed 09/30 SQL: Subqueries

Use SQL queries to assist other queries in solving more complicated problems

Ch.3.8    
17 Fri 10/02 Subqueries in WHERE and quantifiers

How do we answer "there (not) exists," "for all," "is (not) in," and "only" questions?

Ch.3.8    
  10/03−10/06 Fall reading days, no class (refer to UVA Academic Calendar)
18 Wed 10/07 More practice: Putting it all together

Let's solve more complicated problems, using basics, aggregates, joins, and subqueries

Ch.3.8   POTD 3: Putting it all together
(due 10/08, 10am)
19 Fri 10/09 Advanced SQL: Constraints and Triggers

How much of our business logic should reside at the presentation layer, logic layer, or data layer? How do we implement business logic at the data layer?

Assertion

(The syntax shown in this set of slides is from the standard SQL. Most DBMS do not support assertions. Assertion is included here for completeness, but it will not be tested)

Ch.4.4, Ch.5.1-5.3 Project milestone 1: DB design due 10/09, 11:59pm

(No late submission, no extension)

 
20 Mon 10/12
Drop deadline 10/13
Stored procedures

Pre-define operations to handle business logic at the data layer

Ch.4.4, Ch.5.1-5.3
MariaDB stored procedures
   
Database programming

Please try to set up the environment before next class. The class discussion will be more effective and enjoyable if your environment is readily available.

DIY: Set up development environment

You may use any web server of your choices. The following resources are provided for your convenience.

Note: You are not required to use PDO. You may use PDO, MySQLi, or MySQL (the syntax and implementation will be slightly different). MySQLi is a replacement for the MySQL functions, with object-oriented and procedural versions. PDO (PHP Data Objects) is a database abstraction layer providing flexibility for many database engines – and thus PDO is recommended over MySQLi (and CS 4750 uses PDO).

Note on GCP: **DO NOT** enter your credit card. We do not have funding to cover the charge for you. We cannot help you pay.

21 Wed 10/14 DB Interfacing

Putting it all together — Let's develop a small web app that interacts with a database to provide services

Recommended reading: Ch.9 Assignment 3: SQL
(due 10/14, before class)

Start working on POTD 4. Save your code. (no submission)

22 Fri 10/16 DB Interfacing

More database programming in action

Recommended reading: Ch.9  

Continue working on POTD 4. Save your code. (no submission)

23 Mon 10/19
Withdraw deadline 10/20
DB Interfacing

More database programming in action

Recommended reading: Ch.9  

Continue working on POTD 4. Save your code. (no submission)

24 Wed 10/21

Wrap up database interfacing

Get started with DB security at the application level

Recommended reading: Ch.9   POTD 4: DB programming
(due 10/22, 10am)
Database security, social / ethical / legal issues
25 Fri 10/23 DB security

(Some ways to) Protect our databases and apps that use them. How do we minimize the chance of being attacked? How do we enforce "who can do what on which parts of the database"?

Ch.4.7, Ch.9.8-9.9 Project milestone 2: DB setup and SQL due 10/23, 11:59pm

(No late submission, no extension)

The following resources are for references. They may be useful for your project. They will not be tested.

Examples:

Query execution and estimating the cost of operations
26 Mon 10/26 Relational Algebra (RA)

SQL describes "what data to get" but computers only understand the "how" — Let's look at "how to get the data" we want

Ch.2.6    
27 Wed 10/28 Exam 2 — SQL, Advanced SQL, DB interfacing, DB security
[Exam 2 guide]
28 Fri 10/30 Relational Algebra (RA)

More "how to retrieve the data"

Converting SQL ↔ RA

Let's solve more problems: English to SQL to RA. How about RA (to design a query) to SQL (to be executed against a database)?

Ch.2.6    
29 Mon 11/02 Query Cost Estimation

We wrote a SQL query, which tells the computer what we want. How does DBMS find a good way to actually do it? Also, there may be multiple queries to solve the same problem. Which one should we use? Let's explore some ideas to help us pick

Ch.2.6    
30 Wed 11/04 Query Cost Estimation

More practice to help us analyze and estimate the cost of the query

Recommended reading: Ch.15-16   POTD 5: RA & cost estimation
(due 11/05, 10am)
Index structures
31 Fri 11/06 Indexing

Mechanism to optimize the performance of a database by minimizing the number of disk accesses required when a query is processed

Ch.14    
32 Mon 11/09 Indexing

How does indexing work — to search or retrieve data, insert data, or delete data?

Ch.14    
33 Wed 11/11 Indexing

Let's solve more problems, analyze more scenarios, and wrap up with indexing

Ch.14 Assignment 4: RA and cost estimation (due 11/11, before class) POTD 6: indexing
(due 11/12, 10am)
34 Fri 11/13 Indexing

Think about indexing choices and consider how they impact the query cost. How to leverage indexing?

Ch.14    
Other aspects in data management
35 Mon 11/16 Transactions and Concurrency Control

How do we support multiple people using a database at the same time? What is "ACID" and how does it help ensure transaction safe?

Ch.17
Recommended reading: Ch.18-19
   
36 Wed 11/18 Distributed DB

What to do when our databases scale and have increased traffic? What is CAP and how does it help us determine how to handle a distributed database system when some servers refuse to communicate with each other due to some problems?

Recommended reading: Ch.20-24 (distributed DB)
Recommended reading: Ch.10 (NoSQL DB)
Assignment 5: Indexing (due 11/18, before class)  
37 Fri 11/20 NoSQL DB

Let's explore other types of data models. NoSQL vs. Relational databases. What to use and when to use it?

Ch.10    
38 Mon 11/23 Exam 3 — RA and cost estimation, indexing, transaction and concurrency, distributed DB, NoSQL DB
[Exam 3 guide]
  11/25−11/29 Thanksgiving recess, no class (refer to UVA Academic Calendar)
Course wrap-up
39 Mon 11/30 On demand office hours / work on project

No lecture/class discussion. Feel free to drop by for Q&A or to chat or discuss about anything. Enjoy the last week(s) of the semester.

     
40 Wed 12/02 On demand office hours / work on project

No lecture/class discussion. Feel free to drop by for Q&A or to chat or discuss about anything. Enjoy the last week(s) of the semester.

     
41 Fri 12/04 On demand office hours / work on project

No lecture/class discussion. Feel free to drop by for Q&A or to chat or discuss about anything. Enjoy the last week(s) of the semester.

     
42 Mon 12/07 Project demo / Showtime - Vote!!

Have fun and show your awesome project; see you in class :-)

Remember to sign up & demo your project to the course staff for grading

  Project final deliverable due 12/07, before class (10am)

(No late submission, no extension)

Project demo sign up


Copyright © 2026 Upsorn Praphamontripong
Released under the Creative Commons License CC-BY-NC-SA 4.0 license.
Last updated 2026-09-09 11:13
  Top