Database management systems are powerful tools for storing, managing, and querying data. This course provides an introduction to database systems, with a focus on system design principles and techniques. Topics to be covered include:
- Database system architecture, storage, and indexing
- Query execution and optimization
- Transactions, recovery, and concurrency control
- Relational algebra and SQL
- Data models, data normalization, and database design
Textbook: Database Management Systems 3rd Edition, by Ramakrishnan and Gehrke
Course Aims and Objectives
This course aims to:
- Provide a solid background in database management system design principles
- Promote understanding of these principles through hands-on exercises implementing the internals of a relational database management system
- Further develop students' ability to reason about algorithm and software design, optimization, and tradeoffs generally applicable in computer science
By the end of this course, students will be able to:
- Apply principles and techniques from this course to design or modify a database management system
- Design databases and queries for new applications
- Describe the levels of abstraction in the relational model and how these abstractions influence system design
- Discuss data consistency challenges in a database management system, as well as describe tradeoffs between various approaches to these challenges
This course meets twice a week for lecture; students are expected to attend. The course calendar will include the topics covered in each lecture as well as the corresponding textbook chapter(s). Students should read the listed material before class. The calendar may shift slightly if necessary (exam dates will remain fixed).
Coursework includes five significant programming labs using Java and SQL, in addition to shorter weekly problem sets. Students may work alone or with a partner for the programming labs (and may discuss general ideas with other students). For the problem sets, students may again discuss general ideas but should complete the problems on their own. There will be one midterm and one final exam. The final will be cumulative, but have more emphasis on material covered during the latter half of the semester.
Evaluation of student performance in this course will be based on labs, problem sets, exams, and participation/attendance:
|Problem sets||14.6%||73 pts|
Each student will be allowed four total "slip" days that can be used on the assignments. For example, you could hand in one assignment four days late, or four assignments each one day late, or two assignments each two days late, etc. Each day can only be used in its entirety (you cannot use "half" a day to turn in an assignment twelve hours late). You cannot use slip days on lab intermediate deadlines. If working in teams, slip days are deducted from each team member's allotment. After slip days are exhausted, any assignment handed in late will be marked off 25% per day.
In the case of emergency or other special circumstances, we can discuss extensions on assignments in consultation with the Dean for Student Health and/or the Dean for Academic Affairs.
AccommodationsMy goal is to make my course equally accessible to all of you. To request academic accommodations you'll contact the relevant disabilities resources person from your institution. Please let me know if you have any questions.
- CGU: Quamina Carter (Quamina.Carter@cgu.edu)
- CMC: Kari Rood (kari.rood@ClaremontMcKenna.edu)
- HMC: Brandon Ice (email@example.com)
- Pitzer: Gabriella Tempestoso (Gabriella_Tempestoso@pitzer.edu)
- Pomona: Jan Collins-Eaglin (firstname.lastname@example.org)
- Scripps: Bianca Vinci (email@example.com)
Students enrolled in this course are expected to adhere to the Harvey Mudd College Honor Code. As per the Student Handbook, students suspected of academic dishonesty will be reported to the Judiciary Board.