Quick Navigation

Graduate Program


A computer database is a hardware and software system designed to organize and utilize collections of data. This broad definition encompasses everything from a list of phone numbers in a cell phone to global business systems distributed throughout the world.

Databases help form the foundation of any modern business — maintaining accounts in a bank, tracking patient records in a hospital, keeping manufacturing inventory — all are areas that have been transformed by computer databases.

Databases form a part of many internet web sites. Any site that has user customization has a database associated with it. Web mail is based on databases. Search engines are based on databases. Social networking sites are based on databases. Online commerce is based on databases.

Good databases must be designed. Database design shares much in common with software design and analysis. A designer must understand how the database fits with the overall system. The relationships between pieces of data in the system must reflect the relationships between objects in the real world.

Some of the issues that must be considered when designing a database include:

  • How do pieces of data relate to each other? These relationships must be described and enforced in the database.
  • What does a piece of data mean? The same piece of data may have very different meanings in different contexts. A good database design must encapsulate these different contexts and meanings.
  • How to query the database, searching for unknown relationships. There are often many ways to extract the same information from a database. Some are more efficient than others.
  • How to reduce natural recurring redundancy. This makes databases smaller, faster, and more robust.
  • How to convert databases into alternate forms that enhance speed while preserving the external view of the data.
  • How to properly allow multiple users to access (and even change) the same pieces of data at the same time while maintaining internal consistency.
  • Reliability. How to maintain database integrity when things inevitably go wrong.
  • Security. How to ensure that multiple users can only access data they're allowed to manipulate.

Currently the Department of Computer Science offers the following two courses in the area of Databases:

  • CSCI 566 — Database Data Communications Software: an introduction to the design and creation of working online database systems.
  • CSCI 688 — Database Concepts: continues the discussion of how to create and manipulate modern database systems, with a greater emphasis on database theory. Understanding the theoretical basis behind database design results in better databases. Prerequisite: CSCI 566.