Project #1
CS 317 Data Management and Information Processing
Spring 2005
Instructor Yan Chen
TAs Yi Qiao and Earl Wagner
1.
Introduction
Throughout
the course (so far) we elaborated on several techniques which are used during
the design stage of a database system.
The first step was the (E)ER methodology as a formal tool to
represent a model of the relevant entities for the enterprise whose information
system one needs to develop, along with the relationships among them.
Subsequently, we defined the Relational Model and described the “rules
of translation” that one can use to transform a representation in an (E)ER
into an equivalent representation in a Relational Model[1].
So far, we have always assumed that the Requirements
Specification (AKA “fact collection”; “discovery”) is implicit’ given to
us, completed by some “oracle” and we used intuitive examples of some
specifications of an enterprise in order to introduce and develop the modeling
techniques. In some way, we will adopt the same behavior in this project.
Goal.
In this project, you will be given a complete description of the requirements specification of a given enterprise. From the specifications, you will have to demonstrate an ability to use the methodologies that we have tackled in the course so far. More formally, based on specifications below, in this project you will have to:
1.
Develop an ER diagram representing the
entities involved and the relationships among them.
2.
Translate the ER model into an equivalent
representation using the Relational Model.
3. Represent
the tables and their attributes (i.e., the schemas) in Microsoft Access.
The commercial tool of choice for this project is
Microsoft Access for a two-fold reason:
·
It is widely available;
· It has a (somewhat) familiar graphical interface and yet it can give you a “close enough” idea of what to do, should you use another commercial DBMS in the future.
2.
Requirements Specification
For this project, we will describe the data
requirements for a small University Accommodation Office.
Students.
The data needed for each
full-time student includes id#, name (first and last), home address (street,
city, zip-code), date of birth, sex, category (e.g., sophomore, junior, …,
graduate), nationality, special needs, current status (placed/waiting) and which
courses is the student registered for. Optionally, one may also add
additional comments for a particular student.
The student information
pertains to those currently renting a room and those who are on the waiting
list. A particular student may rent a room either in the hall of residence or
student flat.
When a student joins the University,
he is assigned a member of staff who acts as his Advisor. The Advisor is
responsible for monitoring the student welfare and academic progress throughout
his time at the University. The data kept for a student’s Advisor includes full
name, position, name of the department, phone number and office location/number.
We assume that there are no two advisors in the same department will have the
same name.
Halls of Residence.
Each hall of residence has a
name, address, telephone number and a manager who supervises the
operation of the hall. The halls provide only single rooms which have room
number, place number and monthly rent rate.
The place number
uniquely identifies each room in all halls controlled by the Accommodation
Office and is used when renting a room to a student.
Student Flats.
The Accommodation Office
also offers student flats. These flats are fully furnished and provide
single-room accommodation for groups of two, three or four students. The
information held on student flats includes a flat number, address and
the number of rooms available in each flat. The flat number uniquely
identifies each flat.
Leases.
A student may rent a room in
a hall or student flat for various periods of time. New lease agreements are negotiated
at the start of each academic year with a minimum rental period of one quarter
and a maximum rental period of one year (including the Summer quarter). Each
individual lease agreement between a student and the Accommodation Office is
uniquely identified using a lease number.
The information pertaining
to each lease includes the lease number, duration of the lease (in number of
quarters), name and the id# of the student, place number or flat number,
address details (of the hall or the flat) and the date the student
wishes to enter the room, along with the date the student wishes
to leave the room.
Invoices.
At the start of each
quarter, each student is sent an invoice for the respective rental period. Each
invoice has a unique invoice number. The rest of the data include the lease
number, quarter, payment due, student’s full name, student’s id#, place number
or flat number, and the address (hall/flat). Additional data is kept as a Payment,
which reflects the invoice number, date of payment, method of payment
(cheque, cash, credit card (indicate type…)) plus, if needed, the dates the
first and second reminders were sent.
Students Flat Inspections.
Each flat is inspected by
staff on a regular basis to ensure that the accommodation is well maintained.
The information recorded for each inspection includes name of the staff
member who carried out the inspection, the date the inspection was made,
an indication of whether the property was found to be in a satisfactory
condition (yes/no), plus additional comments, if needed.
Accommodation Staff.
Some information needs to be held for the staff members too, and
it includes name (first and last), home address (street, city, zipcode),
date of birth, sex, position, (e.g, Hall Manager, Administrative Assistant,
Cleaner) and Location (e.g., Accommodation Office or Hall). Here we assume that there are no two staff
members having the same name.
Courses.
The Accomodation Office also stores a limited amount of information on the course run by the University course number, course title, year, instructor, room number, and department name. Each student is associated with the courses he is registered for. Here we assume that the course number and the department name can uniquely identify a course.
Contacts.
For each student, the office keeps a record of a contact person, which includes SSN, name (first and last), relationship with the student, address (street, city, zipcode) and the contact phone number.
3.
What to Turn In
Once you have completed this project, you are supposed to provide the following:
1. A hard-copy (printout) of the ER diagram. You may use
a tool of your choice to draw it.
1.1 A printout which describes the restrictions on the domains/types
of the attributes used
2.
A
“quazi-relational” model of the database schema which you obtained using the
Microsoft Access, in which the relationships from the ER diagram are retained
and represented as links among the attributes of the tables in the Microsoft
Access schema description.
3.
A
hard-copy of the description of how you obtained each schema in the
“pure” Relational Model (i.e., which rule did you apply to translate a
particular item from the ER diagram into the corresponding schema of the Relational
Model) where everything is represented as table…
4. The pure relational model (tables only) which, again, you have generated using Microsoft Access. Note that now you should not have links between attributes in different schemas.
NOTE: For the items #2 and #4 above, you
are to email Jin with the
following format for the subject title:
The names of the corresponding .mdb files, describing each database
schema should be:
your_id_11.mdb and,
your_id_12.mdb,
respectively.
Likewise in hw1, you are allowed to turn in hand-drawn models so long as they
are NEAT and LEGIBLE!
Items #1 and #3 above should be turned
in during class.
Project Due Date: the beginning of the class of Thursday, May 5th,
2005.
Extra Credit.
If any of you would like to earn up to 15% extra credit, then you are more than welcome to identify the functional dependencies and generate an improved design of the relational model (database schema) which is at least in the BCNF. Keep in mind that because this is extra credit, it is not fair to ask for help from the TAs or the Professor.
[1] Thus far we have only completed the correctness of the translation and we are currently analyzing the techniques used to improve the quality of the design of the Relational Model, i.e., the normalization.