Multi-value dependency definition:
Let R (u) be a relational pattern on an attribute set U, x, y, and z are subsets of U, and z = U-X-Y, multi-value dependency X-> Y is true. If only one of the r relations is R, each value of R on (x, z) corresponds to a group of y values, this set of values is only determined by the X value and is not related to the Z value.
If X-> Y and Z = empty set, X-> Y is an ordinary multi-value dependency. Otherwise, X-> Y is a non-trivial multi-value dependency.
It can be seen that if the above group is changed to one, the multi-value dependency becomes the function dependency. Of course, a group composed of values is also a group. Therefore, function dependency is a special case of multi-value dependency.
See the following table:
Course C instructor T reference B
Mathematical Analysis by Deng Jun
Mathematics Deng Jun advanced Algebra
Mathematical Deng Jun Differential Equation
In the table, u = C + T + B, (C, T) determines a group of B, but this group of B is not related to T, which is determined only by C, so (C, T) -> B. Because t is not an empty set, (C, T)-> B is a non-trivial multi-value dependency.
To eliminate multiple dependencies, we can break them down into: (C, T), (C, B) and
Table 1:
Course C instructor T
Mathematics Deng Jun
Table 2:
Course C reference B
Mathematical Analysis
Advanced Mathematics Algebra
Mathematical Differential Equations
For each non-trivial multi-value dependency X-> Y (Y does not belong to X) in R, X contains a candidate code, and r belongs to 4nf.
Analysis: for each non-trivial multi-value dependency X-> Y, if X contains a candidate code, that is, X-> y, therefore, the non-trivial multi-value dependencies allowed by 4nf are function dependencies.