CSci 6441.BA2: Database Management Systems
Department of Computer Science
The George Washington University, Spring 2011
CRN 15165Term Project
Overview: In order to gain further experience with the material we will cover in class, you are to complete a term project. The main component of the project is to work in a team to develop a moderately complicated database application.
- Form a team of 3 (or 4) class members and notify the instructor
- Select a business problem to solve from a domain with which you are familiar.
- Possibilities include...
- something from work (assigning people to project teams, a content management system)
- something regarding a hobby or interest (assigning referees to soccer games, cataloging a media collection)
- something familiar from daily life (exploring your family tree, booking a flight, registering for a class)
- an idea you have for a new business or service
- As a rule of thumb, your problem should be sufficiently complicated that it requires a database with at least four tables and queries that require joins.
- Write a high-level proposal describing your business problem and, in very general terms, your proposed solution using database technology
- This is probably 2-3 pages
- Include at least 3 use cases
- Receive approval for your proposal from the instructor
- If rejected then tweak, refactor, or completely replace as necessary to gain approval
- Select a DBMS implementation to use: You may use PostgreSQL, MySQL, SQLite, SQL Server, or Oracle without prior approval. If you wish to use a different DBMS, you must discuss the reasons with the instructor and receive approval.
- Determine your data needs and produce an initial schema
- Critique (as a team) the schemas (from other teams) assigned to you
- Revise your schema based on the critiques
- Generate your database schema, create the database, and populate it with sample data
- Write and execute queries against your database to solve the business problem you presented in your proposal
- Demonstrate your solution to the class
- Your final project should include a web front-end. You may use any system/language that requires you to use SQL; i.e. you may not use an object-relational mapping system such as Ruby's ActiveRecord. Feel free to discuss implementation options with the instructor.
- Note you are being asked to build a web front-end for two reasons. First, it is a reasonable way to demonstrate interacting with your database. Second, it provides you with practice programatically accessing a database. The point of the project is the database, not the web front-end. So, please do not spend too much time on the web aspects. In your presentation, I do not want to see half the time taken up demoing the login mechanism!
Deliverables: Due dates are indicated on the class schedule. Late work will not be accepted without prior arrangements. Each project deliverable shall include a statement describing each team member's contribution to the deliverable. Except where otherwise indicated, work should be submitted using the team repository which the instructor will create for you.
Grading Weights for Project Deliverables:
Proposal 10% DB Schema 35% Schema Critique 10% Queries 35% Demo 10%
mmburke@gwu.edu Modified: Tue Jan 11 14:06:46 EDT 2011