Search code examples
databasenormalizationfunctional-dependenciesthird-normal-form

Determining the functional dependencies of a relationship and their normal forms


I'm studying for a database test, and the study guide there are some (many) exercises of normalization of DB, and functional dependence, but the teacher did not make any similar exercise, so I would like someone help me understand this to attack the other 16 problems.

1) Given the following logical schema: Relationship product_sales

POS     Zone     Agent   Product_Code   Qualification   Quantity_Sold
123-A   Zone-1   A-1     P1             8               80
123-A   Zone-1   A-1     P1             3               30
123-A   Zone-1   A-2     P2             3               30
456-B   Zona-1   A-3     P1             2               20
456-B   Zone-1   A-3     P3             5               50
789-C   Zone-2   A-4     P4             2               20

Assuming that: • Points of Sale are grouped into Zone. • Each Point of Sale there are agents. • Each agent operates in a single POS. • Two agents of the same points of sale can not market the same product. • For each product sold by an agent, it is assigned a Qualification depending on the product and the quantity sold.

a) Indicate 4 functional dependencies present.
b) What is the normal form of this structure.


Solution

  • To get you started finding the 4 functional dependencies, think about which attributes depend on another attribute:

    eg: does the Zone depend on the POS? (if so, POS -> Zone) or does the POS depend on the Zone? (in which case Zone -> POS).

    Four of your five statements tell you something about the dependencies between attributes (or combinations of several attributes).


    As for normalisation, there's a (relatively) clear tutorial here. The phrase "the key, the whole key, and nothing but the key" is also a good way to remember the 1st, 2nd and 3rd normal forms.