The
exam is cumulative.
It covers all the topics
we covered in the course.
The coverage will be fairly uniform over these topics.
The topics we have really added since the second test
have been a fuller coverage of the overall query optimizer,
and an overview of transactions and transaction management.
- the physical database
- the name of the game & database system architecture.
(introductory materials [pdf],
architecture slide [pdf])
- memory management
[Ch.13]
- memory & storage
- the memory hierarchy
[Ch.13 §1]
- storage
- secondary memory / disks
[Ch.13 §2]
- the I/O model & how to speed up access
[Ch.13 §3]
- coping with disk failures
[Ch.13 §4]
- paging: disk organization & records
(pdf)
- pagification:
arranging data on disk
[Ch.13 §5]
- the buffer pool:
representing block & record addresses
[Ch.13 §6]
- variable-length data & records
[Ch.13 §7]
- issues with modifying records
[Ch.13 §8]
- index structures
[Ch.14 §1–3,7,8]
- index structure basics
[Ch.14 §1]
- B-trees
[Ch.14 §2]
- hash-table indexes
[Ch.14 §3]
- the query processor
- 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]
- System R
- left-join trees
- pipelining
- general about the join-enumeration algorithm
- database management (just the basics)
- transaction management &concurrency control
[Ch.18 §1–5]
- serial & serializable schedules
[Ch.18 §1]
- conflict serializability
[Ch.18 §2]
- locking approaches
- enforcing serializabilty by locks
[Ch.18 §3]
- locking systems withseveral lock modes
[Ch.18 §4]
- an architecture for a locking scheduler
[Ch.18 §5]
(We did not cover
coping with system failure
[Ch.17],
or
beyond relational “stand-alone” servers,
as on the original schedule.)
Only topics covered both in the reading
and in class are fair game.
|