Let R {\displaystyle R} be a relation schema and let R 1 , R 2 , … , R n {\displaystyle R_{1},R_{2},\ldots ,R_{n}} be a decomposition of R {\displaystyle R} .
The relation r ( R ) {\displaystyle r(R)} satisfies the join dependency
A join dependency is trivial if one of the R i {\displaystyle R_{i}} is R {\displaystyle R} itself.4
2-ary join dependencies are called multivalued dependency as a historical artifact of the fact that they were studied before the general case. More specifically if U is a set of attributes and R a relation over it, then R satisfies X ↠ Y {\displaystyle X\twoheadrightarrow Y} if and only if R satisfies ∗ ( X ∪ Y , X ∪ ( U − Y ) ) . {\displaystyle *(X\cup Y,X\cup (U-Y)).}
Given a pizza-chain that models purchases in table Order = {order-number, customer-name, pizza-name, courier}. The following relations can be derived:
Since the relationships are independent there is a join dependency as follows: *((order-number, customer-name), (order-number, pizza-name), (order-number, courier)).
If each customer has his own courier however, there can be a join-dependency like this: *((order-number, customer-name), (order-number, pizza-name), (order-number, courier), (customer-name, courier)), but *((order-number, customer-name, courier), (order-number, pizza-name)) would be valid as well. This makes it obvious that just having a join dependency is not enough to normalize a database scheme.
Petrov, S. V. (1989). "Finite axiomatization of languages for representation of system properties". Information Sciences. 47: 339–372. doi:10.1016/0020-0255(89)90006-6. /wiki/Doi_(identifier) ↩
Abiteboul; Hull; Vianu (1995). Foundations of databases. Addison-Wesley. ISBN 9780201537710. 9780201537710 ↩
Silberschatz, Korth. Database System Concepts (1st ed.). ↩