some people recommend adding applicatioon name prefix to all the table names. what are the advantages apart from from being able to identify which application does a table belong to ?
I would discourage that practice. I don't think categorizing data as "for an application" is very accurate. It is more likely for a business process, and in many cases transcends processes and even businesses. If you really just like having those object names prepended with the application name, then just create synonyms. For example:
Owner name: Pat
Table name: fred
App name: flintstones
Create public synonym flinstones_fred for pat.fred;
Bookmarks