User information based on external database In one of the community portal based on Drupal, 

Now, there is a rich user information which is also used by external applications. This information can be LDAP, MySQL or any other different database per say. (the choice here is still open). 

Now, we are also considering using Profile2 for rich user information, for authentication as well as and also for various social features. 

So essentially, there are two different Applications (Drupal and External) that need to access the same data and both might need to read/modify the information. (we can be safe here in terms of simultaneous access because traffic will be very minimal.) 

So what should be the right approach ? Should Drupal look up to the external database or should the external application directly modify Drupal's own database? Or should there be some sort of DB to DB sync? 

Is any of the approach possible and if so, how can this be achieved?

Please note: this approach requirement is only for User specific information not any general purpose other content in Drupal.
Personally, I would fetch and update the fields on Drupal when the user logins, and update the remote database when the user in Drupal is updated. If you user Profile2 you might have to use other hooks.

An other option may be running a script outside Drupal to synchronize the two databases.