Course Description

The goal of CS143 is to introduce students to relational database systems (RDB) and teach them how to use RDBs for applications. Through the class, students will learn the RDB model and the SQL language. SQL is the standard language for the creation, query and modification of RDBs. In addition to the practical knowledge of RDB, students will learn the theoretical aspect of RDB including relational algebra, relational design principles (functional dependency and normal forms), and the entity-relationship database design. Finally, students will learn the performance and design aspects of RDB, including disk and file systems, indexes, transactions, and integrity constraints.

To help students digest the materials learned in the class, we will assign:

1.      Written homeworks about every other week.

2.      An implementation project where students build a movie-database system with a Web interface supported by IBM DB2. The project is a significant part of the class and will give students hands-on experience on commercial database systems.

Time and Place

Lectures will meet on Mondays and Wednesdays at 2200 Young Hall from 2-4pm. Discussions will meet on Fridays at 2444 Boelter Hall from 10am-12pm.

Prerequisites

There is no official prerequisite for the class. CS143 should be accessible to a student with a solid Computer Science foundation that includes a reasonable amount of programming and knowledge of basic Computer Science theory (as in CS31/32). Math61 (Discrete Structures), CS180 (Algorithms), and CS131 (Programming Languages) are expected but not absolutely required. The programming project will use Unix, IBM DB2 database management system, and Java programming language. We will assume students are already proficient in Unix and Java, but please note that Java is easy to learn for the students familiar with C++. Our project requires a very limited subset of Java, so you do not need to know all the corners and special cases of Java, and we will provide links to online resources to help you learn the language for the project.

Course Schedule

Lectures will meet on Mondays and Wednesdays at 2200 Young Hall from 2-4pm. Lectures will not be held on Jan. 20th and Feb. 17th. Discussions will meet on Fridays at 2444 Boelter Hall from 10am-12pm.

This is the tentative schedule for the class and the instructor reserve the right to modify the class schedule as needed.

Week

Date

Chapter

Lecture Topic

Projects

1

Jan. 6th

1.1-2, 1.6-8

Introduction

 

 

Jan. 8th

1.3-5, 3.1, 4.11

Relational Model

 

2

Jan. 13th

3.2

Relational Algebra

 

 

Jan. 15th

4.1-2

Basic SQL

 

3

Jan. 20th

 

No Class – Martin Luther King Jr. Day

 

 

Jan. 22nd

4.4-10

More SQL

Project 1 Due

4

Jan. 27th

4.3, 3.3.4, 4.5, 6.1-3

Null, Bag and Constraints

 

 

Jan. 29th

11.1-2, 11.5-7

Disks & Files

 

5

Feb. 3rd

12.8

Views and Indexes

 

 

Feb. 5th

12.1-3

Indexing (B+ Tree)

Project 2 Due

6

Feb. 10th

 

Midterm

 

 

Feb. 12th

12.5-7

Indexing (Hashing)

 

7

Feb. 17th

 

No Class – Presidents Day

 

 

Feb. 19th

2.1-6

ER Model

Project 3 Due

8

Feb. 24th

2.7-9

ER -> RDB

 

 

Feb. 26th

7.1-6

FD, BCNF

 

9

Mar. 3rd

7.7-8

3NF, 4NF (MVD)

 

 

Mar. 5th

15.1-4

Transaction

Project 4 Due

10

Mar. 10th

15.5-9

Transaction (cont.)

 

 

Mar. 12th

9.1-9.6

Object Relational Systems

 

Finals

Mar. 17th

 

Final Exam

 

Books

One textbook is required for the course:

·        Database System Concepts
Abraham Silberschatz, Henry F. Korth, and S. Sudarshan,
McGraw-Hill Science/Engineering/Math; 0-07-255481-9; 4th edition (October 30, 2001)

Students who want to purchase a book about IBM DB2 or the SQL database language may find the folloing books useful, although they are not required textbooks of the course:

·        A Complete Guide to DB2 Universal Database
Don D. Chamberlain
Morgan Kaufmann Publishers; 1-55-860482-0; 1st edition (August 15, 1998)

·        A Guide to SQL Standard
Chris J. Date, with Hugh Darwin
Addison-Wesley; 0-20-196426-0; 4th edition (April, 1997)

There are many useful online resources for DB2, SQL and Java. We will provide some of the useful links on the course homepage.

Grading

The final grade will be assigned based on the following criteria:

Written problems: 15%

Project: 30%

Midterm exam: 25%

Final exam: 30%

Alternate Exams

Please note that routine alternate exams will not be offered in CS143. 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 privately in his office.

Project partners

A significant part of the course activity is to finish an implementation of an online move database supported by IBM DB2. Students my implement the project individually or in teams of two. The choice is up to each student, but please keep the following rules in mind when you select your project partner:

An identical amount of work is expected and the same grading scale is used for individual and team projects. Faculty experience indicates that in general it is not necessarily easier or more productive to work in teams of two - it's largely a matter of personal preference and working style.

If you work in a team, choose your partner carefully. Teams are permitted to "divorce" at any time during the course (due to incompatibility, one partner dropping the course, or any other reason), and individual students may choose to team up as the project progresses, however students from divorced teams may not form new teams or join other teams. Put another way, if a student turns in any part of the project as part of a team, every later part of the project must be turned in individually or as part of the same team.

Both partners in a team will receive exactly the same grade for each project part turned in jointly. We will not entertain any complaints of the form "I did all the work and my partner did nothing." Choose your partner carefully!

If you work in a team, your work must be turned in jointly, as one submission. Teamwork turned in as individual work will be considered as plagiarism and handled through official University channel.