CMPT 355

Class Project

NOTE: This is a draft of the project requirements that is subject to change up until class time on Nov 2.

Due dates:

There are 3 parts to this project:

Part 1 (a preliminary report on your project) is due on Monday, November 21 at 11:00 a.m.

NOTE: This part is being required early in order for Prof. Carter to identify major problems with your planning before your final parts are due. He will try to have feedback to you by Wednesday, Nov. 23.

Each team must e-mail their complete report as a single doc or docx file directly to Prof. Carter before the due datetime.

Part 2 (the final report on your project) is due Monday, December 5 at 8:00 a.m.

Part 2 involves revising your reports for parts A-D (which counts as one component of this part) and producing new reports for parts E - H below. 

Part 3 (a Demonstration of your project), it is due Monday December 5 at 8:00 a.m.

Topic: merge your database with other similar databases to produce a new, evolved database


You will be assigned to a project team of between 3 and 5 members.

The Premise

Congratulations, your museums are so successful that they have merged together under the sponsorship a wealthy and enlightened patron. Outside the museum world, he buys small businesses that have the potential to merge together to become large businesses, does the right things to make the transition for them, and then sells off very successful companies. He is hoping to use his skills in helping the museums become more successful via this merger. Remember that he is a senior business person who is not a computer person. Your reports to him need to focus on the information (rather than the data) that your database will support and what can be done with it to server the needs of the museums and their visitors.

A major part of the transition is developing a good information system that meets the needs of the various types of museums being merged together. Because the patron is both enlightened and wealthy he doesn't want you to cut any corners in developing the information systems. Rather he wants you to follow the following (numbered) steps (reporting, presentation, and demonstration requirements are contained in lettered bullets):

start of part 1

  1. Your patron doesn't want to pick between systems (databases) that may work fine for one museum but poorly for others. He wants a new database that will do a good job in  meeting the needs of all your museums. (The existing systems can continue to be used until the new system is ready.) This means that you should analyze the differences between your various databases and suggest a new database structure that will meet all of the needs currently being met and be able to contain all of the data currently contained in a single, easily usable structure.
  1. Your patron wants to ensure that the new structure does a good job of containing temporal data (as was discussed in your CMPT 355 class). This might require you to evolve the database structure.
Again, you need to present your findings and suggestions in a well written report that your patron can understand.
NOTE: You should also be prepared to make a 10 minute presentation (as part of your end of term demonstration in Part 3 of your project) to the instructor that explains your new database structure and what led you to design it in the way you did. This will require a well drawn e-r diagram or set of diagrams that illustrate your complete database structure
Your instructor wants to ensure that you have a good design for the new database structure.
  1. You need to clearly explain the database schema that you have developed for your team database. 
  1. Each of the team members needs to be able to convert their data from its current structure into the new structure. Before actually converting the data, it is important to plan what needs to be done.
NOTE: Parts A -D do not involve any SQL coding. Rather they focus on doing an excellent job of analysis and design. They do require well written reports that are suitable for their intended recipients.

NOTE: While the marker might have given you good marks for Assignments 1 - 3, the marker had a very limited time to evaluate your assignments. The instructor will be taking much longer to evaluate this report and will be expecting you to have done a good job of implementing the requirements and expectations of this class and of the assignments. This will likely include finding issues that might have been overlooked in the marking of assignments.

end of part 1 - start of part 2

Before starting to implement your design, you might need to improve on it, based on comments from the instructor on Part 1.
  1. Once you have a good design in Part 1 of the project, you need to start working on implementing this design. Remember that the marks for Part 2 are for a well written report and that it should not include any Postgres / SQL code in it.
  1. Each individual has to create the appropriate Postgres series of instructions to copy (and modify) all data from the old schema into the new one within their own database based on your plan from Part D. It needs to satisfy all of the temporal needs of the new schema as identified in step (C). Use these instructions in the individual databases so that each database has all of its data in the new schema. 
  2. Individual databases need to be queried to get all of the newly formatted data out of them and into text files. You then need to use these text files to insert all your data to the team database. Design and perform this processing.
  1. Your patron wants your database to operate as smoothly as possible. This means you should minimize the complexity of updates, ensure the integrity of transactions, and provide a comprehensive set of reporting options. The reports in (F), (G), and (H) are intended for the instructor. However, it is important to ensure that they are easily readable by the instructor and that they focus on the important information that he needs to assess whether or not you have done a good job of analyzing what was needed and designing suitable routines to satisfy the needs. Again, they must not include any Postgres code.
Remember that you will need to be able to demonstrate any of the items in (F), (G), and (H) that the instructor asks you to demonstrate (using the data that he gives you) in Part 3 of the project. Be sure to find out in the tutorials how to set up your transactions and queries so that all you have to do is to call them (changing the appropriate attributes) using dbvisualizer when you are demonstrating your database.

    Marking Structure

    The following marking approach will be used for each part of the project::

    It is expected that most marks will range between 6 and 9 out of 10 for each part (where parts are worth 20 marks, the mark from this approach will be multiplied by 2) and that a few teams may receive marks outside these bounds.


    Teamwork is Essential

    While team work often is split up based on the skills and interests of the team members, learning can better be facilitated by rotating duties so that all team members learn each type of work.

    If everyone tries to do everything together, you will likely spend an excessive amount of time.

    If everyone does a part all on their own, the parts will likely not fit and the systems will likely be a disaster.

    Thus you need to do something in between these two extremes:

    If you get behind and miss any of these steps, your project will suffer.

    It's Your Responsibility

    Each of you is responsible for the successful completion of your project. In most cases team members will work well together and help each other to succeed. However, in some cases, problems may occur in a team. The most frequent is someone not pulling their weight and not doing their share of the work (whether by ignoring the team, doing a real quick and dirty job, or through an endless series of excuses). If problems occur for any reason, they should be reported to the instructor as soon as they arise to avoid unnecessary complications and penalties. Failure to report problems will be taken as your agreement that no problems exist. While some account will be made for individuals going above and beyond for the team, ignoring or hiding problems by doing someone else's work does not count as going above and beyond.

    Most teams work excellently. Some teams may even lead to life long friendships. However, we are prepared to deal with the various problems that might arise. Teams may fire members only after discussing the grounds for firing with the instructor. These grounds can include, but are not limited to: abusive or other inappropriate behavior by a member or failure of a member to do a fair share of the team's work. In most cases the instructor will attempt to consult the individual involved, before giving approval (however where the individual is not available in two or more successive classes, approval may be given in absentia).

    Team Project Mark Adjustments

    It is the intention that a single mark will be given for the class project and that all members of the team will receive this mark. The fairness of this marking scheme is contingent on all members participating at a reasonable level in completing the project. All team members are responsible for the successful operation of their team as well as for the successful completion of the project

    In the case of team breakdown or problems that may lead to breakdown, the instructor should be advised as soon as this occurs so that steps can be taken to ensure successful completion of the project.

    The instructor reserves the right to adjust individual marks in teams where all members do not participate together appropriately.

    There will be an opportunity upon completion of the project for each member to comment in writing on how much each of the team members contributed to the overall set of assignments. These comments will be taken into account by the instructor and may be the basis for discussions with the team to determine further the facts of the situation.