Based on the following details:
I have a prime contact that is related to many several table and contains fields that are not available on contact.
These data are stored in a different database and my team require real-time data on salesforce.
and from the comment:
it depends on our application users , it's in on going operation and all transactions are saved in the external database.[ with 300 + application users and its projected to increase] So the Salesforce user should always get the latest updates the application users has done.
You like a more robust integration mechanism here instead of having external objects. You should likely create fields as required from external object, either on Contact itself or on a custom object, and you just related that to Contact.
Here's my recommendation how you can approach this. Hope this helps.
1. External Systems updates Salesforce (Near Real Time) -- Recommended
Because your external application is more dynamic and that you are sourcing data from that application, a more robust approach to get updates from that system is to update Salesforce as soon as data gets updated in there. So how do you do that? Expose an API from Salesforce which accepts the data from external applications and let the External Application call it by passing all the elements those got updated there, and then you update your Contact record in Salesforce.
This approach is a recommended approach as you expect lots of changes in external application and that you want changes near real-time in Salesforce.
2. Pull data from External System as batch (Asynchronous)
This is an asynchronous approach and is recommended if you don't have the capability of allowing External applications to push data in Salesforce. Why batch? Because you cannot really build a continuous polling mechanism in Salesforce, as you will need to deal with platform limitations and that it still won't be as real time as the above option.
With this approach, you kind of schedule a nightly batch to pull updated records from external application and then update Contacts in Salesforce.