Let's have a relation $R = (name, surname, age)$. I want to obtain a new relation with only the $name$ attribute. In relational algebra I would simply do $\Pi_{\mathrm{name}}(R)$ but in relational calculus the general way of doing that is $$ \newcommand{\Set}[2]{% \{\, #1 \mid #2 \, \}% } \Set{t}{\exists z \; (R(z) \land t.\mathrm{name} = z.\mathrm{name}}. $$
How does it work? I thought that relation is basically a table and tuple is a row from that table. How does this expression retrieve the original relation with only the name as an attribute?
If I don't specify where the tuple variable $t$ belongs to, we're ranging over all tuples $t$ from the schema right?
How can a tuple be just a slice of a table?
Take a tuple from $R$ that contains $name$, $surname$ and $age$. It also follows the rule that $t.\mathrm{name} = z.\mathrm{name}$ doesn't it? How come it doesn't show up in the result? I'm so confused.