Databases sit at the core of all modern commercial software/systems, managing the storage, update, and retrieval of large amounts of data in an efficient manner. This course provides an introduction to database management systems (DBMS); in particular, concentrating on the theory, design, and implementation of relational database management systems.
Topics covered include data models (ER and relational model); data storage and
access methods (files, indices); query languages including SQL and relational algebra;
query evaluation; query optimization; transaction management;
concurrency control; crash recovery; and advanced topics (parallel and distributed
DBMS, security, others)
Lab projects that involves implementing and testing components of a
relational database management system is a large component of the course.
Prerequisites: CPSC 35 and CPSC 31 required.
This course qualifies as a Group 2: Systems course for the CS
major/minor requirements.
Course Learning Goals:
- understand the components of a database management system, and design choices
for managing system resources to support efficient and correct
DB storage, DB accesses, and data constraints
- understand the importance of abstraction in database systems
- learn how to represent data conceptually using entity-relationship models
- learn how relational databases maintain data integrity
- understand the importance of considering system, resources when designing
and choosing data structures
- learn how to utilize SQL and modern databases to represent
large, real-world datasets
- learn solutions for efficiency and scalability in database systems (query optimization, parallel and distributed databases)
Course Webpages:
Current or Most Recent offering:
Fall 2020 (on-line semester, first use of SwatDB)
Some older offerings:
Fall'16,
Fall'07 (this predates the CS31 prereq)
Professor Soni
also teaches this course.