You are needed to develop an advanced system for a Sports Centre, you are concerned only with representing data discussed below about bookings and members. (The complete system might consists other data and other aspects of the organisation, if you think other aspects are suitable to your design of this part include that information in the discussion section.)
There are a range of activities available like treadmills, rowing machines, weights, static cycles and games rooms like squash courts, badminton courts, table tennis rooms.
We require to keep names, addresses and contact numbers and each member has a unique id allocated to them. We also require to record how long they have been a member ( extra benefits or discounts might be made available on the basis of length of membership). There are two types of members:
• Basic: who have access to 3 activities which they have signed up for. Basic membership only permits you to use the facilities at off peak times.
• Full: who could use any facility at any time. These members might have specified particular activities that they are interested in and which they might be offered special promotions in.
Facilities could be booked for hour slots from when the centre opens 8:00 AM till when it closes at 9:00 PM. Suppose that we are only concerned with bookings for the next week i.e. Monday to Saturday, shut on Sunday. Peak periods are currently 12:00 to 2:00 and 5:00 to 7:00.
The system must be able to produce reports such as:
• a listing of all empty badminton courts on Friday.
• when a basic member can book weights.
answer queries such as:
• Who are the full members with an interest in table tennis?
• Who has been a member longer than 3 years and will be in on Friday?
• Who has booked a particular squash court at 4:00 on Saturday?
and perform functions like:
• transfer a member from basic to full status.
For this coursework you may ignore non-essential attributes and other tables/structures that would be present for other uses of the database.
The project will cover:
• the analysis
• design and implementation in an Object/Relational system
• and issues for implementation in a different type of advanced system. e.g. Object or XML.
The implementation must include suitable use of the advanced features of PostgreSQL (a normal relational solution is not acceptable).
• A diagrammatic representation of the entities in the system and their relationships (E/R diagram or UML class diagram).
• Details of tables/structures etc. which you implemented including appropriate types, details of your test data (you must supplement any data given with additional material), and screen shots to demonstrate how your system answered the requirements. (This could be from psql (or other simple terminal monitor type interface) you are not needed to build any particular interface to the system.)
• Alternative definitions of entities for the Object or XML based solution and a discussion of the advantages and disadvantages of these and the solution you implemented. One topic to be addressed is whether your solution works if the last query had been "Who is playing on a particuar squash court at 4:00 on Saturday?".
• Any assumptions you have made.