Is there any good reference to explain the best usage of each of these structures.
I am coming from Oracle. What is the best analog to Oracle's "user".
A schema is a namespace mechanism for objects. It has no relationship to roles aside from the possibility, if you so choose, to define a schema to have the same name as a role, in which case that schema becomes parts of that role's default search_path.
There is no low-level difference between role and user. A user is a role with the login privilege.