We introdude these dependencies to handle some constraints (like foreign key constraint) which are not handeled so far by our normal forms.
An inclusion dependency R.X < S.Y between two sets of attributes ( X of schema R, and Y of schema S ) specifies the constraint that, at any specific time where r is a relation state of R and s is a relation state of S, we must have πX(r) ⊆ πY(s) . Here X and Y must have the same number of attributes and the domain of corresponding attribute must be compatible.
Examples: DEP.D_MGR_SSN < EMP.SSN ie, Social Security Number of managers for a department is always a subset of Social Security Number of Employees of a department.
Template Dependency can be used to provide a general framework for specifying dependencies, especially those we know exist on the data but are hard to spell out in terms of our earlier dependencies.
There are two kinds of templates which are used to specify dependencies: tuple generating templates and constraint templates. Any template consists of a list of hypothesis tuples followed by a template conclusion. Note that for tuple generating templates, the conclusion is a set of tuples that must exist in the relation if the hypothesis tuples are there. While for constraint generating templates, the template conclusion is a condition that must hold on the hypothesis tuples.
For More Reading refer the following paper: http://www.sciencedirect.com/science/article/pii/0304397582900287