Correct Answer - Option 3 : {AB} → C and B → C

**Concept:**

Rules for defining functional dependencies(FD) :

1) If LHS of FD are all different, then we can directly say that FD holds true.

2) If LHS of FD are same, then check the corresponding value of RHS, that should be same for all the matching value of LHS. Otherwise FD will not hold true.

**Explanation:**

__Option 1:__ {AB} → D and D → A

Here, first consider AB -> D

Check AB first, all the values of AB are different, so AB-> D holds true.

Now check D-> A, in D two values are same i.e. d_{3}. So, we have to check the corresponding RHS of d_{3}.

These are different. As for one d_{3}, value of A is a_{2} and for another d_{3} value of A is a_{3}. So, D-> A does not hold true.

__Option 2:__* AB-> C and B-> D*

AB -> C holds true. As all the values of AB are different.

For B-> D, first check LHS, all the values of B are not same. There are two b_{2} in B.

So, check RHS for b_{2} in D. Both values are different : one is d_{2} and another is d_{3}. So, B -> D does not hold true.

__Option 3:__* AB -> C and B-> C*

AB -> C holds true. As all the values of AB are different.

Now check B-> C, in B all the values are not same. So, we have to check value of C corresponds to b_{2}. Both the values in C are same for b_{2}. So, B -> C holds true.

So, in this both the FD holds true.

__Option 4:__* AB -> D and A -> D*

AB -> D holds true. Check A -> D. All the values are not same in A i.e. a_{1}. SO check the values in D for a_{1} Values in D for a_{1} are different one is d_{1} and another is d_{2}. So, A-> D does not hold true.