Homework 7:  Accessing a database with Java or Python

Database Systems
Spring, 2020
Due:  April 13 (11:59 pm EDT)

Deadline extended to April 15 (11:59 pm EDT)

The objective of this assignment is to write several application programs to access the database you built for homework 6.  You may use Java (with JDBC) or Python.  I've put some references and code samples on the course home page.

Try to write programs that demonstrate how you envision your database being used.  You should include queries, insertions, and modifications among your options. You can use my sample programs as a guide to get started.

A minimum of 5 programs is required.   You don't need to provide access to everything in your database, but there should be at least three types of query, one insertion, and one modification.  A few specific requirements:

1. Some of the programs should be interactive; that is, accepting user input.
2. At least one of the programs should perform multiple operations, performed as a single transaction.
3. At least one of the queries should display data in a form different from the simple 2-d table that is used by the mysql client program.  (For example, the hierarchical structure displayed by my ClassLists program.)
4. At least two of the queries should access data from more than one table.
5. At least one query should use aggregation or grouping.

You may also satisfy the requirements of the assignment by writing a menu-based or GUI-based program which gives the user the option of five different database operations, as described above.

For the insertions and modifications, provide some sort of acknowledgement so the user can see that the operation has been completed.  For example, if a tuple is modified, you could display the new version of the tuple.

Handle errors that occur as a result of data entry.  Include some options that could lead to a violation of your primary or foreign key constraints.  The application should display an appropriate message if an error occurs.

Don't ask your user to enter SQL code.

Submit your program(s) using handin.  This is assignment 7.