Test #2
is not intended to be cumulative,
and so will not test directly on the subjects covered up to Test #1,
the physical database,
per se.
We have covered the second third of the course,
query processing.
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
That said,
everything we have done since Test #1
builds on the material from before.
So in that sense,
you are responsible for the previous material
for this test,
by necessity.
Test #2 covers query processing:
Ch.15 & 16.
In general,
the questions will be drawn from the intersection of the readings
and lectures in class.
However,
general concept questions drawn from the readings
are also fair game.
- indexes (needed for access paths)
[Ch.15]
- prefix matching
- cost model for using
- clustered vs unclustered
- ...
- external sorting
[Ch.15 §7]
- basics
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)
[Ch.15 §1, Ch.16 §1,2]
- access paths
- cost model & System R
- reduction factors
- cost estimation
- query trees & alternative plans
- pipelining
- optimization "rules" like pushing selects
- ...
- evaluating the relational operators
[Ch.15]
- select
& access paths
- project with distinct
- join
- 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
- aggregation
- relational optimizer
[Ch.16]
As covered in our overview in class;
have gone through Ch.16 very generally,
so far.
Nothing advanced from Ch.16.
- System R
- left-join trees
- pipelining
- general about the join-enumeration algorithm
|