This is intended to give you a sense of what I think is important from the course so far, and what I will be thinking of when creating the exam.

Here are some disclaimers. This is not a contract. I may have inadvertently left something off this list that ends up in an exam question. I make no guarantees that the exam will be 100% limited to items listed below. Moreover, I will not be able to test all of this material given the time limitations of the exam. I will have to pick and choose some subset of it.

You are permitted one 8.5 x 11 sheet of paper with notes (both sides) for use as a reference during the exam.

Here are the specifics: Students should be able to...

Relational algebra: Be able to write queries as specified in relational algebra using selection, projection, set operators, cross product, join, and relational division. Demonstrate understanding of relational division, both in what it does and how it is constructed. Be able to interpret relational algebra queries provided.

SQL: Be able to produce or interpret the results of SELECT / FROM / WHERE / GROUP BY / HAVING SQL queries. Be able to predict the output of queries where knowledge of the cross-product / selection / projection definition is likely to be useful. Be able to create and use tables with primary keys, foreign keys, integers, reals, and text. Be able to interpret and construct queries with subqueries.

Entity-Relationship model: Be able to construct an E-R diagram for a specific scenario provided. Be able to appropriately use each aspect of the E-R model (entity sets, relationship sets, keys, key constraints, participation constraints, weak entities, aggregation, ternary relationships, ISA, 1-to-many vs. many-to-many vs. 1-to-1 relationships). Be able to convert an E-R diagram to the relational model. Consider tradeoffs in different relational implementations of a particular E-R design.

Indexing: Be able to quantitatively describe advantages and disadvantages of indexing. Be able to define and quantitatively assess merit of indexing strategies such as primary vs. secondary indexes, and dense vs. sparse indexes. Demonstrate how ISAM works and quantify usage costs.

Not on the exam: B+-trees.