Welcome to CSE462/562 Database Systems of Spring 2023. Database Management Systems (DBMS) are an important piece of software widely used in various data intensive applications. No matter what data model or query language it adopts, there are principles and methodologies commonly found in virtually all DBMS, in order to support efficient and fault-tolerant data storage, query and management. In this course, we will examine the internals of a traditional Relational DataBase Management System (RDBMS) and discuss the common principles and methodologies that may be useful in many other database and data processing systems beyond RDBMS. The students will also gain practical experience of efficient data management through a semester-long project of implementing various components of a mini RDBMS.
The main topics include database storage management, query processing, query optimization, transaction processing, concurrency control and recovery in RDBMS. Please note that this is not a course on database design or database application development -- those are covered in CSE460/560 Data Models and Query Languages. We will briefly review the necessary background on the relational data model and the SQL language in the first a few lectures but students are expected to understand relational algebra and SQL before this course.
Taco-DB
in C++, divided into 6
subprojects. You may work in a team of up to two students.
The tasks remain the same regardless of your team size.
Please refer to the project 1 web page (link from the
navigation bar at the top of this page) for details.
Please refer to the PDF syllabus for the tentative assignment of letter grades. Grade break-down (100% + 10% in bonus):
The following schedule is subject to adjustments throughout the semester.
Date | Topic | Slides | Last updated | Opt. Textbook | HW/Project |
---|---|---|---|---|---|
1/31/2023 | Course introduction and logistics | 01 | 1/30 | Ch. 1 | Project 1 released |
2/2/2023 | Physical storage | 02 | 2/2 | Ch. 12 | |
2/7/2023 | Buffer mamagement | 03 | 2/4 | Ch. 13.5 | Project 1 due Project 2 released HW1 released (ungraded) |
2/9/2023 | Data storage layout | 04 | 2/9 (a few corrections on slides 12-13) | Ch. 13.1, 13.2, 13.3 | |
2/14/2023 | Access methods and indexing | 05 | 2/10 | Ch. 13.6, 14.1, 14.2 | HW1 solution released |
2/16/2023 | Hashing techniques | 06 | 2/15 | Ch. 14.5, 24.5 | Project 2 due Project 3 released HW2 released |
2/21/2023 | Hash index | 07 | 2/18 | Ch. 14.5, 24.5 | |
2/23/2023 | Tree index | 08 | 2/18 | Ch. 14.3, 14.4 | HW2 solution released |
2/28/2023 | Tree index (cont'd); | see 08 | Ch. 14.3, 14.4 | Project 3 due Project 4 released HW3 released |
|
3/2/2023 | Indexing and cost analysis | 10 | 2/18 | Ch. 14.1, 14.2 | HW3 solution released (3/3/2023) |
Mid-term exam covers all the topics above this line | |||||
3/7/2023 | Indexing and cost analysis (cont'd) Mid-term Q&A |
N/A | |||
3/9/2023 | Relational model and SQL | 11 | 3/12 | Ch. 2, 3 | |
Mid-term exam: Knox 104, 7:15 pm - 8:45 pm Please arrive at least 10 minutes earlier. |
|||||
3/14/2023 | Relational model and SQL (cont'd) Mid-term review | See 11 | Ch. 2, 3 | ||
3/16/2023 | Relational model and SQL (cont'd) | See 11 | Ch. 2, 3 | HW4 released | |
Spring recess: 3/20/2023 - 3/25/2023 | |||||
3/28/2023 | Query processing overview | 14 | 2/27 | Ch. 15.1, 15.2 | |
3/30/2023 | Single-table query processing | 15 | 4/6 | Ch. 15.3, 15.6, 15.7 | Project 5 released HW4 solution released |
4/3/2023 | N/A | Extended: project 4 due at 1 am EDT | |||
4/4/2023 | Single-table query processing (cont'd) | See 15 | |||
4/6/2023 | Single-table query processing (cont'd) | See 15 | |||
4/11/2023 | External Sorting | 16 | 4/10 | Ch. 15.4 | HW5 released |
4/13/2023 | Join algorithms | 17 | 4/17 | Ch. 15.5 | |
4/18/2023 | Join algorithms (cont'd) | See 17 | Ch. 15.5 | Project 6 released | |
4/20/2023 | Query optimization | 18 | 4/21 | Ch. 16 | |
4/25/2023 | Query optimization (cont'd) | 19 | 4/10 | ||
4/27/2023 | Transaction Processing | 20 | 4/27 | Ch. 17 | Project 5 due HW5 solution released |
5/2/2023 | Transaction Processing (cont'd) Pessimistic Concurrency Control |
21 | 5/9 | Ch. 17, 18.1 - 18.4 | HW6 released |
5/4/2023 | Pessimistic Concurrency control (cont'd) | See 21 | Ch. 18.1 - 18.4 | ||
5/9/2023 | Crash recovery | 22 | 4/21 | Ch. 19 | |
5/11/2023 | Final review | HW6 solution released | |||
5/14/2023 | N/A | Project 6 write-up due | |||
5/16/2023 | Final exam: Knox 4, 12:00 pm - 1:50 pm
Please arrive at least 10 minutes earlier. |
||||
5/21/2023 | Project 6 due |
Academic integrity is critical to the learning process. It is your responsibility as a student to complete your work in an honest fashion, upholding the expectations your individual instructors have for you in this regard. The ultimate goal is to ensure that you learn the content in your courses in accordance with UB’s academic integrity principles, regardless of whether instruction is in-person or remote. Thank you for upholding your own personal integrity and ensuring UB’s tradition of academic excellence. You should get familiar with the departmental and the university academic integrity policies and procedures for graudate students and for undergraudate students
Specifics to this course (please read carefully): you may NOT discuss/share code with/copy code from anyone about your course projects except for your teammate. For project write-ups, you must submit your independent write-up. We also require all students, whether enrolled, dropped or resigned from the class, to keep your course project repository inaccessible to public indefinitely, and never share it with any current students or future students who may take the course. When you look up online materials for the course project, please exercise common sense in terms of what is allowed and what is not allowed (e.g., cppreference/cplusplus.com are fine to look at, while posting questions directly related to the project on StackOverFlow would not be acceptable). Examples that we consider as academic integrity violations include but are hot limited to: 1) copying any part of other team's code implementation/code found online in the course project, regardless of whether it is a verbatim copy or a copy with substantially similar structure; 2) collaborate with other teams in the course project in any manner; 3) making your course project repository or any of its copy or fork publicly available or privately to any current or future students of the course; 4) submitting work that is not created by you or your team; 5) cheating or referring to any material not permitted in the exams.
Consistent with the CSE policy, we have zero tolerance towards academic integrity violations. Any academic integrity violation will result in an F grade for all students involved, unless the violation is purely accidental and does not provide any unfair advantage to any of the students involved.
If you have any disability which requires reasonable accommodations to enable you to participate in this course, please contact the Office of Accessibility Resources in 60 Capen Hall, 716-645-2608 and also the instructor of this course during the first week of class. The office will provide you with information and review appropriate arrangements for reasonable accommodations, which can be found on the web at this link. Please also notify the instructor within the fisrt two weeks to make reasonable arrangement early.