Welcome to CSE462/562 Database Systems of Spring 2022. 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. You 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 of this course include database storage management, query processing, query optimization, transaction processing, concurrency control and recovery, in a relational database system. In addition to that, we will review a few select topics in the latest database research. Please note that this is not a course on database design or database application development. These 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.
requests
folder.exam_conflicts
folder once you finalize
your final course schedule and still have exam
conflicts.
Taco-DB
in C++, divided into 5
subprojects. You may either work individually or
collaborate with a teammate in a team of two people. The
tasks remain the same regardless of your team size but
those who work in a team must document their implementation
responsibilities clearly in their project write-ups. We
will give you enough time to work on each subproject as
long as you do not wait until the last one or two days to
get started. The deadlines are strict and we do no accept
any late submissions. We will also use the MOSS tools to
check your submissions for plagiarism. For more details,
please refer to the project page.
Required: Undergraduate-level courses on the analysis of data structure and algorithms (e.g., CSE250, CSE331 or equivalent). Basic knowledge in C/C++ and Linux programming environment.
Preferred: Undergarduate-level database course on database design, relational model, SQL and database application development (e.g., CSE460/560 or equivalent).
Please refer to the PDF syllabus for the tentative assignment of letter grades. Grade break-down:
The following schedule is subject to adjustments throughout the
semester.
* Slides that are updated after the lectures
Date | Topic | Slides | Optional reading | HW/Project |
---|---|---|---|---|
2/1/2022 | Course introduction and logistics | 01 | Textbook Ch. 1 | Project 1 assigned |
2/3/2022 | Course project Taco-DB overview C++11 primer |
02 | ||
2/8/2022 | Relational Model | 03* | Textbook Ch. 2 | Project sign-up (lab 0) due |
2/10/2022 | SQL | 04* | Textbook Ch. 3 | HW1 released |
2/15/2022 | Physical storage and buffer management | 05 | Textbook Ch. 12 | Project 1 due |
2/17/2022 | Data storage layout and access methods | 06 | Textbook Ch. 13 | Project 2 assigned |
2/22/2022 | Indexing | 07* | Textbook Ch. 14.1, 14.2 | HW2 released |
2/24/2022 | Hash index | 08 | Textbook Ch. 14.5, 24.5 | |
3/1/2022 | Hash index (cont'd); | 09* | HW 3 released | |
3/3/2022 | Tree-based index | 10* | Textbook Ch. 14.3, 14.4 | |
3/8/2022 | Tree-based index (cont'd) | See 10 | Textbook Ch. 14.6, 14.8 | |
3/10/2022 | Project 2 recap & project 3 overview | Textbook Ch. 15.1, 15.2, 15.3, 15.6 | Project 2 due (write-up due on 3/12 11:59 pm); Project 3 assigned | |
3/15/2022 | Mid-term recap and Q&A | |||
3/17/2022 | No lecture today at regular time Mid-term exam: 3/17/2022, 11:05 am - 12:20 pm Please arrive at least 5 minutes earlier than the exam starts. |
|||
3/22/2022 | Spring recess, no lecture today. | |||
3/24/2022 | Spring recess, no lecture today. | |||
3/29/2022 | Query processing overview | 11* | Textbook Ch. 15.1, 15.2, 15.3, 15.6 | |
3/31/2022 | Single-table query processing | 12* | ||
4/5/2022 | External sorting | 13* | Textbook Ch. 15.4 | |
4/7/2022 | Join algorithms | 14 | Textbook Ch. 15.5 | |
4/10/2022 | Project 3 due (write-up also due on 4/10) |
|||
4/12/2022 | Sort-merge join | Project 4 released HW4 released |
||
4/14/2022 | Hash Join Project 4 overview |
|||
4/19/2022 | Query optimization | 15 | Chapter 16 | HW4 due |
4/21/2022 | Query optimization: "System-R"-style query optimizer | 16 | HW5 released | |
4/26/2022 | Transaction processing | 17 | Chapter 17 | Project 5 released |
4/28/2022 | Pessimistic concurrency control | 18* | Chapter 18.1 - 18.4 | HW5 due |
5/3/2022 | Pessimistic concurrency control (cont'd) | HW6 released | ||
5/5/2022 | Crash recovery | 19 | Chapter 19 | Project 4 due |
5/10/2022 | Advanced topics or final review (TBD) | Additional materials TBD | HW6 due | |
5/12/2022 | Final recap and Q&A | |||
5/13/2022 | Alternative final exam: Baldy 19 time: 12:30 pm - 2:00 pm (only for those with confirmed exam conflicts) |
|||
5/17/2022 | Final exam: Knox 110 time: 12:30 pm - 2:00 pm |
|||
5/22/2022 | Project 5 and final write-up 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 discuss with other students about your course projects and/or prepare for exams, but each team must submit their independent code implementation for the course project, and each individual must submit his/her 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 or future students who may take the course. Examples that we consider as academic integrity violations include but are hot limited to: 1) copying any part of other team's code implementation 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 except for discussing high-level concepts covered in the lectures (in particular, you should not exchange design and/or implementation details); 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.