is not intended to be cumulative,
and so will not test directly on the subjects covered up to Midterm #1,
the physical database,
So not covered:
- physical database
- disk space manager
- buffer pool manager
- file, page, and record formats
- internals of index data structures
- B+ trees
- extendable and linear hashs
- basics of the external sort algorithm
everything we have done since Midterm #1
builds on the material from before.
So in that sense,
you are responsible for the previous material
for this exam,
- indexes (needed for access paths) (Ch.8)
- prefix matching
- cost model for using
- clustered vs unclustered
- external sorting (Ch.13)
Many other relational algorithms are based on this,
and have the same performance issues.
- advanced issues
(e.g., double buffering, block reads and writes, etc.)
- query evaluation, overview (Ch.12)
- access paths
- cost model & System R
- reduction factors
- cost estimation
- query trees & alternative plans
- optimization "rules" like pushing selects
- evaluating the relational operators (Ch.14)
& access paths
- project with distinct
- nested loops join
- block nested loops join
- index nested loops join
- sort-merge join
- na´ve: sort first, then merge
- 2-pass: accomplishes join in two passes
- hash join (two pass)
- the set operations
- relational optimizer (Ch.12&15)
As covered in Chapter 12,
have gone through Chapter 15 very generally.
Nothing advanced from Chapter 15.
- System R
- left-join trees
- general about the join-enumeration algorithm
Only topics covered in the reading and in class are fair game.
I shall try to be careful not to emphasize anything
in depth from the optimizer itself.
However, topics from the optimizer overview in Chapter 12
are fair game.
You should know the basic concepts.