Anecdotally, at least, this “impedance mismatch” is apparently characteristic of situations when a person wants to push relations to the idiom of an object.
In C, most database APIs tend to reveal sets of results as multidimensional arrays rather than structures. Therefore, one of them simply gets access to the data in the same format as in the table (s) in the database, which is not essential that it now exists as a local copy of the data, and not "in the database".
Most RDBMS functional libraries expose database rows as record types that are almost perfect for database rows. In this situation, there is no “impedance mismatch”.
The Wikipedia article on this issue seems to reflect on some of the reasons why the object's paradigm is particularly susceptible to this mismatch.
I am convinced that it essentially depends on the fact that you always build a secondary representation of the data (that is, overlay "objects"). In most imperative or (non-object) functional languages, it is less likely that you will create such a large, semantically irrelevant secondary representation of your data. If someone is going to create a secondary representation in this world, he is likely to be an abstraction of some kind. This is consistent with the basic (unfounded) belief that the OOP paradigm is basically the notorious hammer that makes every problem look like a nail.
Gian
source share