Description:
A nonprofit organization depends on a number of different types of persons for its successful operation.
The organization is interested in the following attributes for all of these persons: SSN, name, address, city, state, zip, and telephone.
Three types of persons are of greatest interest: employees, volunteers, and donors.
Employees have only a date hired attribute, and volunteers have only a skill attribute.
Donors have only a relationship (named donates) with an item entity type.
A donor must have donated one or more items, and an item may have no donors, or one or more donors.
There are persons other than employees, volunteers, and donors who are of interest to the organization so that a person need not belong to any of these three groups.
On the other hand, at a given time a person may belong to two or more of these groups (e.g., employee and donor).
Requirements
Design your own database project for the specified system above.
Your project should include the following:
- An EER diagram for the above problem using this text’s EER notation, the Visio notation, or the subtypes inside supertypes notation.
- Full SQL Data Definition Language (DDL) statements that include all primary keys, unique keys, foreign keys, and check constraints.
- Tables with many rows (main transaction tables with at least 100 records). You can use import data utilities (like Excel, etc.), or write a transcript insert statements to create random data. (I personally wrote a Python script to generate the data.)
- Five complex queries to retrieve main reports relevant to your system ("complex queries" means it should include at least one of or more of the following: aggregate function, inline queries, correlated inner query, different types of joins, set operations, etc.).
- Analysis of the performance of the queries, applying different techniques to enhance queries like: indexing, de-normalization.
Measure the performance before and after applying different techniques and discuss the drawbacks of each technique and the obtained enhancement.
Rubric:
Submission
Submit the following to CougarVIEW:
- Report that includes full details about Enhanced Entity Relationship (EER), all SQL statements (DDL, DML, and SELECT)
- Slides to accompany your project demo
What happens if you can’t complete the project?
If you are unable to complete this project for any reason, please describe in your summary report that remains to be finished. It is important to present an honest assessment of any incomplete components.