Wednesday 4:00pm- 6:45pm (CSI 1122)
Office Hours: Mo 1-2pm or by appointment
Course Overview: This course covers Data Modeling, Database Architectures, and Transaction Management as they have evolved over more than 40 years of research and development. Then it covers on-going research in database systems, focusing on techniques that have recently been transferred from research to wide-spread commercial implementation. Then the course will focus on new research trends and applications in light of fully distributed and ubiquitously connected world consisting of all range data stores from data warehouses to much smaller data carrying devices such as PDAs and sensors. While the other two courses in the UMD database sequence (CMSC 424 and 624) concentrate largely on centralized, relational database systems used for business data processing, in this course we expand the range of systems, we study in terms of architecture, data models, hardware and software environments, applications, user communities, and touch a little on socioeconomics of databases.
Course Pre-Requisites: CMSC 424, (CMSC 624 waived), or equivalent.
Course Credit: This course counts towards the Database area's requirements for PhD core, MS comps, and MS coursework.
Course Text Book:
 Readings in Database Systems, by Hellerstein & Stonebraker, MIT Press, 4th Edition, 2004. It will be used as a basis for the course and will be augmented it with other papers from major DB conferences. Except for a few papers that are written for the above book and some very nice prologues to the chapters, the remaining papers are readily available on web sites.
Course Grading:Course Requirements: This course will consist of lectures (by me) and presentations (from you, the students). After a few lectures by me, I plan to split the class into two parts. In the first half I will lecture on an area or paper discussing the some of the theoretical foundations, techniques, algorithms, and the general trends in that topic. I expect this to last about half the class. In the other half of the class, two students will present two papers each, followed by critiques by two other students and a class discussion on the presentations, critiques and my lecture. This is a shared learning class and active participation in these discussions is strongly encouraged. I expect each student to do two presentations and two critiques during the semester. In addition to the class presentations, there will be a semester-long programming project that you can do alone or in teams of two. The project's requirements will be discussed on the first day of classes and will involve some new research problem, implementation, experimentation, and possible submission for publication. Project suggestions will be provided in class.
Presentations 15% Critiques & Class Participation 10% Midterm Exam 20% Project 30% Final Exam 25%
- Presentations: Two 25-minute presentations and two critiques on presentations/lectures.
- Slides: Send me the powerpoint slides after each presentation. I will post them to the course website
- Critiques: Two 10-minute critiques on presentations/lectures.
- Class Participation: Semester-long active participation in the discussion.
- Project: Semester-long project alone or in groups of two.
- Preliminary Report: This will be a one to two-page report due early in the semester that outlines the participant(s), project overview, what you plan to do, mid-semester and end-semester milestones, and one or two references to previous work. Project suggestions will be provided in class.
- Mid-Semester Report: This will be due April 5. It should discuss your project progress and milestone
- Final Report: This will be due May 6 and should discuss your project accomplishments place them in the context of other work in the field.
- Source Code: You should e-mail the source code to me by May 6.
- Project Presentation and Demo: We will have a course presentation and demo fest in our May 10 class. Send me your powerpoint presentation for this after the class.
- Midterm and Final Exams will be based on material presented in my lectures and your presentations
Below is a list of papers that we will try to cover in the course:
- Preview & Chapter 1 : Data Models and DBMS Architectures
- Chapter 2: Query Processing (most papers)
- Chapter 3: Access Methods and Storage (most papers plus 2-3 more)
- Chapter 4: Transactions (papers 1,2, and 1-2 more)
- Chapter 5: Extensible Systems (paper 1)
- Chapter 6: Database Evolution (paper 1 and a couple more)
- Chapter 7: Warehouse Techniques (papers 1, 3,7, and a couple more)
- Chapter 8: Data Mining (Paper 3 and perhaps 1-2 more)
- Chapter 9: Web Infrastructure and Database Technology (papers 1,2,7, and perhaps 1-2 more)
- Chapter 10: Streams (a couple of papers)
- 5 Minute Rule paper Slides
- Optimistic Concurrency Control
- Inclusion of New Types in RDBMS
- Packed R-Trees
- Data Warehousing and OLAP
- Bender_Provable Unlikability
- The Tor Router