In order for a database to be useful, it should be possible to store and retrieve information from it. This is the role of the data manipulation language.
One of the attractions of the relational data model is that it comes with a well-defined data manipulation language.
Assume R1 and R2 have attributes A in common. Natural join is formed by concatenating all tuples from R1 and R2 with same values for A, and dropping the occurrences of A in R2
R1 R2 = П A’ ( C ( R1 R2 ))
where C is the condition that the values for R1 and R2 are the same for all attributes in A and A’ is all attributes in R1 and R2 apart from the occurrences of A in R2.