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.
Lectures will meet on Mondays and Wednesdays at 2200 Young
Hall from 2-4pm. Discussions will meet on Fridays at 2444 Boelter
Hall from
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.
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
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 |
|
One textbook is required for the course:
·
Database System Concepts
Abraham Silberschatz, Henry F. Korth,
and
McGraw-Hill Science/Engineering/Math; 0-07-255481-9; 4th edition (
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.
The final grade will be assigned based on the following criteria:
Written problems: 15%
Project: 30%
Midterm exam: 25%
Final exam: 30%
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.
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.