# Database: Projects

## Deliverables

1. A cover page that gives the name of your project, and includes your name and date, and identifies this as a project for CMIS 410.
2. An English description of the problem this database is designed to solve. I have to be able to understand the database, so include whatever's necessary here to make it clear. This could be as small as a paragraph, but no larger than a page.
3. A relational diagram (Access: Tools > Relationships).
4. About half a dozen SQL queries that show how the database can be used to get results relevant to the problem. The purpose of these queries is to show that you understand how to use SQL.
   - Do not simply copy Access wizard's generated SQL commands.
   - Do not create one command, then make a lot of minor variations on it.
   - Show a range of commands, including some summaries.
   - Try to choose some queries that would really be used for your DB.
5. A list of the tables and a brief English description of what's in each one. A single phrase or sentence will be sufficient for most tables. Some may require a longer description.
6. The Access database, including sample data.

## Grading Criteria

- Tables
  - Are the tables reasonably chosen?
  - Are the table names reasonable?
- Fields
  - Are the fields in the right tables?
  - Is redundancy kept to a reasonable minimum (eg, 3rd Normal Form)?
  - Are primary keys the first field of a table? Do they have a suffix like "id", "num", "key", "code" that suggests they are a key?
  - Are the field names reasonable? Do most/all have a table prefix?
  - Are the attribute domains a reasonable type and size. Eg, phone numbers should be text, not numbers. Gender information should not be a default text field of 50 characters. Numeric fields (eg, price) should not be text fields so that computations and comparisons will work correctly.
- Relationships
  - Are all relationships properly made?
  - Are all primary and foreign keys indicated?
  - Do foreign keys have the same name as the corresponding primary keys where possible?
  - Are referential integrity and cascading rules properly enforced?
- Queries
  - Is there a reasonable English description?
  - Are the SELECTs correct?
  - Do the SELECTs show a reasonable coverage of SQL?

## Presentations

- Time: About 15 minutes, including questions.
- Audience: Aim your presentation at the other students. Tell them what you are doing and and aspects of your database design and implementation that might be interesting, eg, problems you had or solutions you found.
- Handouts: Hand out the brief project description, a relational schema and some sample SQL queries to each member of the audience. (1 or 2 pages).
- Future directions. Tell what you are planning to do or would do to improve the database (reports, forms, additional tables, ...).
- Leave time for a few minutes of questions.