< CSE 3102: Database Management System Projects

Project Overview

General Description

The class project will give you a real hands-on experience by using a full-fledged database management system. You will design and implement a database application, which will include a web-based user interface as its front-end and a supporting SQL Server database as its back end. The project includes the following activities spread over the entire semester:
  1. Identify an application area for which a DBMS may prove beneficial to store the data (consider factors such as the need to store and query large data volumes, support multiple users, concurrent access, maintain consistency, etc.)
  2. Determine the functionalities and operations for the database application. Think about the various requirements for the user of your application and the various data attributes that need to be stored and later queried.
  3. Database development:
    • Model the data to be stored in the database, i.e., identify the various entities, relationships, constraints, etc.
    • Design, normalize, and perfect the relational database schema.
    • Write the SQL commands to create the database, find appropriate data, and populate the database.
  4. User-Interface (UI) development:
    • Design the web interface for the application by considering the various "screens" or "flow of control" for your application. For example, in a photo manager application you might start with a user login screen, then a web page to display the user's photo in a gallery, then another one to display a specific picture with additional descriptive information, a search page, logout page, etc. The whole user interface can be considered a directed graph in which the vertices are the web pages and the edges represent links (URLs) to other web pages.
    • Develop the web interface and write supporting code to access the data from your DBMS.
  5. Test the system and check if the application works as desired. Your project should "evolve" during the course of the semester, but for most part the functionality promised in the first deliverable must be achieved. For this purpose, make sure you perform a thorough requirement analysis in the beginning and balance features so you can "fulfill this contract" in the end.
The end result should be a functioning application that runs on the web and that uses your underlying database to enable useful functionality.