CIS 8140
Database Managment Systems

* Home  * Description  * Overview  * Schedule *
* Projects  * Grades  * Discussions *


CIS 8140 Projects

Details on the various project deliverables (see the schedule for exact dates) will be posted here.

Project grade distribution

The project grade will be distributed with the following breakdown:

Milestone 0: Team Formation

An initial team formation will be done in class on Aug 28/30. Each team should have at least three members - you can form your own team - we are going to use a little bit of the class time to assign the students who have not included themselves in a team yet. Teams can have three or four members. If you feel that you need five people in the team, you are welcome to do so, but you will need to make sure that the team logistics are handled appropriately.

Team logistics and duties: The following are duties that each team will need to adhere to, at least initially:


Milestone 1: Project Proposal

due date: by the end of the week of Sept Jan 31/Feb 1. But please try to hand in earlier if you want feedback by the week after.

The proposal is the first among the documents that you will be handing in for the project. Each team should hand in exactly one document. If you are submitting via email, the submission should come from the instructor contact of your team. The proposal does not necessarily have to be a very detailed document, but at least the following information must be included:

  1. Who is the client? Include full contact information, including name(s) of primary client contacts, addresses, telephone numbers, and any other pertinent information. As I mentioned in earlier, you should try to have a real-world client in a real-world project, instead of making one up for yourself.
  2. What is the main purpose of the project? This should be between one and two paragraphs, and should describe briefly the main goals of the project and what goals it is supposed to fulfill.
  3. Is there an existing method and system? Is this database going to replace an existing system (which could be paper-based, file-based, or even just word-of-mouth based)? Does the client have some means of performing the task? What are the advantages and drawbacks of the current system/method that the client has?
  4. What kind of data will be stored? Here, describe the data that will be in the system. Be as detailed as possible, including names and descriptions of various types of data. Notice that you are not performing any relational design yet, so it is okay to list everything that will be stored, without any mormalization.
  5. What types of problems will this database solve? In this section, describe the types of searches, reports, outputs, queries that the client expects from the system. You do not need to worry about whether or not these are feasible.
  6. How much time will this project take? Estimate the number of man-hours this project will take. Please itemize the man-hours according to the different phases of the database development cycle (proposal, analysis, design, implementation, testing/debugging, installation and maintenance).

There is no minimum or maximum page-number limits for this phase. But remember, the more you put down on paper now, the easier it will be for you to decide things later.


Milestone 2a: Conceptual model

due date: by the end of the week of Feb 14/15.

In this milestone, you design a process and data model for your project. As discussed in class - this is the first step towards implementing your project. In this milestone, you will need to ensure you have all your issues resolved, all questions answered from your client. After this milestone, there should be no more changes to the requirements.

For this milestone, you do not need to formally submit anything, but you will need to meet with me during my office hours or around class time, or make an appointment to see me at a different time.

  1. Level 0 and Level 1 data flow diagrams: Create the top level (level 0) and level 1 data flow diagrams for this project. Make sure you follow all the guidelines for data flow diagrams. In particular, you will need to ensure that all flow connectors (except those connecting to files) are properly labeled, and all lower level diagrams use the same inputs and outputs as the higher level data flow diagrams.
  2. ER diagram: Create an ER diagram that includes all entities, relationships, any weak entities/relationships, and ISA hierarchies if any. You can only display the most important attributes for each of the entities. Use the more concise method shown in class (see lecture notes 5, slide 21) in your ER diagram. Ensure that you display proper cardinality and participant constraints for every entity-relationship connection.

Milestone 2b: Database schema

Due date: by the end of week of Mar 14/15.

In this milestone, you will need to design the database schema for the project. This essentially involves taking the ER model from the last milestone and mapping it into the corresponding database schema. Specifically, you will need to do the following:

  1. Fix any problems with your ER model (use my comments as a guideline).
  2. Map the new ER model into the relational schema, ensuring a 3NF design in your model. To ensure 3NF design, you will basically need to look into each of your tables, and make sure that you know exactly what the primary key is, and that all the nonkey attributes are directly related to the complete primary key.

Submit the following (in a single file, please. MS word, powerpoint, pdf formats okay).

  1. Modified ER diagram and data flow diagrams.
  2. My comments from Milestone 2a, and for each of the comments one or two lines of explanation regarding how you either fixed the problem or how it was a normal issue in your project.
  3. Relational schema, containing:
    1. Name of each table.
    2. Names, data types and sizes of each attribute, including a line of explanation on each. You may find it useful to actually build these tables in your database and copy and paste the structure of the table.
    3. Primary keys and indexes (optional)

Final milestone: Implementation and submission

due date: by the end of the week of Apr 25/26.

Well, you guys have come across a number of hurdles, now the last one. This is hopefully not going to be the most painful one, given the amount of preparation that has gone into this system.

What do I want from this project?

I want to ensure that the project was at least a learning experience for you as a database development exercise. I do not like assigning minimum requirements for the project, but obviously I need to keep a standard to ensure that people are not going away with trivial things. So, here are some of the criteria that you will need to have:

  1. A well-organized menu. The menu should provide users access to all the forms, that should, in turn, provide access to all tables of the database (except fixed lookup tables). In other words, I do not want any user having to be modifying any tables directly.
  2. Friendly forms. The forms should contain as much help information as you can provide. This may include help buttons, status bar messages, helpful error messages, and the likes.
  3. Number of tables and queries. This is the most debatable area. A quick number of estimate on the number of tables would be at least twice the number of team members, a minimum of 6. This excludes fixed lookup tables.
  4. Helpful forms. You should use subforms whenever possible so that users do not need to manually insert foreign keys. If they absolutely have to, then you should provide them with popups to choose from.
  5. Queries - I will look back at your proposal to make sure all queries that you proposed can actually be solved by your project. Make sure all proposed queries are implemented.

What do you need to submit?

First of all, my email account is overflowing, so I am thinking about using a different email address for the final project. Send your email message (only one per team, please! submit only when you ensure you are completely ready.) to Arijit.Sengupta@eci.gsu.edu with the following attachments.

  1. Of course, the database. Those of you writing in access, please go to Tools - DB utilities - compact database before submitting. Those of you using powerbuilder, please make an executable file that you should submit. Those of you using a web version (cold fusion, java, whatever) - please place your project in an accessible web server, include the web address of the project, and a zipped version of all files needed for the project.
  2. A writeup containing the final ER model, what parts, if any, of the database was not implemented and the reasons behind them. Also include in this writeup, your experiences with the project - what you liked about it, what you disliked about it - how it could be improved, and whether or not you would like to see your project continued in a subsequent semester by another team of students.
  3. A complete log of your team meetings (remember, I said I will ask for this?)