Lecture Slides and Other Class Material | Sample Solutions to UW Problems | Term Project Info | Project Teams | Web Interface Options

Harvey Mudd College
 Computer Science 133

Spring 2004

Databases

What this course is about

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.

Instructor

Prof. Bob Keller, 1249 Olin (office hours 2-4 TuTh, or whenever), keller@cs.hmc.edu, x 18483

Graders

I wish, but it does not seem likely.

Catalog Description

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.)

Requirements and Grading

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.

Textbook

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.

Other Useful References:

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.

Course Outline

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

link

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

links

Special considerations for databases oriented to dealing with time-based events.

21

Spatial databases

links

Special considerations for databases oriented to dealing with geographic or spatial relationships.

Database Management Systems to be Used

PostgreSQL
Some kind of object-oriented system (TBD)

Links

o          How Databases Changed the World

o          PostgreSQL Users Guide and Documents

o          Stanford Database Group

o          IBM Almaden

o          Database Bibliographies

o          Computer Science Bibliography

o          Asilomar Report on Database Research (August 1998)

o          UC Berkeley DB Research

o          University of Pennsylvania

o          DB Research Groups

o          XML Representation of a Relational Database

o          XML Data Model

 

SQL Tutorials

Object Databases

Logic Databases

Miscellany