Page type: course

CS 537 - Advanced Database Systems;CS 537;Advanced Database Systems; Time: 8:40 -- 9:55 AM, Tuesday and Thursday; Place: 207 Upson; Survey Proposal Due: 10/08; Project Proposal Due: 10/08; Prelim Exam: 10/10 7:30-9p UP 111/111A; Paper Survey Due: 10/31; Mid-Project Evaluation: 11/26; Project Completion: 12/12; Final Exam: 12/19 9:00 AM, HO 206; Contents;Lecture Schedule;Prelims;Sample;Questions & Answers (outside;firewall);Prelim Result Stats;Project And Survey;Project Info;The PREDATOR;DBMS;Current;Project/Survey Lists (outside;firewall);Reference Material List;Handouts, Notes and Mail Archive;Course Description;Prerequisites;TextBook;C++ Information;Grading;Professor;Teaching Assistants; Course;Description;CS 537 is being offered for the first time in Fall 1996. It is intended;to give students a solid background in the design and development of database;management systems (DBMS's). Database systems are possibly the world's;largest pieces of software, and certainly among the most valuable pieces;of software. While a DBMS is in one sense a giant application program,;there are surprisingly many principles behind its development and use.;The database industry is growing and thriving, and the demand for knowledgeable;database engineers is much greater than the supply. The database research;community is also active, and there are always new problems to be addressed;because of the explosive amounts of data that people wish to access. This;course forms essential background for anyone who wants to (a) become a;systems engineer at a database development company, or (b) become an informed;user of database systems, or (c) become a database systems researcher,;or (d) develop systems in any domain that manipulate large amounts of data,;or (e) find out how a teller machine really works!;A number of "advanced fundamental" DBMS concepts will be covered.;Although this is not intended to be an introductory course, it is a new;course and there may be students in the class with different backgrounds.;Consequently, the discussion of various topics will begin with a quick;review of basic material taught in CS 432. Click here;for a tentative list of topics to be covered.;In terms of workload, here's what the course involves:;There will be a midterm and a final examination. These will test a;breadth of basic concepts.;Each student will have to do a survey paper on a specific advanced;topic. Here is a list of possible topics. The;purpose of this is to be aware that what is being taught in the course;is only a fraction of what is out there. This paper will be due three weeks;after the midterm, and should be complete with references. It will require;reading papers from journals and conference proceedings in the engineering;library. I will suggest initial references, and you will have to pursue;additional references from there. Click here for;information on reference material in the library.;A development project involving C++ programming. Look here;for more information.;There will be no written homework assignments.;Students take turns writing lecture notes. Depending on enrollment,;this means each person will have to take notes once or twice in the semester.;Hopefully, this additional work will turn out to be useful around exam;time. Here are the details (in .ps).; Development;Project;The term project is an important part of the course, and will involve;a significant amount of C++ programming. You can choose whether you wish;to work alone or in teams of two. However, the two-person projects will;involve proportionally more work. The goal of the project is two-fold:;(a) to get hands-on experience at building some specific DBMS component,;(b) to get comfortable working with a large pre-existing code-base, and;modifying it in a modular manner. The second goal is as important as the;first one, because all database systems are huge software systems, and;rarely do you have the luxury of starting from scratch. This forces you;to write modular code, and also to understand the interaction between the;different system components when the inevitable bugs appear.;There are two research DBMS prototypes that will be used in the projects.;One is MINIBASE, which is software associated with the textbook. It is;a simple single-user database system that provides all the components from;the SQL parser down to the disk manager. This should hopefully be available,;depending on our being able to compile and run it in our computing environment.;The important part of MINIBASE is the interface description of the various;system components. The actual code comes from class projects. Consequently,;projects using MINIBASE will involve writing a component (like the buffer;manager), based on a specification of its C++ interface.;The other prototype is PREDATOR, which is a query processing engine;that I have been developing for my research. There are a number of possible;projects (some of which could lead to research topics) that can be built;on top of PREDATOR. The focus here is on the high-end functionality like;complex queries and new data types.;If you are not familiar with C++, I recommend a MINIBASE project because;the amount of design needed is minimal. If you think you are interested;in database systems research, then you should do a PREDATOR project. If;you fall in neither category, then you should decide whether you want a;project at the lower-level DBMS (storage, access, buffer) areas, or the;higher-level (query processing, optimization) areas and choose between;MINIBASE (lower-level) and PREDATOR (higher-level). There are also some;general projects that involve neither system. If you have your own idea;on a suitable project, you should talk with me about it well in advance;of the project proposal date.;Here is a tentative list of possible projects.;In all the projects, there will be certain steps that should be followed:;As part of the project proposal, you should (discuss with me) and submit;an ordered list of pieces of functionality that the project will produce.;There will be a mid-project review in which you meet with me to discuss;the progress that you have made towards completing the project.;The code you write must follow the coding conventions of the particular;system that you are working on. A detailed coding conventions document;will be provided and should be followed closely. This is something that;I will be very picky on, and that will contribute to the grade you get;on the project.;Project submission should include a demo and a reasonable amount of;test data.;Some useful references are:;Home page for PREDATOR.;Home;page for MINIBASE.; Course;TextBook;The primary text is a beta edition of a new book on database systems;: "Database Management Systems" by Raghu Ramakrishnan. This book;contains many more details than are in most other introductory database;books. It is also associated with free software for an instructional database;system "MINIBASE",;which we might use in class assignments. The textbook is available in the;campus store for $46. Here are other textbooks which could be used as references:;Korth & Silberschatz: Database System Concepts. McGraw-Hill, Second;Edition, 1991.;This is the standard introductory database text, but lacks the detail to;be used in a graduate course.;Michael Stonebraker: Readings in Database Systems. Morgan Kaufmann,;Second Edition, 1994.;This is a collection of relatively recent papers in the area, collected;and introduced by Stonebraker, who developed the Ingres, Postgres, and;Illustra database systems. Many of these are fundamental papers on core;areas.;Elmasri & Navathe: Fundamentals of Database Systems. Benjamin-Cummings,;Second Edition, 1994.;This is an alternative introductory database text.;Gray & Reuter: Transaction Processing: Concepts and Techniques.;Morgan Kaufmann, 1993.;This is the bible of transaction processing, 1000 pages long, and tells;you all there is to know (and a lot more) about transactions. It is a wonderful;reference to clear up confusing aspects of concurrency control, recovery,;transaction semantics, etc.;Some reference material has also been placed in the library. Click here;for details.; C++;Information;Here are some resources about C++ programming:;C++;Tutorial;CS;302's "The C++ language" (under construction);Debugging;with gdb;GNU Make; Grading;Policies;The grades for the course will be assigned based on the following percentages:;Prelim (mid-term) exam : 25\%;Final exam : 25\%;Survey paper + Lecture Notes : 15\%;Term project : 35\%;The prelim exam will be on the evening of Oct 10th at 7:30pm in Upson;111/111A. It will be set to be comfortably finished in 1.5 hrs, but an;extra half hour will be provided for those who need it. Likewise for the;final exam. The final should be in exam period 16 (Thurs., Dec 19 9:00-11:30am),;but this again is tentative and needs to be confirmed. The final exam will;focus on material not tested in the mid-term, but the material covered;in the earlier part of the course may form background for some of the questions.; Professor;Praveen Seshadri; Office: 4108 Upson; Phone: 255-1045; E-Mail: praveen@cs; Office Hours: 10:00 -- 11:00 AM, Tuesday and Thursday; Teaching;Assistants;Wei;Tsang Ooi; Office: 5162 Upson Hall; Phone: 5-7421; E-Mail: weitsang@cs; Office Hours: MWF 11:00 AM -- 12:00 noon;