CS145 - Autumn 2009
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, relational algebra,
and SQL, the standard language for creating, querying, and modifying
relational and object-relational databases. We will also learn about
XML data, including the XML languages XPath, XQuery, and XSLT. The
UML approach to database design will be covered, as well as relational
design principles based on functional dependencies and normal forms.
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
cover several advanced topics such as data warehousing, data mining,
and others.
Automated exercises, query exercises, and written challenge
problems are complemented by a 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, 9:30-10:45, in Skilling
Auditorium. The first class is on Monday September 21.
Class attendance: Class attendance is strongly encouraged
for all on-campus students. SCPD students are also permitted to attend
class. We will not take roll in class, and attendance is not a
component of the final grade (see Grading below). However, in
the case of borderline grades at the end of the quarter, for on-campus
students class participation can be a determining factor.
Many weeks there will be an optional TA-led, SCPD-broadcast help
session, usually covering topics related to current assignments. Help
sessions are on Fridays from 1:15-2:05 in Skilling 193, beginning the
second week of class.
CS103 (Mathematical Foundations of Computing) and CS107
(Computer Organization and Systems) are recommended 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, Java, the MySQL
database management system, and some straightforward PHP web
programming. We will assume that students are already proficient in
Unix and Java. Previous experience with MySQL or PHP is not
needed.
Copies of The Complete Book and the SQL guide mentioned
below are on reserve at the Math and CS library (Building 380, 4th
floor).
Main textbook
One textbook is required for the course. You may purchase either of
the two books listed below. A First Course consists of the
first twelve chapters of The Complete Book, verbatim, and we
will be using only those chapters in CS145. The Complete Book
is the required textbook for CS245 (Database System Principles). If
there is any chance you will eventually take CS245, or if you wish to
have a comprehensive reference that covers databases from a systems as
well as a user perspective, then you should purchase The Complete
Book. Otherwise, A First Course suffices for CS145.
- A First Course in Database Systems, Third Edition (book web
site)
J.D. Ullman and J. Widom; Prentice Hall, 2008
- Database Systems: The Complete Book, Second Edition (book web site)
H. Garcia-Molina, J.D. Ullman, and J. Widom; Prentice Hall, 2008
The first two chapters of the textbook may be downloaded for free from
either of the book web sites linked above, if you are unsure whether
you will enroll in the course.
NOTE: Previous editions of these textbooks, although a
useful resource, differ significantly from the latest (2008) editions.
We will assume that all students are using the third edition of A
First Course, or equivalently the second edition of The
Complete Book.
SQL Guide
Students may also opt to purchase a book about the SQL database
language, although you should be aware that MySQL'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 some books
devoted specifically to the MySQL system.
Course Reader
The CS145 course reader available at the Stanford Bookstore contains
all lecture notes and demo transcripts for the class. While this
material is also available via the course website, we recommend that
students purchase a course reader -- copies of lecture notes will
not be provided in class.
As part of your assigned work, you will be using the Gradiance
system. Gradiance performs automated generation and grading of
exercises, as well as interactive grading of SQL labs. Gradiance is a
commercial system launched by Prof. Jeff Ullman and others, now
partnered with Pearson Education.
There are two ways for you to buy access to Gradiance. You can
purchase the "ValuePack" textbook at the Stanford Bookstore, which
includes Gradiance access (ISBN #0137135262 for A First Course;
ISBN #0138155046 for The Complete Book). Alternatively, you
will be able to purchase Gradiance access separately for about $33 --
details will be provided in class.
The components of the final grade will be distributed as follows:
- Automated exercises and labs: 20%
- Written challenge problems: 7%
- Standalone query assignments: 8%
- Programming project: 20%
- Midterm exam: 20%
- Final exam: 25%
As mentioned in Time and Place above, although class attendance
is not a component of the final grade, in borderline cases for
on-campus students it can be a determining factor.
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.
|
Students with Documented Disabilities
|
Students who may need an academic accommodation based on the impact of
a disability must initiate the request with the Student
Disability Resource Center (SDRC) located within the Office of Accessible
Education (OAE). SDRC staff will evaluate the request with
required documentation, recommend reasonable accommodations, and
prepare an Accommodation Letter for faculty dated in the
current quarter in which the request is being made. Students should
contact the SDRC as soon as possible since timely notice is needed to
coordinate accommodations. The OAE is located at 563 Salvatierra Walk;
phone 723-1066.
|
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. SCPD students must follow
the lectures, turn in the assignments, and take the exams on exactly
the same schedule as on-campus students. (Bay Area SCPD students are
required to attend the exams on campus.) 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).