Welcome to CS 354 - Database Management Systems
Welcome to Database Management, a hands-on course designed to equip you with the essential skills for designing, querying, and optimizing relational databases. Over the next seven weeks, you’ll dive into SQL, explore database structures, and gain practical experience in managing data efficiently. Whether you’re new to databases or looking to sharpen your skills, this course will provide a solid foundation for real-world applications.
Get ready to write queries, design schemas, and discover how databases power modern applications! Looking forward to an exciting and engaging learning journey with you all.
See you in class!
This website is permanently under construction, so please let me know if you find any missing information or experience issues with the links and interface throughout the semester.
Student Learning Outcomes
General Student Learning Outcomes (SLOs) for the Course
By the end of this Database Management course, students will be able to:
- Understand the Role of Databases – Explain the importance of database management systems and how they support real-world applications.
- Write and Optimize SQL Queries – Construct and execute SQL queries to retrieve, manipulate, and analyze data efficiently.
- Design and Normalize Relational Databases – Develop well-structured database schemas using BCNF to ensure data integrity and eliminate redundancy.
- Implement Relationships and Constraints – Define and enforce primary keys, foreign keys, and other integrity constraints to maintain data consistency.
- Use Advanced SQL Features – Apply concepts like joins, subqueries, indexing, views (materialized vs. non-materialized), and stored procedures to enhance database functionality.
- Manage Transactions and Security – Demonstrate the ability to handle transactions, prevent SQL injection, and implement security best practices.
- Perform Database Maintenance and Optimization – Explain and apply indexing, query optimization, and backup/recovery strategies for efficient database management.
- Develop a Complete Database System – Design, implement, and present a database project that integrates SQL skills, schema design, and optimization techniques.
These outcomes ensure that students leave the course with both theoretical knowledge and practical, real-world database management skills.
Course Organization
The course is organized around these components:
- The lectures that will introduce the topics at the practical and conceptual level through live coding and theory explanation;
- The homeworks in which students will practice using and building databases; and
- The projects in which students will develop databases systems for real-world problems.
Each week’s lectures, homeworks and projects will cover the same concepts, but will do so in different ways.
Acknowledgements
This website is built with Quarto. The original code used to build this website can be found at DS Box. We are very grateful for their work!