Skip to the content.

Detailed schedule

Class 26

Informal mini-lecture: SQL injection attacks

Remainder of time to work on final projects

Class 25

  1. Course evaluations.
  2. free time to consult on final projects: https://zoom.us/my/johnmaccormick

Class 24

Topics for today:

  1. Quickly cover write ahead logging, two-phase commit, and two-phase locking
  2. Further understand concurrency problems, continuing from the previous class meeting

Class 23

midterm exam 2

Class 22

exam review

Class 21

Discussion of Sweeney (1997). Possible relevant links:

Class 20

Main topic for today: database concurrency and locking

There is a fun minilab that goes with this topic, but we do not have time to work on it in class. The instructor will demonstrate most of the programs, but you are encouraged to try them on your own also. Try the version that does not have accompanying explanations first, then look at the version that includes explanations:

Classes 18 and 19

Research paper presentations

Class 17

Classic paper discussion of Brin \& Page (1998)

Class 16

Announcement: preliminary RP2 presentation schedule is available – contact instructor with any questions or concerns.

Main topic for today: query optimization and join algorithms

Class 15

Main topic for today: B-trees.

Class 14

  1. Please take the midsemester survey.
  2. Exam discussion
  3. Overview of how to read a research paper:
    1. Read abstract, introduction, and conclusion.
    2. Examine figures and captions of figures. Try to understand the main ideas and results presented.
    3. Read the main body of the paper, skipping any technical material that is too difficult to understand.
  4. Meetings with student teams for RP assignents as needed

Class 13

Main topic for today: JDBC. See the Using JDBC web page (also available from a direct link on the main course webpage).

In-class activities:

  1. Quick overview of relevant slides from textbook materials: slides 30-40 from Chapter 15 powerpoint. Example file DbDemo.java could be useful here.
  2. Interactive minilab: implement a Java program that can access the wine database. Follow the instructions on the Using JDBC web page.
  3. Remainder of time is available to work on assignments RP1 and/or CC4.

Class 12

Exam 1

Class 11

Exam review notes: normalization-example.pdf

Class 10

Main topic for today: defining indexes and views.

Demos:

Most of the class session will be devoted to a lab on these topics: views-and-indexes-lab.docx.

Class 9

Main topic for today: SQL statements exists, union, intersect, except, insert into, delete from, update

Notes:

  1. insert, delete, and update are good examples of transactions. By default, in Postgres, any single statement will be treated as a transaction.
  2. This is a good time to start using a good editor that can autoformat your SQL. It will make your SQL much easier to read. VSCode has good SQL extensions. In DBeaver, use Format SQL (Ctrl+Shift+F).
  3. It’s also a good time to start commenting your SQL code. Lines beginning with two dashes (--) are treated as comments.

The class will consist of some demos of the above SQL statements followed by free lab time for working on homework assignments and asking questions. Example code: sql-examples.sql

Class 8

Main topic for today: database joins

Class 7

Most of this class will be devoted to an ungraded but required lab activity to learn about creating and altering database tables within DBeaver:

If you don’t have access to DBEaver, you can use Supabase—but many of the instructions will not apply directly, and you’ll need to figure out some of the techniques on your own.

Most of the class will be asynchronous as individuals work on the lab. Please post questions, suggestions, and advice on our Teams channel. There is also a Teams meeting on that channel. You can join the meeting any time to get real-time help from the instructor.

Class 6

Warmup exercise for functional dependencies and normalization:

Take the ungraded quiz on functional dependencies and normalization.

Main topic for today: converting ER model to relational model.

In the remaining time we will explore Zip code example, a classic example that cannot be put into BCNF.

Class 5

In the first few minutes of class, we will try to memorize the definitions on relations and keys covered last time. Then we will do the following ungraded quiz:

Main topic for today: database normalization

Class 4

Main topic for today: relations and keys.

Class 3

Preliminary discussion of the mathematical motion of a relation. Whiteboard notes provided: relation-overview.svg

Main topic for today: the EER model (enhanced ER model).

Class 2

Key concepts from chapters 1 and 2:

Main topic for today: the ER model.

SQL topics: select, from, distinct, as, where, and, between, in, like, is null. See 7.3.1.1.

Try to get DBeaver/Postgres working on your own machine. Supabase is a good alternative if you can’t get it working.

Class 1


Last modified: Mon Jun 02 19:33:17 UTC 2025 by jmac.