||CS145 Introductory Information
The purpose of this course is to offer the student an introduction to
the design and use of database systems.
We cover object-oriented and entity-relationship approaches to design,
followed by an overview of the relational model, how the OO and E/R
models are expressed as relations, and how one uses a relational
database system to create a database.
SQL (Structured Query Language), the standard query language for
relational databases will be learned and experienced.
We shall also learn some other database languages, both concrete and
abstract, including relational algebra, Datalog, OQL (the
object-oriented database emerging standard), and parts of SQL3 (the next
A Course outline is available.
It is not our goal to study database system implementation (e.g.,
how to build a system that processes SQL queries efficiently).
Study of that very important subject begins in CS245A.
Time and Place
Tuesdays and Thursdays, 9:30--10:45, Skilling Aud.
Mondays, 7PM in Bldg. 260, Room 011.
Yu-May Chang will conduct these sections.
They will not be televised, but SITN students are welcome to attend.
Gates||(415) 725-4802||10:45AM -
12:15PM, Tues. and Thurs.|
ullman @ cs.stanford.edu
||11AM-12:30PM, Mon. and Weds.|
ymc @ leland.stanford.edu
||12:30-2PM, Mon., 2:30-4PM Weds.|
ankur @ cs.stanford.edu
winkler @ cs.stanford.edu
CS 107 (programming languages) and
CS 109B (introductory CS theory)
Please discuss the matter with the instructor if you do not have
something like these courses.
Programming assignments will use the Oracle relational database
management system and the C or C++ programming language.
We do not yet have the details regarding how Oracle will be accessed
(previous editions of CS145 used a Sybase system instead).
However, we expect that we will use one of the clusters of
Unix workstations on the second floor of Sweet Hall. To open an
account on these machines, type
open at the
and follow the instructions.
We shall assume that students are proficient already
with Unix and C. (C++ is not required, but it is allowed for those
who prefer to use it.)
SITN students can access the Unix workstations remotely via dial-in (try
telnet. If you have access to a Unix workstation at your site,
including a full-fledged relational database management system
that has an SQL interactive interface and a C
application programming interface, then you may use your workstation.
However, we will not make any exceptions for problems incurred by
using your own computing facilities rather than those provided by
The text for the course is A First Course in Database
Systems by J. Widom and J. D. Ullman, Prentice-Hall, 1997.
Copies have been ordered and are now in the Stanford Bookstore.
Students may also wish to purchase an SQL2 manual.
Two recommended books are:
These and several other books will be on reserve at the Math-CS library
(Bldg.~380, 4th floor).
Understanding the New SQL: A Complete Guide
J. Melton and A. R. Simon, Morgan-Kaufmann, 1993.
A Guide to the SQL Standard (third edition)
C. J. Date and H. Darwen, Addison-Wesley, 1994.
It is more succinct than the Melton-Simon book, but I personally find it
a more useful summary of the SQL language.
There is a class newsgroup,
You should put this name in your
It is possible to mail to the newsgroup by sending email to
su-class-cs145 @ news.stanford.edu.
We hope that such messages will be limited to notes of general interest
to the class.
Please check this newsgroup frequently for information
concerning the course; we shall assume that all students are reading
the newsgroup regularly.
If you need a quick answer to a question, try sending email to
cs145-help @ lists.stanford.edu.
This list forwards to the TA's and instructor, and with luck you'll
get a reply in a few minutes.
We are using the Webclass server to post grades.
You should register by accessing the CS145 page
A feature (or bug?) of CS145 is that everyone writes their own database
You do some work on the project each week, beginning with selecting
your application, designing the database, obtaining and loading your
data into a commercial database system, and finally writing a number of
SQL queries, C programs with embedded SQL queries, and exercising other
features of SQL.
Some conventional homework questions will be assigned each week, along
with a step of your database application.
Midterm: In class, Thursday May 8, 1997, 9:30AM - 10:45AM.
TV students may take it at work or in class (their choice).
Final: Tuesday, June 10, 1997, 12:15PM - 3:15PM.
On campus, location to be determined (but probably Skilling Aud.).
All local TV students must come to campus.
The approximate weights of the four components are:
The assignments will generally be given out on Tuesday and due the
Assignments should either be handed in in class on the day due or given
to Ms. Winkler by 5PM on that day.
No late assignments will be accepted, but each student is entitled to one
free extension of at most 48 hours.
Exceptions to this policy must be supported by a doctor's note or other
In previous quarters, there has been difficulty using the L&IR-provided
database system; it tends to collapse under heavy load just before
assignments are due.
This quarter, the system has been changed, and we hope that the problems
will go away.
However, database systems are not designed with the model of 100
students all trying to create and load databases at the same time, so we
cannot be sure what will happen.
In the past I have had to stagger the due dates and times for critical
assignments based on the first letter of your last name.
I may have to do so again.
Please be prepared for that possibility.
The basic presumption is that the work you do is your own.
Occasionally, especially when working problem sets or
writing programs (but never on exams!), it may be
necessary to ask someone for help.
You are permitted to do so, provided you meet the following two
Any other assistance by another person constitutes a violation
of the honor code and will be treated as such.
You acknowledge the help on the work you hand in.
You understand the work that you hand in, so that you could explain
the reasoning behind the parts of the work done for you by another.
We shall not deduct credit for small amounts of acknowledged assistance.
Even working as a team on one of several problems in a problem set will
not hurt your grade, as long as all members of the group acknowledge
Such shared interest can be beneficial to all concerned.
We do reserve the right to give less than full credit in circumstances
where it appears that there has been large-scale division of labor, and
you are not getting as much learning out of the assignment as you should.
However, as long as you acknowledge your sources, you cannot get into
Honor Code trouble.
If you have any questions about what this policy means, please discuss
the matter with the instructor now.