Briefly answer the following questions:
1. Consider the three basic techniques, iteration, indexing, and partitioning, and the relational algebra operators selection, projection, and join. For each technique-operator pair, describe an algorithm based on the technique for evaluating the operator.
2. Define the term most selective access path for a query.
3. Describe conjunctive normal form, and explain why it is important in the context of relational query evaluation.
4. When does a general selection condition match an index? What is a primary term in a selection condition with respect to a given index?
5. How does hybrid hash join improve upon the basic hash join algorithm?
6. Discuss the pros and cons of hash join, sort-merge join, and block nested loops join.
7. If the join condition is not equality, can you use sort-merge join? Can you use hash join? Can you use index nested loops join? Can you use block nested loops join?
8. Describe how to evaluate a grouping query with aggregation operator MAX using a sortingbased approach.
9. Suppose that you are building a DBMS and want to add a new aggregate operator called SECOND LARGEST, which is a variation of the MAX operator. Describe how you would implement it.
10. Give an example of how buffer replacement policies can affect the performance of a join algorithm.