Skip to the content.

Detailed schedule

Final presentations

Random order of final presentations:

  1. Son
  2. Alyssa
  3. Katie
  4. Evan
  5. William
  6. Billy+Leo
  7. Pamela
  8. Han
  9. Sophia
  10. Khanh
  11. John+Leah
  12. Amir
  13. Zeki

Class 28

  1. Review of course learning objectives
  2. Complete course evaluations if you haven’t already done so.
  3. free time to consult on final projects

Class 27

  1. Informal discussion of NoSQL databases (Ch 11 of PDBM), based on abbreviated version of the textbook authors’ Chapter 11 slides: pdbm-ch11-abbrev.pptx
  2. free time to consult on final projects

Class 26

Meet at the HUB Social Hall for the Civic Engagement poster session, 1:30pm. Browse posters (especially computer science senior seminar projects) until 2 PM, then return to Tome for regular class (database security demo).

Database security demo (demonstrates a security flaw known as SQL injection):

Class 25

  1. Course evaluations.
  2. exam discussion
  3. free time to consult on final projects

Class 24

Midterm exam 2.

Class 23

  1. PHP demo (optional info for final project)
  2. exam review: exam review whiteboard

Class 22

Discussion of Sweeney (1997). Possible relevant link:

Class 21

Topics for today:

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

Notes are now also available from the online COMP378 OneNote notebook.

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

Main topic for today: query optimization and join algorithms

Class 15

Results of the midsemester feedback are available.

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 Database APIs.ppt
  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

The take-home exam begins at the start of class today. Please contact the instructor via email or Teams with any questions.

Class 11

Exam review notes: exam-review.pptx

Class 10

Main topic for today: defining indexes and views.

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

The lab requires use of the Southwind database.

Class 9

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


  1. intersect and except are not available in MySQL. You should be aware of these but we will not use them.
  2. insert, delete, and update are good examples of transactions. By default, in MySQL, any single statement will be treated as a transaction.
  3. This is a good time to start using the Format button in phpMyAdmin. It will make your SQL much easier to read.
  4. 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.

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 phpMyAdmin:

If you don’t have access to XAMPP, a great way to practice with phpMyAdmin is to use the online demo server at Note that this is a public server so your work can be viewed, altered, or deleted by others.

Class 6

Warmup exercise for functional dependencies and normalization:

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

Class 5

Please take the quiz on relations and keys. (Does not affect your grade, but demonstrates your understanding.)

Announcement: important departmental event on Thursday evening – fireside chat with Reshma Saujani, founder and CEO of Girls Who Code. 7pm in Stern Great Room, or via Zoom. To celebrate the importance and relevance of this event to our discipline, I am offering some extra credit for attending: if you attend the fireside chat, you can top up any Core Content homework assignment of your choice to 100% (provided you made a reasonable attempt at the assignment).

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

Class 1

Last modified: Tue May 10 17:43:54 UTC 2022 by jmac.