Project Phase 1
CS4.301 Data and Applications
Deadline: 24th October
1 The Task
Consider a mini-world of your choice and come up with the data requirements for the database design and func7onal
requirements for database opera7ons.
A mini-world is a set of users and how they will use the database you design—for example, a school examina;on
system used by students, teachers, and more.
Note: You cannot use any of the mini-worlds provided in the group assignments.
2 Database Requirements
Your mini-world should result in data requirements that have:
1. At least five en7ty types
2. At least one en7ty with two key aBributes
3. At least two weak-en7ty types
4. At least five rela7onship types (which should include cardinality ra7os and par7cipa7on constraints)
5. At least one (n > 3) degree rela7onship type.
6. At least one subclass
7. Few composite, mul7-valued, derived aBributes
2.1 Bonus
1. Rela7onship type with the same par7cipa7ng en7ty type in dis<nct roles
• Example: In a COMPANY database SUPERVISION rela7onships between EMPLOYEE (in the role of supervisor)
and EMPLOYEE (in the role of subordinate)
There will be a small weight for mini-worlds that are unique with a very specific purpose and specialized
applica<ons. For such mini-worlds above requirements can be relaxed.
3 Func7onal Requirements
In your mini-world, you will be required to have applica7ons that operate on the database. This program will query
and/or update the database. Example: Check for a student’s grades from last year. These opera7ons are func7onal
requirements.
The func7onal requirements to meet are:
1. Retrieval:
(a) At least one query func7on for each:
i. Selec<on Example: ”Retrieve complete data tuples of students belonging to UG2K19”
ii. Projec<on Query to enable the users to search the database by a par7cular aBribute. Example:
”Names of all courses with ≥ 50 students.” iii. Aggregate func7on (SUM, MAX, MIN, AVG). Example:
”Maximum score secured in the midterm exam”. iv. Search: Search (par7al text match) for entries in an
en7ty, matching for subparts of the entries. Example: ”APP” will match with ”APPLE”.
(b) Analysis: At least two analysis reports to be generated:
• Example: ”Number of students that scored above average in the midterm exam in all courses” Note: We
expect that these reports convey something about the rela7onship between en77es and are not simple
selec7on opera7ons from a single en7ty. To do so, you have to use the Join operator.
2. Modifica7on:
(a) At least one inser7on of data, check for viola7ons of integrity constraints.
(b) At least one update opera7on (c) At least one delete opera7on
4 Submission
One member per team must upload a PDF document (named as <teamnumber>.pdf - without the “<’ and “>”) with
the following details:
1. A paragraph or two describing the mini-world, purpose of the database, and users of the database. What will the
users do with the database?
2. Database requirements sec7on
3. Func7onal requirements sec7on
5 Points to Remember
As always, it’s good to get an early start on the assignment! Try keeping the following points in mind when you get to
work:
•
The requirements document is simply a descrip7on of what your database must store and what func7onality
you provide on top of it.
– Example: If your database requirements describe the rela7ons between students, their grades, courses,
and instructors, the func7onal requirements describe what opera7ons should be possible - such as
look for a report card.
•
Specify constraints that your data may have. If an aBribute has a specific, non-trivial domain, please specify the
domain. If there are cardinality constraints, par7cipa7on constraints. For instance, if an object of one en7ty can
be related to only one other object of another en7ty type, specify. Example: an employee can belong to only
one department.
•
You may not understand some of the concepts like join, aggregate, etc. as of now, do not worry about that. You
will know them well enough by the 7me you have to build the app.
•
You will build your ER models and your final program based on these sets of requirements. Hence, try to think
about this in detail and keep in mind that this cannot be changed dras<cally later.
—–
Best of luck!