CSE 190A – Database System Implementation
!!! This website is archived. Please see the website of the latest edition of this course among the links listed here. !!!
Lectures: MWF 2:00-2:50pm @ WLH 2205
Instructor: Arun Kumar
Email: arunkk [at] eng.ucsd.edu
Office: Room 3218 EBU3b (CSE building third floor)
Office Hours: Wed 3:00-4:00pm
Teaching Assistants: Daniel Reznikov and Anirudh Shekhawat
Email: (drezniko, asshekha) [at] eng.ucsd.edu
Office: Room B215 EBU3b (CSE building basement)
Office Hours: Mon 5:00-6:00pm (Anirudh) and Thu 5:00-6:00pm (Daniel)
Piazza: CSE190A
Announcements
New! Answers for the final are available here: questions only and with answers.
Here is a sample final exam from last year: questions only and with answers.
The final exam venue has been posted. It will be in class (WLH 2205) on Friday, 06/15 from 3:00pm to 5:59pm.
The topic of Transaction Management and Concurrency Control has been removed from this course's syllabus.
Answers for the midterm are available here: questions only and with answers.
Course Goals and Content
This is a hands-on systems-focused course on the implementation of a
database management system (DBMS), especially, a relational DBMS (RDBMS).
RDBMSs are the cornerstone of large-scale data management in numerous
application domains that define our modern world, including finance,
insurance, retail, logistics, telecommunications, healthcare, governance, and education.
Furthermore, concepts developed in the context of RDBMSs are
indispensable for the underpinnings of the so-called Big Data and NoSQL
systems that were developed for new applications such as Web search, e-commerce,
social media, and advanced analytics.
This course will cover key systems topics in implementing an RDBMS: data
storage, buffer management, indexing, sorting, relational operator implementations,
a bit of query optimization, and a bit of transaction management and concurrency control.
The implementation of newer Big Data systems such as Spark and MapReduce/Hadoop,
as well as distributed NoSQL/key-value stores, in-memory RDBMSs, and streaming
DBMSs will likely be covered too.
A major component of this course is hands-on C++ programming to
implement two key components of an RDBMS, a buffer manager and a
B+ Tree index, on top of a basic RDBMS skeleton that will be provided.
Course Format
The class meets 3 times a week for 50-minute lectures. All lectures are mandatory.
2 programming projects. Students can work on projects either individually or in teams of 2.
Students should email their team decisions to the TA and instructor before 11:59pm Wednesday 04/11.
All remaining students will be assigned to teams randomly by the TA.
A midterm exam and a cumulative final exam. If you miss an exam, you will get no credit for it
unless you notify the instructor in advance with a certifiable medical or emergency reason.
10 -> 8 short surprise quizzes in class on random lecture dates. Each quiz will be only 7min long
and will have 7 multiple choice questions that need to be answered using clickers.
The grading is binary: if you answer at least 4 of the questions correctly,
you get full credit for that quiz; otherwise, you get no credit for that quiz. If you are absent,
you get no credit by default. If you miss a quiz due to a pre-notified and certifiable medical
or emergency reason, that quiz will be discounted for you and your score will be reweighted accordingly.
You are required to bring your iclicker to
every lecture. Make sure to register your clicker on TritonEd
before the second lecture.
Prerequisites
Textbooks
Additional (optional): Database Systems: The Complete Book (2nd edition), by Hector
Garcia-Molina, Jennifer Widom, and Jeffrey Ullman.
Grading
Project 1: 15%
Project 2: 25%
Quizzes: 10%
Midterm Exam: 15%
Final Exam: 35%
Cutoffs
These cutoffs on the total score are a minimum guarantee on the grade. The thresholds
might be decreased later by the instructor but not increased.
Cutoff (>= x) | Grade |
| |
96 | A+ |
90 | A |
86 | A- |
82 | B+ |
80 | B |
76 | B- |
72 | C+ |
70 | C |
65 | C- |
55 | D |
< 55 | F
|
Exam Dates
Classroom Rules
No late days for submitting the programming projects.
If plagiarism is detected in the project code or the exams, University authorities
will be notified for appropriate disciplinary action to be taken.
|