CS 432 Fall 1999
Introduction To Database Systems
Information about the final: The final
takes place on December 10 at 9am in Olin 155. Check out this
page for information about other classes. The final is closed book, closed
notes, the same style as the two prelims. The time allocated for the final is 2
hours and 30 minutes. About 40% of the material in the final will cover material
from Chapters 17 to 21, the remainder will be material from the earlier
chapters. The style of the exam will be similar to the two prelims. Note that
the exam counts 20% of your total grade.
What's
new?
- 12/12 The final exam has been
graded; the mean is 68.4, the standard deviation is 14.5.
- 12/6 Slides for Chapter
17 and Chapter
21 are now online. (Six slides per page: Chapter
17 and Chapter
21).
- 11/27 The last version of
Assignment 7 had a bug. (Thanks to Hung-Khoon Tan, Tee Soong Tan, and Tadeusz
Wellenger for finding the bug.) Copy a new version of the code from \\goose\cs432-fall99\A7.
If you copied the code after 11/27/99, 4pm, then you already have the latest
version. (Make sure you do not overwrite whatever code you have written so
far; you can copy it over into the new version.)
- 11/20 Assignment
7 is out. Assignment 7 is due December 2 at 2pm. I urge you to start
with Assignment 7 before the break. Start by reading the code and Chapter 20
in the book. We will cover ARIES in detail on November 22 in class, and we
will have a question and answer session November 29 in class about the
assignment. Unless you have done a significant amount of work by November
29, the Q&A session will be useless for you.
- 11/15 Slides for Chapter
18, Chapter
19, and Chapter
20. (Six slides per page: Chapter
18, Chapter
19, and Chapter
20.) Jim Gray's
lecture is in B14 Hollister, Tuesday, 11/16 at 4:15pm.. Here
is his homepage.
- 11/12 Statistics
about the second prelim are available. Homework 6
is online. Homework 6 is a group project that you should do in groups of two
students.
- 11/10 A solution
sketch for parts of homework 5 is available.
- 11/8 The sample
answers for the odd-numbered exercises in the book have been updated.
The next prelim is Thursday, November 11, at 7:30pm in 101 Phillips. It will
cover chapters 8-16.
- 11/5 Slides for Chapter 16: part
one and part two. (Six slides per
page: part one and part
two.)
- 11/3 The deadline of
Assignment 4 has been extended to Friday, 11/5, 2pm. This is a hard deadline
and no more extensions for special cases will be given.
- 11/1 Assignment
5 is online. Assignment 5 is due 11/10 in class. There will be no
extensions for this assignment. The work that you hand in has to be done by
yourself; no group submissions for this assignment.
- 10/29 Extra office hours for
last minute questions! Yi-Cheng will have extra office
hours Sunday, 10/31, from 2-4pm in the CSUGLAB. And check out the list
of questions and answers for assignment 4.
- 10/27 Slides for Chapter
13,
Chapter 14, and Chapter 15 are online now. (Six slides per page:
Chapter 13,
Chapter 14, and Chapter 15.)
- 10/18 Assignment
4 is online. The due date for Assignment 4 is Monday, November 1, at
2pm. The assignment is done in teams of two students. If you have not yet
found a partner, send email to johannes@cs.cornell.edu.
- 10/15 Extra office hours for
last minute questions! Johannes has extra office hours for last minute
questions Sunday 10/17 from 1-2pm in the CSUGLAB. Yi-Cheng will have office
hours Sunday from 2-4pm in the CSUGLAB.
- 10/14 Slides for Chapter
10, Chapter
11, and Chapter 12 (part
one and part
two). (Six slides per page: Chapter
10, Chapter
11, Chapter 12 (part
one and part
two).)
- 10/13 Check out the FAQ for Assignment
3.
- 10/13 New date and location
for the second prelim: 11/11, 7:30pm, Phillips 101.
- 10/6 Extra office hours
to discuss assignment 3. Gautam will have extra office hours Friday,
10/15 from 10:30-12:30 in the CSUGLAB. Yi-Cheng will have extra office hours
Sunday, 10/17 from 2-4pm in the CSUGLAB. There are no office hours during
the fall break.
- 10/6 The exam has been
graded and will be returned today in class. The date for the second prelim
has been moved from November 9 to November 11. A new room for the second
prelim will be announced shortly.
- 10/3 The exam is closed
book! No supplementary material is allowed in the exam.
- 10/3 Johannes will be out of
town Friday, October 7. Yi-Cheng will give a Q&A session in class.
- 10/2 You should have found a
partner for Assignment 3. Send email with your and your partner's NETID to ychuang@cs.cornell.edu,
so that we can create a handin directory for your group. If you tell us at
the end of the week that you do not have a partner, it is too late! If you
do not have a partner yet, talk to Johannes after class on Monday, October
3.
- 9/30 Extra office hours: To
answer questions for the upcoming prelim, Johannes will have extra office
hours on Friday, October 1, after class from 3:30-4:30pm and on Monday,
October 1 from 10am-12pm. Johannes has no office hours on Tuesday, October
5, the day of the exam.
- 9/30 Assignment
3 is online. The due date for Assignment 3 is Monday, October 18, at
2pm. If you
have not yet found a partner for the assignment send email to johannes@cs.cornell.edu.
- 9/29 Assignment 2 has been
graded. You can pick up your grade from Linda in room 4115 between
8:30-10:00am and 2:30-4:00pm. Don't forget to bring a valid picture ID.
- 9/27 The material for the first prelim (October 5, 7:30pm, Philips 203) has been finalized. The exam will
cover Chapters 1 to 8 in the book. Material in the book that
we did not discuss in class will not be covered in the exam. As exam preparation, work on the exercises at the end of the book chapters. Here are
sample answers to the odd-numbered exercises. (The sample answers are
only available in postscript format.) The sample answers might
contain bugs. Please send email to johannes@cs.cornell.edu
with the descriptions of any mistakes you might find. Here is an updated
list of errors.
- 9/27 Slides for Chapter 7, Chapter 8,
and Chapter 9 are posted. (Six slides on
one page: Chapter 7, Chapter
8, and Chapter 9.)
- 9/24 The test files that were used to grade Assignment 1 are in the
undergraduate lab in the folder \\goose\courses\cs432-fall99\testfilesA1.
If you think that there is a problem with your grade, wait until Monday in
class where Johannes will make an announcement.
- 9/22 Assignment 1 has been graded. You can pick up your grade from Linda
Competillo in room 4115. Please bring your student id for identification.
- 9/17 Johannes' office hours on Monday 9/20 are cancelled. Johannes will
have extra office hours on Wednesday 9/22 from 1-2pm.
- 9/17 A list of frequently asked questions to
assignment 2 is now online. It will be updated periodically.
- 9/13 Assignment 2 is out.
- 9/10 A preliminary class schedule has been
added. The class newsgroup is cornell.class.cs432. Do
not post questions about your individual assignment and do not post
questions that contain (partial) answers or code fragments to the newsgroup.
You can always send any question regarding the assignments to one of the TAs
or the professor and we will give you an individual answer. In addition, we
compile a list of frequently asked questions for each assignment that we
will keep updated.
- 9/3 Johannes' office hours for Monday, 9/6 have been moved to Wednesday,
9/8, 1-2pm. One update for assignment 1: Are fields are left-aligned.
- 9/2 A FAQ for assignment 1 has been
started and will be updated periodically. Assignment 1 has been updated to
reflect some questions.
- 9/1 If you need to sign up for a computer account, please talk to Linda in
room 4115 Upson Hall.
- 9/1 Assignment 1 is out.
- 8/30 The first two sets of slides are online (Chapter
1, Chapter 2; six slides per page: Chapter
1 and Chapter 2). You
can get hardcopies of the first two chapters of the book from Linda
Competillo in room 4115.
- 8/30 Assignment 0 (due Friday, 9/3 in class): Bring a picture of
you with your name on the back. This picture does not have to be made extra
for this class, but it should also not be a picture of your first birthday
or the one from the girl/boy scout trip in the summer of 1990. It can be
color or black-and-white, any size, etc.
- 8/30 Johannes' office hours today are moved to 4-5pm
- 8/30 C++ assignment will be handed out on 9/1. This assignment counts 5% of your overall
grade.
Location
and Hours
Course Description
CS 432/433 provides a basic introduction to the design and development of relational
database management systems (DBMSs). A number of fundamental DBMS concepts will be covered
in the course. You will learn the theory behind database systems, the issues that affect
their functionality and performance, and importantly, what it takes to build a database
system. You do not learn the details of how to use specific commercial databases, or the
intricacies of SQL programming. However, after finishing CS432/CS433, you will be able to
pick up this material from a book if you should need to. You will also be able to find a
great job!
CS432 is not a purely lecture-based course --- there is a significant component
of C++ development. The programming workload is high! If you are also enrolled in CS433,
you will gain further development experience by building full-fledged web-based end-to-end
database applications. In order to get a real understanding of the issues involved in
building database systems, I recommend that you enroll for both CS432 and CS433. If you go
on to work in a job involving database technology, these courses will hold you in good
stead.
Workload
In terms of CS432 workload, here's what the course involves:
- There will be at least four "large" project assignments. In each assignment, you
will be asked to write one component of a simple database system.
- There will be one SQL programming assignment using Microsoft Access.
- There will be three examinations. Two of the examinations will be during evening hours;
the last examination will be during the final exam period. The first two examinations will
not be cumulative, the last examination will be cumulative, but the emphasis will be on
the material covered after the second examination.
Pre-Requisites
CS432 will assume knowledge of material covered in CS211 (Computer and Programming) or
CS212 (Structure and Interpretation of Computer Programs). CS410 (Data Structures) is a
pre-requisite because we will be studying (and implementing) complex disk-based data
structures. If you have not taken CS410, you need to convince me that you have enough
background to pick up this material. You will find that CS414 (Systems Programming and
Operating Systems) will help with some of the advanced topics taught later in the
semester. While this is not a pre-requisite, I do encourage you to attend CS414 along with
this course.
An important pre-requisite is knowledge of C++ programming. C++ will not be taught in
this course, but you are expected to use it for all your assignments. I will expect you to
be comfortable with C++ at the level of CS213. We will be using Visual C++ on Windows NT.
While the NT environment is easy to pick up, C++ is not. If you have used C and are
comfortable with it, you may be able to pick up the necessary C++. If you have never used
C or C++ before, or are not confident of your C++ programming abilities, you must get my
approval to join the course, and I will probably advise you against it. The programming
assignment handed out in the first week of class may help you estimate the level of
programming competence expected.
Development Project
The term project is an important part of the course, and will involve a significant
amount of C++ programming. All projects must be performed in teams of two. The
purpose of the project is for each team to build parts of a working single-user relational
database system. You will start almost from scratch -- a few basic components may be
provided to you. By the end of the course, you will have built a simple DBMS by completing
four separate assignments.
The project uses the MINIBASE
software as its template. In most of the assignments, you will be given C++ class
definitions with function templates. You will need to actually implement the functions. A
significant part of the complexity of software design is specifying the interfaces between
components -- this task is performed for you. However, actually implementing the various
interfaces involves several hundred lines of code. At the end of the project, you will
understand the basic relational DBMS concepts because you have implemented them. Each of
your assignments builds upon the code written in the previous assignments.
At the end of every assignment, you have the option of throwing away your code and
instead using code supplied by the TAs. While this may make it easier for you to complete
the rest of the project, you will lose a specific percentage (20%) of your grade for that
assignment. You do not have to change project partners for every assignment.
The projects and assignments will use Visual C on the NT machines. If you like, you can
do your implementation at home on personal machines -- however, it is your responsibility
to get the code to work on the departmental machines (since the TAs will test the code
here).
FAQ
- Can I take CS432 without CS433?
Yes, there is no rule requiring you take both together. However, I suggest that you do,
since you will learn more from it.
- Can I take CS433 without CS432?
Yes, but I would not recommend it.
- I have not used C before. Should I enroll for the course?
Your best option is to learn C over the next year and enrolling for CS432 in Fall
2000.
- Does CS432 involve a lot of work?
Yes! There is a lot of project work -- which involves programming. Whether you find it
time-consuming or not depends on your comfort with C++ programming. As for the lecture
material, much of it is probably new to you.
- How important is class attendance?
It is crucial. Since I use lecture transparencies, I will provide copies before each
class. However, much of what I teach is not written on the transparencies or directly
available in the book. I urge you to attend class and participate in discussion of the
topics.
Course TextBook
The primary text is : "Database Management Systems (Second Edition, 1999)" by
Raghu Ramakrishnan and Johannes Gehrke. 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 will use in class assignments. The textbook is available in the campus bookstore. I
want to emphasize that the contents of this book do not constitute the syllabus for the
course -- the classroom lectures define the course content, and the textbook is a
reference. Here are other textbooks which provide further background (but they are not
required for the course):
- Korth & Silberschatz: Database System Concepts. McGraw-Hill, Third Edition, 1996.
- Elmasri & Navathe: Fundamentals of Database Systems. Benjamin-Cummings, Second
Edition, 1994 (or Third Edition, 1999)
Grading Policies
The grades for CS432 will be assigned tentatively based on the following percentages:
- Three exams: 40%
- Assignments : 60%
Exams:
- First preliminary exam: October 5. (10%)
Phillips 203, 7:30pm
- Second preliminary exam: November 11. Non-cumulative. (10%)
Phillips 101, 7:30pm
- Final exam: 12/10. Cumulative with emphasis on the last third of the
course. (20%)
Assignments: (If an assignment is worth x%, then the maximum number of points
that you can receive is X.)
- Assignment 0.
- Assignment 1: C++. (5%)
- Assignment 2: SQL. (10%)
- Assignment 3: Buffer Manager (10%)
- Assignment 4: B+-Trees (10%)
- Assignment 5: Relational Operators, Query Optimization, Normalization (No programming,
5%)
- Assignment 6: Joins (10%, programming)
- Assignment 7: Recovery (10%, programming)
Professor
- Johannes Gehrke
- Office Hours: Mondays 1-2pm; Wednesdays 1-2pm, Fridays 1-2pm and by appointment
- Office: 4108 Upson Hall
- Phone: 255-1045
- Email: johannes@cs.cornell.edu
Teaching Assistants
- Yi-Cheng Huang
- Anand Hariharan
- Gautam Aggarwal
- Office Hours: Mondays 10-12pm (11-12: Gautam might be in the
undergraduate lab)
- Office: Upson 328
- Email: gautam@cs.cornell.edu