Lecture Slides and Other Class Material | Sample Solutions to UW Problems | Term Project Info | Project Teams | Web Interface Options
This course surveys the theory and practice of database system construction. Ideally we will contrast current practice with what should be, as conjectured by the participants. Everyone gets to put his or her ideas into practice through a modest-size implementation project.
Prof. Bob Keller, 1249 Olin (office hours 2-4 TuTh, or whenever), keller@cs.hmc.edu, x 18483
I wish, but it does not seem likely.
Fundamental models of databases: entity-relationship, relational, deductive, object-oriented. Relational algebra and calculus, query languages. Data storage, caching, indexing, and sorting. Locking protocols and other issues in concurrent and distributed databases. Prerequisite: Computer Science 70 and 81 (131 recommended). 3 credit hours. (First semester, alternate years.)
Class participation (10%), Homework and quizzes (30%), Oral midterm exam (20%), Individual database development project (40%).
The oral exam will be conducted one-on-one and will be based on homework and assigned reading topics.
The required text is:
UW Jeffrey D. Ullman and Jennifer Widom, A first course in database systems, 2nd Edition, Prentice-Hall, 2003, ISBN 0-13-035300-0.
CB Hector Garcia-Molina, Jeffrey D. Ullman and Jennifer Widom, Database Systems, The Complete Book, Prentice-Hall, 2002, ISBN 0-13-0331995-3. The first ten chapters of this book are the same as UW. This book adds another 600 pages, which focus on physical aspects of database querying, distributed transactions, etc. I will lecture on some, but probably not all, of this material. If you want to get this book instead, it is ok.
DAP Clifton Nock, Data Access Patterns: Database Interactions in Object-Oriented Applications. Addison-Wesley, 2004, IBN 0-13-140157-2. Describes various software-engineering patterns for database access.
This outline is
tentative. As the course has not been taught for awhile, I reserve the right to
make modifications.
Approx.
Lecture
|
Topic
|
Reading
|
What
is it?
|
|
1 |
Overview and history of data models |
UW ch 1 |
The thinking that went into database models and how we got to today. |
|
1 |
Entity-Relationship (E/R) model |
UW ch 2 |
A model for structuring data that tries not to be implementation specific. |
|
2 |
E/R vs. UML modeling |
|
UML is the unified modeling language used in software engineering. A lot of the same kind of thinking went into it as into E-R modeling. |
|
3 |
Relational model |
UW ch 3 |
The predominant database structure model on the planet. |
|
4 |
Normalization |
UW ch 3 |
Accurately representing an enterprise with a database schema. |
|
5 |
Object-oriented model |
UW ch 4 |
An alternative way to approach databases integrates with object-oriented programming. |
|
6 |
Functional model |
Another way to approach database querying. |
|
|
7 |
Relational algebra |
UW ch 5 |
An algebraic viewpoint of how a relational database is queried. |
|
8 |
Relational calculus and SQL |
UW ch 6 |
A query method loosely based on predicate calculus, and the standard language for this purpose. |
|
9 |
Views, aggregate operators |
UW ch 6 |
A view is a virtual relation. An aggregate operator is one that derives an answer based on an entire relation rather than on individual tuples. |
|
10 |
Constraints and triggers |
UW ch 7 |
A constraint is a requirement about the data that can be entered in the database. A trigger is a way to deal with attempts to violate constraints, or for triggering other occurrences of specific combinations. |
|
11 |
System aspects of SQL |
UW ch 8 |
Pragmatic information about using SQL. |
|
12 |
Object-oriented query languages |
UW ch 9 |
Techniques for integrating database with object-oriented programming. |
|
13 |
Logical query languages |
UW ch 10 |
Techniques for exploiting the logical aspects of data organization. |
|
14-16 |
Physical structure and query mechanisms |
CB ch 11-15 |
What happens under the hood. |
|
17 |
Transaction processing |
CB 17 |
Transactions provide the means for organizing concurrent access to databases. |
|
18 |
Concurrency control |
CB 18 |
How to ensure integrity in the face of concurrent updates. |
|
19 |
Distributed databases |
CB 19 |
Dealing with issues such as deadlock that occur when segments of the database are physically distributed. |
|
20 |
Temporal databases |
Special considerations for databases oriented to dealing with time-based events. |
|
|
21 |
Spatial databases |
Special considerations for databases oriented to dealing with geographic or spatial relationships. |