User talk:78.42.33.168

I think your suggestion is a correct solution which satisfy both the BCNF and the initial FDs. I was thinking on something similar: AB → C, C → B to become AB → D, D → C, C → B where D is a unique foreign key attribute in one of the new created relations (explained below). In my example there are 3 relations with the following schemas: 1. PersonToShopType relation with attributes(Person(A), ShopType(B), PersonToShopTypeID(D)) and PrimaryKey(Person(A), ShopType(B)) and a unique ForeignKey(PersonToShopTypeID(D)). Note: Here PersonToShopTypeID(D) could be also a candidate for a PrimaryKey. Functional dependencies in this relation are: AB → D. Or in case of PrimaryKey(PersonToShopTypeID(D)): D -> A, D -> B.

2. NearestShop relation with attributes(PersonToShopTypeID(D), ShopName(C)) and PrimaryKey(PersonToShopTypeID(D)). Functional dependencies in this relation are: D → C.

3. Shop relation with attributes(ShopName(C), ShopType(B)) and PrimaryKey(ShopName(C)). Functional dependencies in this relation are: C → B.

All these 3 relations are in BCNF and also the initial idea of functional dependencies is maintained (only slightly extended with the help of the transitive rule: AB → D, D → C lead to AB → C). Please someone let me know if/where I am wrong in my thoughts.