Relations are boolean functions on any number of arguments. For example, the relation < is a boolean function of two real variables:
3 < 4 == true
4 < 3 == false .
Predicates are a special case, namely a boolean function on ONE argument. For example, the predicate 'even' is a boolean function of one integer variable:
even.3 == false
even.4 == true .
(In some sense a relation can be viewed as a predicate on a "paired" space. For example, < could be viewed as a predicate on PAIRS of real variables:
<.(3,4) == true
<.(4,3) == false .
But this is more or less a technicality.)
We study predicate calculus because we want to study the relationships between PREDICATES. For example, it may not just be that P.2 => Q.2 and P.3 => Q.3 , but maybe P.x => Q.x for any x . We study this state of affairs by writing [ P => Q ] . The reason for doing this is that now the domain of x has been pushed to the background, and the relationship between P and Q has been brought to the fore. Dijkstra and Scholten (and others) have given us a language where we can discuss the predicates themselves, independently of the space they might be defined on.
We study relational calculus for the same reason, but this time to study the relationships between relations. (Sorry for the linguistic confusion!)
Also you must have a look at WF147 and WF148 (both found here:
http://mathmeth.com/wf/wf1xx.shtml). They demonstrate convincingly that There Is No One System. Finding the right terminology/framework/interface in which to discuss a subject is a serious scientific and artistic concern!
Best,
+j