![]() Computer Science Dartmouth College |
Computer Science 33 |
Spring 2010Under Construction |
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: Thu 4-5pm, Fri 1:30-2:30pm, or by appointment |
Teaching Assistants |
James Hughes | Sudikoff 157 | 6-8743 |
Office hours: Wed 6-8pm, Sun 7-9pm, or by appointment
|
Textbook (Required) |
"Database System Concepts," Fifth or Sixth 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, depending on our pace during the lectures. In particular, required readings before each class may need to be updated. Please do keep up with these readings from the textbook, because there is plenty of material in the textbook that I won't get to cover directly in class, but that you will be responsible for, in your homework, quizzes and final exam. The chapter and section numbers below refer to the Sixth Edition of the textbook, and not the Fifth Edition.
Please make it a habit to check this website often, and please remember to hit the RELOAD button to get the latest version.
Any part of the schedule that is greyed out is tentative and subject to change.
Lecture # |
Reading Due |
Homework |
Topics Covered in |
|
1. | Mar 29 | — | Course overview: Things to think about when designing a database system | |
2. | Mar 31 | Chap. 1 | The relational model; The fundamental operators of relational algebra | |
3. | Apr 2 | Chap. 2 | Extended relational algebra operators; Null values; DB modification | |
4. | Apr 5 | 6.1 | SQL I: Language basics; The set operations | |
5. | Apr 7 | 3.1-3.5 | SQL II: Aggregation; Null values; Nested subqueries | |
6. | Apr 9 | SQL III: Complex queries; Views; DB modification | ||
7. | Apr 12 | HW1 | SQL IV: Types; Integrity constraints; Authorization | |
8. | Apr 14 | Chap. 4 | Embedded SQL; Dynamic SQL | |
Apr 15 (X-hr) | Quiz 1: Closed notes, in class | |||
9. | Apr 16 | Chap. 5 | Overview of relational calculus and QBE | |
10. | Apr 19 | Chap. 6; C.1 | HW2 | Overview of the Entity-Relationship model |
11. | Apr 21 | Chap. 7 | Normal forms I | |
12. | Apr 23 | Normal forms II | ||
13. | Apr 26 | HW3 | Normal forms III | |
14. | Apr 28 | Chap. 8 | Normalization; Application design, Web interfaces, PHP/CGI/Javascript | |
Apr 29 (X-hr) | Quiz 2: Closed notes, in class | |||
15. | Apr 30 | Organizing storage; RAID | ||
16. | May 3 | Proj 1 | File structure; Minimizing disk access; Intro to indexing | |
17. | May 5 | Stage 1 project presentations | ||
18. | May 7 | Indexing: B+ trees | ||
19. | May 10 | Proj 2 | Hashing; Trees vs Hashing | |
20. | May 12 | Indexing wrap-up; Query processing I: selection, sorting | ||
21. | May 14 | Query processing II: joins, hash join | ||
22. | May 17 | Proj 3 | Query optimization (overview) | |
23. | May 19 | 13.1 – 13.2 | Transactions; ACID properties; Serializability | |
May 20 (X-hr) | Quiz 3: Closed notes, in class | |||
24. | May 21 | Chap. 14 | Concurrency Control I | |
25. | May 24 | 15.1 – 15.6 | HW7 | Concurrency Control II |
26. | May 26 | Chap. 15 | Failures; Recovery; Logging | |
27. | May 28 | Chap. 16 | Open session (bring your questions!) | |
28. | Jun 2 | Proj Rep | Final project presentations (9:00 – 11:05) | |
Jun 4 | Final Exam: Open notes, in class, 8:00 – 11:30 am |
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!