Click to learn more about author Michael Blaha.
Let’s continue last month’s discussion about different kinds of data models and look at data interchange models. My interest in this topic was piqued by several encounters with overly complex data interchange models.
Data Interchange Model
A data interchange model provides the means to convey data among applications. Here is the basic motivation. A pairwise coupling of applications leads to n*(n-1) data interfaces.
In contrast, coupling of application via an intermediate representation leads to 2*n interfaces. A data interchange model is the intermediate representation.
An interchange model can be used as a specification for data transfer or it can specify the schema of an interchange database. The source applications must translate their data into the data interchange format. Similarly, target applications must use the data interchange format to populate their own internal data structures. Thus, a data interchange model mediates applications and stands apart from them.
An interchange model is not intended for building an application. An interchange model should have a small schema and be straightforward to parse. It need not be concerned with enforcing data quality. The sole purpose of an interchange model is to provide a means for translating from source to target.
Given the need for small schema size and flexibility, a typical interchange model combines metadata and data. This can make them tricky to define and understand.
Data Interchange Model vs. Application Data Model
A data interchange model is much different than an application data model. Interchange data is transient. In contrast, application data is persistent and provides the memory for an application.
Furthermore, interchange data models should normally be abstract and small in size. Their purpose is to move data. In contrast, application data models tend to be tangible and directly represent business data. Application data models are often large (often hundreds of tables or more) as they try to finely describe data to enhance data quality.
Skilled developers recognize the importance of data models. Data models let you specify data and databases as well as the applications that work with data.
The precise content and approach to a data model depends on its purpose. There are many kinds of data models, including application model, data warehouse models, enterprise models, and interchange models. This blog called attention to interchange data models and contrasted them with application data models.