up previous
Up: Introduction Previous: Multi-Valued Dependency

 

Join Dependency

 

A Join Dependency (JD) over a relation schema R is a statement of the form |><|[schema(R1), schema(R2), …, schema(Rn)], where R = {R1, R2, …, Rn} is a database schema such that schema(R)=schema(R).

 

A JD |><|[R] is satisfied in a relation r over R, denoted r |= |><|[R], if   r = π schema(R1) (r) |><| π schema(R2) (r) |><| … π schema(Rn) (r)

 

A JD  in our banking example

Define a new relation schema

Loan-info-schema = (branch-name, customer-name, loan-number, amount) in this banking example.

We can define a relation loan-info(Loan-info-schema) as the set of all tuples on Loan-info-schema such that:

 

The preceding definition of the loan-info relation is a conjunction of three predicates: one on loan-number and branch-name, one on loan-number and customer-name, and one on loan-number and amount.

 

It can be shown that the preceding intuitive definition of loan-info logically implies the join dependency |X| [ {loan-number, branch-name}, {loan-number, customer-name}, {loan-number, amount} ]