what is the difference between equi join and natural join operation? Explain with example?

Example 1: Ruby difference between for and .each

# They are both similar in function, however the for loop will retain a variable.
# FOR Example:
nums = [1,2,3]

for n in nums
	puts n
end
=> 1 2 3

# If you ask what is n, n outputs the last assignment from the function.
n => 3

# EACH Example:

nums.each do |i|
	puts i
end
=> 1 2 3

# If you ask what is i.
i => NameError (undefined local variable or method `i' for main:Object)

Example 2: what do we mean by lossless join property in dbms

In database design, a lossless join decomposition is a decomposition of 
a relation into relations. such that a natural join of the two smaller 
relations yields back the original relation. This is central in removing
redundancy safely from databases while preserving the original data.