CPSC 343 Database Theory and Practice Fall 2026

CPSC 343 Course Information

On this page:


Course Description and Objectives

Catalogue description:

Computer databases are used to store, organize, and retrieve large collections of information. This course introduces the theory and practice of relational databases and relational database management systems (RDBMS). Topics include data modeling and database design, query languages (SQL), and elements of RDBMS implementation such as file structure and data storage, indexing, and query evaluation. Additional topics may include Web-based access to databases, transaction management, reliability, security, and object-oriented databases.

This course, like many of the other 300- and 400-level computer science courses, explores a particular subdiscipline of computer science. Many aspects of modern society and commerce involve the management of large quantities of data, so databases are a crucial component of computer systems. Furthermore, the study of database systems brings together many areas of computer science (theory, data structures, algorithms, parallel computing, user interfaces, and more); it is particularly nice as an application of theoretical computer science topics.

By the end of the course, the successful student should be able to:

  • analyze and model the data needs of a real-world situation
  • use a relational database management system to effectively store and access data
  • construct an application that accesses a database
  • explain how relational database systems store information and process queries, and apply that knowledge to increasing database performance
Detailed topic list and objectives coming soon!

Class Format and Expectations

This course has three 60-minute class meetings per week. On-time attendance is expected for all scheduled class meetings. In addition, attendance is required at a total of nine 15-minute project-related meetings (midpoint check-ins and handin meetings) and an additional three hours of office hours over the course of the semester. Dates for the check-in and handin meetings will be established early in the semester. Reassessment meetings may substitute for office hours.

Out-of-class work for this course includes homework, a semester-long course project, and studying for exams. New homework problems will be assigned after most classes and will be collected weekly; while there will generally be up to two weeks to submit problems after they are assigned, it is important to put in steady effort and not let things pile up. The project phases are cumulative and steady effort and careful time management is again essential for success.

All together, students should expect to spend approximately 8-10 hours per week on work outside of class. While your experience may vary from topic to topic or from week to week, if you routinely spend substantially more time or you feel like you are spinning your wheels and not making progress, you should visit office hours for help.


Prerequisites

CPSC 225 is required.
The course project will involve Java programming and your familiarity with "thinking like a programmer" will help you pick up the new language (SQL) used in this course.


Required Materials
Textbook

There is no textbook; supplementary reading and reference material will be posted on the schedule page.

Laptop

If you have a laptop that you are able to bring to class on lecture days, please do so. (It's OK if you don't; in-class activities will be done in small groups so you can team up with someone who does have a laptop.)

Software

MySQL Workbench (and optionally the MySQL commandline client), Eclipse 2026-06, and Java 21 will be used in this course. Some additional tools may also be used. It is highly recommended that you use the campus Linux environment, accessible in Demarest 002 or remotely through the Linux VDI, though in general the necessary software is freely available for multiple platforms so it is possible to set up your own computer if desired.

If you are off campus, you will need to connect via the VPN in order to access the MySQL server used for the course. VPN access is no longer enabled by default for students, so you will need to contact the Help Desk for access.