Applications typically store their data in a relational database. But they act upon that data by loading objects into memory. To bride the gap, application designers can choose from several object-relational mappers (ORMs).
The problem with the ORM approach is that it requires the application designer to express their model three times:
- Database schema
- Mapping configuration
Keeping these three in synch becomes a maintenance task each time the model changes. And deploying a new version requires that the data be migrated to the new schema.
Correspondence is not an ORM. The application model is not reflected in a relational database schema. When the model changes, only the objects are changed. The schema remains consistent. This allows for new versions to be deployed without changing the database
or migrating data. And it eliminates the need for mapping configuration, as the library stores all models the same way.