This course is aimed at database design and use, and the implementation of database applications. It does not cover the implementation of database management systems. This topic is covered in the follow-on courses CS245 (formerly CS245A) and CS346 (formerly CS245B).
The following book is recommended (but not required): A Guide to The SQL Standard by C. J. Date and H. Darwen, Addison-Wesley, 1997.
In addition, there will be an optional help session held on Mondays 2:15-3:05, Skilling 193, televised live on channel E2. The session will be conducted by the TA's and is entirely optional. During the session, the TA's may work problems and/or answer student questions, but they will not deliver a prepared lecture. If you attend the session (live or via television), please come armed with questions or discussion points.
Instructor | Jun Yang
Office: Gates 419 Phone: 725-3358 |
Office Hours:
TUE 9:45-10:45AM THU 12:15-1:30PM SUN 3:45-4:45PM |
TA | Erik Haugen
Office: Gates 193 Phone: TBD |
Office Hours:
MON 3:10-5:10PM Office Hours in Sweet Hall: THU 9:00-11:00PM |
TA | Charity Lu
Office: Gates 193D Phone: 725-3256 |
Office Hours:
WED 10:00AM-12:00PM THU 2:30-4:20PM |
TA | Mark Pearson
Office: Gates 193A Phone: 723-6059 |
Office Hours:
TUE 1:30-3:00PM Office Hours in Sweet Hall: FRI 2:15-3:45PM |
TA | Michael Sawka
Office: TBD Phone: TBD |
Office Hours:
TBD |
Grader | Ramana Yerneni | |
Secretary | Marianne Siroker
Office: Gates 436 Phone: 723-0872 |
During the first lecture, we will pass around a sign-up sheet for Oracle accounts. If you missed the first lecture, send an email containing your leland login name to cs145@cs.stanford.edu in order to get your Oracle account set up.
If you have one available, you may use a system other than Stanford's Oracle, or you may use a non-standard interface to Oracle (e.g., through ODBC or JDBC). Be warned, however: You are responsible for ensuring that the system and/or interface you use supports all the same features as Oracle version 8.0.4. Those features include but are not limited to support for interactive and embedded full-feature SQL, indexes, transactions, authorization, views, constraints, and triggers. If you use a different system and then discovers that it does not offer the features needed for the class, you will need to port your project to the Stanford Oracle system at that time. We will not be able to provide support or answer system-specific questions for any system or interface other than Stanford's Oracle C/C++ system.
The course newsgroup is su.class.cs145. The newsgroup is accessible from any Unix machine on campus via the NNTP server nttp.stanford.edu. Please check the course newsgroup frequently---we will assume that all students are reading the newsgroup at least every couple of days, and we will not hesitate to make important announcements via the newsgroup. If you are unable to read the newsgroup or prefer to receive news messages as emails, please run /usr/class/cs145/bin/news-subscribe from leland machines to set up your subscription. (To unsubscribe, run /usr/class/cs145/bin/news-unsubscribe.)
All questions or messages from students that could be of general interest to the class should be posted to the newsgroup. This includes, for example, any technical questions regarding lecture material, reading, homework problems, upcoming exams, etc. We very much encourage students in the class to post responses to questions. We will monitor the newsgroup regularly, and post responses to questions that have not previously been asked or answered. Before sending a question, please do make sure that you've read all previous news messages and that your question has not yet been discussed. To post a message, either use your favorite newsreader or run /usr/class/cs145/bin/news-post from leland machines.
Private email regarding the course should be sent to cs145@cs.stanford.edu. This address is only for questions applying to an individual student (e.g., my Oracle password seems to have changed, or I didn't get back my graded assignment). These messages will be read by course staff.
You could also email individual TA's or the instructor directly. However, private email addresses will not be monitored for course-related messages, so there may be significant delay.
Submission Instructions and Late Policy
On-campus students: WA is due at 5:00 PM on Thursday (a week after it is assigned). It should be turned in during class or at the course secretary's office, Gates 436. PA is due at 11:59 PM on the date specified in the assignment handout. It should be turned in electronically; see /usr/class/cs145/bin/submit-README for instructions. Late submissions will not be graded.
SITN students: The policy for PA is the same as for on-campus students as specified above. For WA, assignments due on Thursday must be timestamped by the Friday courier; assignments timestamped later than Friday will not be accepted.
For emergencies: Each student is allocated two "chits". One chit may be used to turn in a WA on the Monday after its due date; or it may be used to turn in a PA up to three days late. Two chits cannot be applied to the same assignment. We will keep track of your chits automatically.
Graded Assignments and Sample Solutions
Graded WA's will be available outside the course secretary's office, Gates 436. SITN WA's will be returned via couriers. WA sample solutions will be posted on the class Web page. PA grades will be emailed to individual students directly.
The course staff will try to grade and return all assignments within 7 to 12 days after they are submitted. Since there are nearly 200 students in the class, sometimes it might not be possible to return everything within a week. Please be understanding when delays happen occasionally.
Written assignments | 15% |
Programming assignments | 30% |
Midterm exam | 20% |
Final exam | 35% |
Week | Date | Topic | Reading |
1 | March 30 | Intro, E/R model | 1 |
April 1 | More E/R | 2.2-2.6 | |
2 | April 6 | ODL | 2.1, 2.3-2.5 |
April 8 | Relational model & design | 3.1-3.4 | |
3 | April 13 | FD's and BCNF | 3.5-3.6, 3.7.1-3.7.5 |
April 15 | Relational algebra | 4.1 | |
4 | April 20 | SQL: SPJ queries | 5.1-5.7 |
April 22 | SQL: subqueries, aggregates, modification | ||
5 | April 27 | SQL: tables, keys, views, indexes | 5.8 |
April 29 | Midterm exam | ||
6 | May 4 | SQL: NULL's, constraints, triggers | 5.9, 6 |
May 6 | SQL: programming | 7.1 | |
7 | May 11 | SQL: transactions | 7.2 |
May 13 | SQL3: object-relational features | 8.5-8.6 | |
8 | May 18 | SQL3: recursion | 5.10 |
May 20 | SQL3: recursion (cont'd) | ||
9 | May 25 | Theory of decomposition, 3NF, MVD's, 4NF | 3.7.5-3.7.7, 3.8 |
May 27 | ODL | 8.1-8.3, 8.7 | |
10 | June 1 | Warehousing, mining, XML/XQL, search engines | |
11 | June 8 | Final exam |
Jun Yang | CS145 Spring 1999 |