PostgreSQL relation size does not sum up
Does table have any variable-width columns?
If the answer is yes, you are probably missed toast tables (pg_toast_xxx). You need to find their names (not sure how to do it, need to google it) and calculate their size as well.

To reduce space (for example after deleting bunch of rows) execlute VACUUM FULL  and reindex table after it (to prevent index fragmentation).