You may discuss problems with other students in the class. However, each student must write up his or her own solution to each problem independently. That is, while you may formulate the solutions to problems in collaboration with classmates, you must be able to articulate the solutions on your own.
1. Consider a relation with 4 attributes A, B, C, and D. Answer the following questions given the functional dependences A -> B, B -> C, AD -> C.
Part a What is the closure of the given set of functional dependencies? List only the dependencies in the closure whose right sides are single attributes and whose left sides have no subset that can determine the same right side. (For example, given we have A->B, do not list AC->B.)
Part b What are the candidate keys for the relation?
Part c What is the minimal cover for the given set of functional dependencies?
Part d Is the relation is BCNF? Justify your answer.
Part e Is the relation is 3NF? Justify your answer. Also, if the relation is not in 3NF, give a lossless-join, dependency-preserving decomposition into a collection of 3NF relations.
2. In Database Management Systems by Ramakrishnan and Gehrke, Chapter 18, exercise 18.4, pg. 539. For Part 2, add only commit or abort actions; add the fewest possible such actions to obtain a schedule achieving the desired property (if possible).
3. In Database Management Systems by Ramakrishnan and Gehrke, Chapter 19, exercise 19.4, pg. 567, Parts 1 and 2 (i.e. the first two concurrency control mechanisms enumerated) for both sequences (S1 and S2).