The volume and complexity of data in modern applications continue to grow rapidly. Database management systems lie at the core of handling this growth, providing the efficiency, scalability, reliability, and correctness guarantees that modern applications depend on. This course provides a thorough introduction to database internals, design, and implementation. We will explore core data models, storage structures, and algorithms for query processing, optimization, concurrency control, and recovery, studying them in the context of both relational DBMSes and modern data-intensive systems.
Coursework centers on developing DinoDB, a simplified but real relational DBMS, with features such as storage management, indexing, joins, concurrency control, crash recovery, and vector search for emerging AI applications. This year, the course will explicitly allow AI-assisted development on coding assignments. Students will have the opportunity to use AI tools to help understand concepts, develop and debug code, and design tests. At the same time, the course will place greater emphasis on testing, correctness reasoning, and ownership: students remain responsible for understanding, validating, and explaining the systems they build.
We will also include selected readings and short discussions on how AI is changing database systems. These will connect current AI-driven developments—such as natural-language interfaces, vector search, AI-assisted query processing, and agentic applications—to the classical DBMS topics covered in the course. Students will gain practical exposure not only to database implementation, but also to modern development tools and workflows, including Go, containers, digital notebooks, and AI-assisted programming.
This course requires either CSCI 0300 or 0330 (or equivalent coursework).
Lecture is from 9:00 to 10:20 AM on Tuesdays and Thursdays.
If you are a student interested in taking the remote offering of the course, you must email cs1270headtas@lists.brown.edu and receive confirmation from Professor Ugur.