Midterm Exam
Monday, March 20, 1:50pm-3:05pm, Stuart Building (SB) 111
The exam will be 75 minutes long. It is closed book and closed notes. Questions will be both multiple-choice and full text questions. Many of the topics have already been covered in Quiz 1. Topics covered will be
- Storage
- Compute disk access costs.
- Answer questions about organization of data on disk:
- How to represent pointers to tuples? pointer swizzling?
- How to organize tuples on pages (fixed size vs. variable size, NULL values)?
- How to deal with insertions, updates, deletions?
- How to manage free-space?
- SQL: Write SQL queries and evaluate them.
- Relational algebra:
- Write relational algebra expressions.
- Translate SQL into relational algebra.
- Equivalences.
- Index structures
- B-trees and B+-trees: Execute operations on such trees (insert,delete) and answer questions about their properties (e.g., number of children).
- Hash indicies: Execute operations on hash indicies (insert, delete) and answer general questions about these data structures (e.g., when to rebuild a directory for extensible hashing).
- Know spacial index structures.
- Logical query optimization
- Result size estimation.
- Implementations of relational operators and their I/O cost and runtime complexity:
- Joins: Nested Loop variants, Merge join, Hash join.
- Aggregation, Set-operations, Scans.
Solutions: Here are the solutions for the midterm. Grades will be made available through blackboard in the next few days.
Final Exam
Wednesday, May 3, 08:00am - 10:00pm, Life Sciences (LS) 121
The exam will be 120 minutes long. It is closed book and closed notes. Questions will be both multiple-choice and full text questions. Many of the topics have already been covered in the quizzes and mid term exam. Topics covered will be:
- Storage
- Compute disk access costs.
- Answer questions about organization of data on disk:
- How to represent pointers to tuples? pointer swizzling?
- How to organize tuples on pages (fixed size vs. variable size, NULL values)?
- How to deal with insertions, updates, deletions?
- How to manage free-space?
- SQL: Write SQL queries and evaluate them.
- Relational algebra:
- Write relational algebra expressions.
- Translate SQL into relational algebra.
- Equivalences.
- Index structures
- B-trees and B+-trees: Execute operations on such trees (insert,delete) and answer questions about their properties (e.g., number of children).
- Hash indicies: Execute operations on hash indicies (insert, delete) and answer general questsion about these data strcutures (e.g., when to rebuild a directory for extensible hashing).
- Logical query optimization
- Result size estimation.
- Implementations of relational operators and their I/O cost and runtime complexity:
- Joins: Nested Loop variants, Merge join, Hash join.
- Aggregation, Set-operations, Scans.
- Transaction model
- Schedules
- Classes of Schedules
- Determining whether a schedule belongs to a certain class
- Given a set of transactions create a schedule of a certain class
- Recovery
- Potentially multiple choice question covering
- WAL
- Undo/Redo Logging
- Checkpointing
- ARIES
- Concurrency Control
- Potentially multiple choice question covering
- Classes of Schedules
- Conflict-serializability and conflict graph
- Lock-based protocols: 2PL and variants
Solutions: Here are the solutions for the final.