CS 525 - Advanced Database Organization
Summer, 2009
Instructor: Wai Gen Yee (yee@iit)
Time: 12:10 - 2:50pm, Monday and Wednesdays
Location: Stuart 204
Office hours: Mondays and Tuesdays, 10:15-11:15am, or by appointment in SB226c
Class Web page: www.ir.iit.edu/~waigen/classes/cs525sum09
|
Course News! | Home | Courses
News:
Course news relevant to all sections will be posted here in reverse chronological order.
Description:
Study of relational, semantic, and object-oriented data models and interfaces. Database management system techniques for query optimization, concurrency control, recovery management, and distributed processing. If we have time, we will cover some more advanced, non-core database topic (e.g., data mining).
Prerequisites:
CS 425 (Database Organization), and probably CS 402 (Introduction to Advanced Studies). Strong knowledge of programming in C/C++ and Unix/Linux. Code should be compilable on IIT's Unix machines. (No Java, no Basic, no Microsoft. Just pure, portable C/C++ code.) Data structures.
Recommended Texts (any one of the following):
- Elmasri and Navathe, Fundamentals of Database Systems, 4th Edition, Addison-Wesley, 2003.
- Ramakrishnan and Gehrke, Database Management Systems, 3nd edition, McGraw-Hill, 2002.
- Garcia-Molina, Ullman, Widom, Database Systems: The Complete Book, 2nd Edition, Pearson Prentice-Hall, 2008
- Silberschatz, Korth, and Sudarshan, Database System Concepts, 4th Edition, McGraw Hill, 2002
Syllabus:
- Storage system: block-based data access, writing data to disk, representing nulls, locating free space, overflow blocks
- Buffer management: LRU, CLOCK, LFU, FIFO, etc.
- Access structures: heap, ISAM, B+-tree, direct addressing, hashing, extendible hashing
- Query processing: implementing the relational algebra, implementing sorting, pipelining, materialized views, cost analyses of operations
- Query optimization: pushing down selects, projects, join ordering
- Transaction processing: transaction states, conflicts, serializability, 2-phase locking, logging, ARIES, etc.
Course Structure:
Lectures, exams, programming assignments, office hours, and some extra credit assignments. Students may form teams of up to three people to do the programming assignment.
Each session is 2:40 long, but I will break this up.
Workload:
Three programming/writing assignments, worth about ~60% (15%+20%+25%) of your grade and four exams worth ~40% or your grade (=7%+10%+10%+13%). Each project deadline and exam will be spaced evenly apart. The final exam will be held on the final exam day of this class as specified by the registrar. I expect all students to do all projects and take all exams on time. There will also be opportunities to do extra credit projects. I look kindly upon students who are active in the class.
Policies:
Plagiarism will result in an automatic failure in the course. In group projects, all students in the group will receive the same grade. All code should be original unless otherwise stated.
Late policy is 5 points per day, for a maximum of one week. If you have any problems following this policy, you must notify me in advance. If you need extensions for some deadline, you have a better chance of leniency if you notify me in advance.
Feel free to demo projects before they are due (during office hours) to get a sense of what I expect. By demoing before the due date, you can know exactly what you will get during the actual demo for a grade.
Grading will primarily be based on seven numbers: four exams and two or three projects. Based on these grades, all students should know how well they are doing in the class. Because there are so many grades, no single grade should kill you, and I should get a good sense of your progress. Note that I am strict, but, I believe, fair.
Course Scheduling must be done such that you DO NOT schedule another class that takes place at the same time as this one. You will not be given a release from your class duties due to a course conflict.
Finally: Enjoy the class. Participate. Ask questions. Come to office hours. Talking won't hurt your grade (it might even help) and makes the class more fun to attend and teach.
Course Materials:
I will prepare an electronic blackboard (blackboard.iit.edu) for class
announcements and lecture materials. All information on the blackboard supersedes anything else you read elsewhere. Read it! The course Web page will also be a repository for information.
I am preparing slides for the course, which I will post on the Blackboard system.
Important Dates:
Miscellaneous Dates
First day of class - June 1
Last day of class - June 22
I am out of town: June 1, 3, July 20, 22, 23
Projects
Project 0 - June 1 - 3
Project 1 - June 3 - June 17
Project 2 - June 17 - July 13
Project 3 - July 6 - July 23
Exams
Exam 1 - June 15
Exam 2 - June 24
Exam 3 - July 8
Final - July 22
Project Information:
Projects are due by 11:59pm of the due date. The late penalty will be assessed every 24 hours.
Project topics will be announced on the Blackboard.
Extra:
There will be occasional opportunities to perform extra credit. I will let you know in class. Extra credit assignments, to be sure, are designed to give more motivated students an opportunity to learn more, under supervision. They will not
dramatically change your grade, if at all (you won't go from being a C student to an A student). They may help if you are borderline, though.
More Info:
For a hint at what this class will be like, see my Autumn, 2006 Web page.
Students with Special Needs:
Any students with disabilities, please see me or see the Center for Disability Resources to make special arrangements.