### CS 4250: Database Management Systems

#### Due Thursday, 4/14/2016, at 5 pm

This is an individual assignment. All work must be your own. You should not look at any other student's work (in whole or in part, on paper or on screen), nor allow anyone else to look at yours, during the course of this assignment.

You may email a plain text, MS Word or PDF document to the instructor with subject line "cs4250,hw3" (by 5pm), or turn in a typed hardcopy (typed, during class time on 4/14).

1. Consider a relation R with attributes ABCDE. You are given the following dependencies E -> CD, B -> D, A -> B.

1. Attribute closure of A?

2. Attribute closure of B?

3. Attribute closure of E?

4. Attribute closure of AE?

5. Attribute closure of BE?

6. Identify which, if any, of the above are candidate keys.

2. Consider a relation R with attributes ABCDE. You are given the following dependencies CD -> A, CD -> B, CD -> E, E -> D.

1. List all (candidate) keys for R.

2. Is R in 3NF? Why or why not?

3. Is R in BCNF? Why or why not?

3. Consider a relation R with attributes ABCDE. You are given the following dependencies B -> C, AE -> D, C -> E.

1. List all (candidate) keys for R.

2. Is R in 3NF? Why or why not?

3. Is R in BCNF? Why or why not?

4. Suppose that we have the following three tuples in a legal instance of a relation schema S with three attributes A, B and C:
attribute names|primary_keyA B C
tuple 1|14 1 4
tuple 2|28 1 4
tuple 3|36 2 5

1. For each of the following dependencies, can you infer whether or not it holds over schema S? Why or why not?
1. A -> C

2. C -> A

2. Can you identify any functional dependencies that hold over S? If so, please name one.

5. Suppose you are given a relation R(A, B, C, D). For each of the following sets of FDs, assume they are the only dependencies that hold for R. Do the following: a) identify the candidate key(s) for R. b) State whether or not the proposed decomposition of R into smaller relations is a good decomposition and briefly explain why or why not.

1. A -> B, C -> D; decompose into ABC and CD.
1. Candidate keys:
2. Analysis:

2. AB -> C, D -> C, C -> A; decompose into CD and ABC.
1. Candidate keys:
2. Analysis:

3. A -> B, B -> C; decompose into AC and BD.
1. Candidate keys:
2. Analysis:

4. AB -> C, B -> D; decompose into ABC and BD.
1. Candidate keys:
2. Analysis: