In general, there are several different ways to integrate separate but related application systems at the data layer. For example, any number of apps can access a single shared database and efficiently manage data in real time. In contrast, when each app must maintain its own database, or when you want to import or export large amounts of data, mechanizing the transfer of data among pertinent systems helps preserve the consistency and quality of data across the entire organization.
There are various various data integration options related to Salesforce platforms.
Open APIs (SOAP, REST, Streaming, etc.)
Bulk Data Transfer API
Language-Specific Resources and Toolkits (Java, JavaScript, Ruby, etc.)
Cloud-to-Cloud Integration Toolkits (Amazon, Facebook, Google, etc.)
Salesforce Library Extract : https://developer.salesforce.com/page/Data_Integration
This has tutorials and insight on all the above listed options.
Cheers