![]() Computer Science Dartmouth College |
Computer Science 33 |
Spring 2009 |
In this course we shall study the management of large bodies of data or information. During the first half of the course, we shall study on schemes for the representation, manipulation, and storage of complex information structures as well as algorithms for processing these structures efficiently and for retrieving the information they contain. In particular, we shall spend considerable time on relational algebra, SQL, database normalization, indexing and hashing.
In the second half of the course, we shall study — at a high level — the issues raised when databases are shared by several users and/or several computers. This includes such topics as transaction processing, robustness guarantees against failure, security and data integrity guarantees from unauthorized access, privacy. Time permitting, we might also consider data mining, warehousing and object-oriented schemes for multimedia data.
It is expected that a student who enrols for this course already knows how to program and is comfortable working within a UNIX-like environment. Some degree of mathematical maturity will be required for the more theoretical aspects of the course.
Lectures |
Sudikoff 115 | 10 hour | Mon-Wed-Fri 10:00-11:05, X-hr Thu 12:00-12:50 |
Instructor |
Amit Chakrabarti | Sudikoff 107 | 6-1710 | Office hours: TBA, or by appointment |
Teaching Assistants |
Qi (Tracy) Gu | Sudikoff 220 | 6-8752 |
Office hours: TBA, or by appointment
|
Textbook (Required) |
"Database System Concepts," Fifth Edition. Avi Silberschatz, Henry F. Korth, S. Sudarshan. |
Prerequisites |
CS 23 |
Work |
Homeworks, roughly one a week [20 points] Three in-class quizzes [30 points] Class project [25 points] Final exam [25 points] Please take note of the late homework policy. It will be enforced, strictly. |
This schedule will be updated frequently. Please check back often, and please remember to hit the RELOAD button to get the latest schedule.
Any part of the schedule that is greyed out is tentative and subject to change.
Lecture Number |
Reading Due |
Homework |
Topics Covered in |
||
Week 1 |
1 | Apr 01 | —— | —— |
Course overview: Things to think about when designing a database system
|
2 | Apr 03 | Chapter 1 | —— |
The relational model; The fundamental operators of relational algebra
|
|
Week 2 |
3 | Apr 06 | 2.1 – 2.3 | —— |
Extended relational algebra operators; Null values; DB modification
|
4 | Apr 08 | Chapter 2 | —— |
SQL I: Language basics; The set operations
|
|
5 | Apr 10 | 3.1 – 3.4 | —— |
SQL II: Aggregation; Null values; Nested subqueries
|
|
Week 3 |
6 | Apr 13 | 3.5 – 3.7 | HW1 |
SQL III: Complex queries; Views; DB modification
|
7 | Apr 15 | Chapter 3 | —— |
SQL IV: Types; Integrity constraints; Authorization
|
|
Apr 16 (X-hr) | 4.1 – 4.3 | —— |
Quiz 1: Closed notes, in class
| ||
8 | Apr 17 | 4.1 – 4.3 | —— |
Embedded SQL; Dynamic SQL
|
|
Week 4 |
9 | Apr 20 | Chapter 4 | HW2 |
Overview of relational calculus and QBE
|
10 | Apr 22 | —— | —— |
Overview of the Entity-Relationship model
|
|
11 | Apr 24 | Chapter 5 | —— |
Normal forms I
|
|
Week 5 |
12 | Apr 27 | Chapter 6 | HW3 |
Normal forms II
|
13 | Apr 29 | 7.1 – 7.5 | —— |
Normal forms III
|
|
Apr 30 (X-hr) | 4.1 – 4.3 | —— |
Quiz 2: Closed notes, in class
| ||
14 | May 01 | Chapter 7 | —— |
Normal forms IV
|
|
Week 6 |
15 | May 04 | Chapter 8 | Project, Stage 1 |
Stage 1 project presentations
|
16 | May 06 | Chapter 11 | —— |
Application design, Web interfaces, PHP/CGI/Javascript
|
|
17 | May 08 | 12.1 – 12.5 | —— |
Organizing storage; RAID
|
|
Week 7 |
18 | May 11 | Chapter 12 | Project, Stage 2 |
File structure; Indexing: B and B+ trees
|
19 | May 13 | —— | —— |
Hashing; Trees vs Hashing
|
|
20 | May 15 | —— | —— |
Indexing wrap-up; Query processing I
|
|
Week 8 |
21 | May 18 | Chapter 13 | Project, Stage 3 |
Query processing II; Query optimization
|
22 | May 20 | Chapter 14 | —— |
Transactions; Atomicity; Durability
|
|
May 21 (X-hr) | 4.1 – 4.3 | —— |
Quiz 3: Closed notes, in class
| ||
23 | May 22 | 15.1 – 15.3 | —— |
Concurrency: The important issues
|
|
Week 9 |
24 | May 27 | Chapter 15 | HW6 |
Concurrency Control
|
25 | May 29 | Chapter 16 | —— |
Failures; Recovery; Logging
|
|
26 | Jun 01 | Chapter 17 | —— |
Final project presentations
|
All homework is to be submitted electronically, using a homework submission form. Click here to get to that form.
The homework submission system is still experimental. Please use it only as instructed, for everyone's safety!