CS145 - Spring 2003
Introduction to Databases
CS145 provides the student with a comprehensive introduction to the
design of databases and the use of database management systems for
applications. We will cover the relational model and XML, including
the XML query languages XPath and XQuery, and SQL - the standard
language for creating, querying, and modifying relational and
object-relational databases. From a more theoretical perspective we
will cover relational algebra, relational design principles based on
functional dependencies and normal forms, and higher-level approaches
to database design. A variety of other issues important to database
designers and users will be covered, including indexes, views,
transactions, authorization, integrity constraints, and triggers.
Finally, we will consider several advanced topics such as data
warehousing and data mining, data stream processing, temporal
databases, Datalog, XSLT and XML Schema, middleware and application
servers, or peer-to-peer systems.
Online exercises in all topics and written challenge problems are
complemented by a significant programming project in which students
build a database-backed online auction system with a Web interface.
Details of assigned work are provided on a
separate page.
CS145 meets Mondays and Wednesdays, 11:00-12:15, in Gates B01 (the
Hewlett-Packard Auditorium). The first class is on Wednesday April
2nd.
Most weeks there will be an optional help session covering topics
ranging from programming issues to exercise hints and discussion.
Help sessions are Mondays 4:15-5:05 PM in Terman 156 and live on
Channel E2.
CS103B/X (Discrete Structures) and CS107 (Programming
Paradigms) are expected but not absolutely required. CS145 should be
accessible to anyone with a solid Computer Science foundation that
includes a reasonable amount of programming (as in CS107) and
knowledge of basic Computer Science theory (as in CS103). The
programming project will use Unix, the Oracle database management
system, the Java programming language, and a small amount of Web
programming. We will assume that students are already proficient in
Unix and Java. Previous experience with Oracle or with Web
programming is not needed.
One textbook is required for the course. You may purchase either of
the two books listed below. A First Course consists of the
first ten chapters of The Complete Book, verbatim, and we will
be using only those chapters in CS145. However, if there is any
chance you will eventually take CS245 (Database System Principles),
then you should purchase The Complete Book, which is the
required textbook for that course.
- A First Course in Database Systems, Second Edition
J.D. Ullman and J. Widom; Prentice Hall, 2002
Book Web site
- Database Systems: The Complete Book
H. Garcia-Molina, J.D. Ullman, and J. Widom; Prentice Hall, 2002
Book Web site
The first two chapters of the textbook may be downloaded
for free, if you are unsure whether you will enroll in the course.
Please note
that the first edition of A First Course (Prentice Hall, 1997),
although a useful resource, has a number of differences from the
second edition. We will assume that all students are using the second
edition, or equivalently are using The Complete Book.
Students may also opt to purchase a book about the SQL database
language, although you should be aware that Oracle's version of SQL,
which we will be using, may differ slightly. One reasonably good SQL
guide is:
- A Guide to the SQL Standard (4th edition)
C.J. Date and H. Darwen, Addison-Wesley, 1997
There are numerous other books on SQL available, as well as an entire
shelf at the Stanford Bookstore devoted to books on Oracle.
Copies of The Complete Book and the SQL guide mentioned
above are on reserve at the Math and CS library (Building 380, 4th
floor).
The components of the final grade will be distributed as follows:
- Online exercises: 20%
- Written challenge problems: 5%
- Programming project: 25%
- Midterm exam: 20%
- Final exam: 30%
More detailed information on grading of online exercises, challenge
problems, and projects is provided in the Assigned
Work page.
Students earning an A+ in the course (typically 3-5 students) will
receive a personal letter of congratulations from the instructor,
along with an invitation to enjoy lunch at the Stanford Faculty Club
with Prof. Widom, the TA's, and the other A+ students. The A+
students also will be top candidates for CS145 TA positions in
subsequent offerings of the course.
Incompletes are not offered as a grade option in CS145. Students
are given incompletes only in the rare case of an incapacitating
medical condition arising during the quarter and brought to the
attention of the course staff in a timely fashion.
Students may be tempted to take another course at the same time as
CS145 by watching lectures online and scheduling alternate exams. As
stated in the Exams page, routine alternate
exams will not be offered in CS145. The university strongly
discourages students from enrolling in two classes given at the same
time, and instructors are under no obligation to accommodate such
students. If you provide an extraordinarily compelling case then an
alternate exam may be given, but alternate exams are always oral
exams given by the instructor.
Special Note for SCPD Students
|
While we understand the significant demands of taking a course while
working, we would like to make it clear at the outset that no special
exceptions can be made for SCPD students. Local SCPD students must
follow the lectures, turn in the assignments, and attend the exams on
exactly the same schedule as on-campus students. SCPD students are
graded using the same criteria as on-campus students. Please ensure
in advance that you will not have any business trips or important
deadlines that conflict with the course, since no exceptions will
be made. Also note that like on-campus students, for emergencies
you are allocated four unpenalized late days for assignments (see the
Late Policy in the Assigned Work page).