Student Originated Software 1997-1998
Winter Quarter

A Software Engineering Course at
The Evergreen State College

Introduction to Database Systems Syllabus

Tuesday & Thursday, 9-12
LIB 1316 & ACC

In this advanced computer science course, we will study database systems and interoperablity. Database management has evolved from a specialized computer application to a central component of modern computing environments. This part of SOS is intended to give an understanding of fundamental concepts of database management, including database design, languages, and system implementation. Specific topics are: conceptual, logical and physical design (including entity relationship modeling); the relational data models (vs. network or hierarchical); the relational algebra and calculus, and SQL; integrity constraints and enforcement (including domain constraints, inclusion dependencies and functional dependencies); normalization; storage, file, and search structures; indexing and hashing; query processing and query optimization; logging and recovery and transaction management; and concurrency control.

During the first five to six weeks we will explore traditional database concepts and their implementation in a relational system (Microsoft ACCESS). The five week introduction concepts and technology will start where our data modeling fall quarter left off. After studying the relational data model, we will see how a logical data model can be mapped onto it, and how the model can be refined or "normalized" so that the database design meets certain "goodness" criteria, e.g., "The key, the whole key and nothing but the key, so help me Codd". We will study SQL (Structured Query Language the de facto standard schema definition language) and see why the relational model meets important theoretical objectives that allow for query optimization and helps assure other desirable properties. Finally, we will look inside the DBMS -- at how they are built, and learn why DBMSs are like operating systems and compilers -- storage and file structures, indexing and hashing, query processing, transactions, concurrency control, recovery. Because this component of the program assumes some familiarity with basic data structures, computer organization, operating systems, and a high-level programming language, material will be presented at an advanced undergraduate level. Students will demonstrate knowledge of the material by participation in class discussions, homework assignments, an in-class examination, and a project.

During the second half of the quarter, students can continue with an individual (or group) project in ACCESS or Visual BASIC , or participate in the Database and Interoperability Seminar. For the latter, we will meet to consider topics such as: database system architectures (client server, parallel DBMS, distributed databases), object-oriented databases and CORBA, persistent programming languages (e.g., Persistent Java, GemStone). Students taking the seminar will read an article per week, attend the database seminar, and complete a small database project.

Wherever our topics coincide, we will meet with the UNIX Potluck group.


Korth & Silberschatz, Database System Concepts (required); Access StepBy Step (or another ACCESS Manual (optional).

Expectations and Requirements

To earn credit, students need to attend class and labs regularly and participate in class discussions. They should complete the short examination (in class and open book), weekly homeworks, lab assignments. Students electing the seminar should demonstrate they have read the material by presenting in class; others should complete a short project (which may overlap with your year-long project).

Reading Assignments

Completing the reading before the class when the material is scheduled to be discussed is essential to success! Not all assigned reading will be covered in lectures, but you will be responsible for it on homework and exams. Bring questions to class!


Homework is due at the beginning of class the Tuesday (one week) afer it is assigned. You can bring homework questions to the Thursday class, and you may confer with anyone about the homework. You must, however, write up your answers independently.


We will meet twice weekly in labs, in the ACC. Dave Metzler is organizing these labs and will teach us Access. He has a series of exercises for us to complete.


An individual project will involve the design, implementation, population and querying of a small database, implemented on the system of your choice. I encourage you to find a project related to your year-long group project, or use this opportunity to work more intensively with Smalltalk, but I am open to other suggestions.

Tentative Schedule

Week 1

  • Tue. 6 Jan. Intro and Course Organization, Entity Relationship Model, HW 1 assigned.
  • Thu. 8 Jan. Review Hi-Ho ERM. The Relational Data Model. Read Ch. 1 & 2.

Week 2

  • Tue. 13 Jan. the Relational Algebra and Calculus. Read Ch. 3; HW 1 due. HW 2 assigned.
  • Thu. 15 Jan. SQL. Read Ch. 4 (4.1, 4.2, 4.4);

Week 3

  • Tue. 20 Jan. Integrity Constraints, read Ch. 6; HW 2 due. HW 3 assigned.
  • Thu. 22 Jan. Relational Database Design, read Ch. 7.1-7.3; 7.7-7.8.

Week 4

  • Tue. 27 Jan. Storage and File Structures; Indexing and Hashing, read 10.1-10.8, 10.10; 11.1-11.3. HW 3 due, HW 4 assigned.
  • Thu. 29 Jan. Query Processing, Read Ch. 12. Project discussion.

Week 5

  • Tue. 3 Feb. Transaction Processing & Concurrency Control; Ch. 13, 14.1-14.3, 14.6. HW 4 due, HW 5 assigned.
  • Thu. 5 Feb. Recovery; read Ch. 15. first project progress report due.

Week 6

  • Tue. 10 Feb. Object-oriented Databases; Read. Ch. 8. HW 5 due, HW 6 assigned
  • Thu. 12 Feb. Exam.

Week 7

  • Tue. 17 Feb. Object-Relational Databases; Read Ch. 9 HW6 due.
  • Thu. 19 Feb. second project progress report due; paper TBA e.g., Maier, Stein, et al. Making Smalltalk Persistent. see also K&S, Chapter 13.

Week 8

  • Tue. 24 Feb. New Applications; read Ch. 21.
  • Thu. 26 Feb. third project progress report due.

Week 9

  • Tue. 3 Mar. paper TBA.
  • Thu. 5 Mar.

Week 10

  • Tue. 10 Mar. paper TBA.
  • Thu. 12 Mar. Final Project Reports.

Some papers to consider

  1. "A Smalltalk-based Extension to Traditional Geographic Information Systems" sets the stage for a consideration of interoperability problems and spatial data structures, for a critique of relational database management systems and of C++ lack of object meta-data facilities, run-type dynamic dispatching of methods, and run time type information.

  2. Maier, Stein, et al. Making Smalltalk Persistent shows differences between the traditional database approach and the language approach.

For more information contact
[ Evergreen Home Page | Academic Programs ]

Created by: SoSwEbGrOuP