Database management systems (DBMSs) have their own proprietary formats for storing data. For example, a header record with a unique format that contains identification data is typically placed at the beginning of each file. Codes may also be embedded in each record.
Most DBMSs have an import and export capability that converts popular database formats into their proprietary format. If not, the program usually can import and export a plain EBCDIC or ASCII file, which is stripped of all proprietary codes and can be used as a common denominator between both systems. If conversion facilities cannot be found, a custom program can be written to convert one database format into another if documentation describing the old format is available.
The application program "talks" to the database in the SQL language typically. In theory, that means any application program requesting data in SQL would work with any DBMS that supports it. Like everything else however, there are dialects of SQL. Whatever special features exist within the DBMS, proprietary syntax is needed to activate them, thus automatically making one DBMS incompatible with another. See standards