Quelque soit l'architecture applicative utilisée, la persistance des données occupe une place importante dans l'implémentation de solutions applicatives :
elle est primordiale, mais aussi et surtout coûteuse en temps de développement.
La place croissante prise par les développements Objet, y compris dans le monde du Web, a favorisé l'apparition de nouveaux outils :
Celle des frameworks de persistance, spécialisés dans le mappage entre le modèle relationnel, et le modèle objet.
ORM signifie Object Relational Mapper
Le mappage Relationnel/Objet se heurte à quelques problèmes dans des mondes aux concepts aussi différents :
la distinction structurelle entre un objet et un enregistrement/tuple ;
la notion fondamentale de clé dans le monde relationnel, absente dans le monde objet (seule la référence ou l'adresse mémoire est utilisée) ;
la différence entre les liens : des relations basées sur l'intégrité référentielle d’un côté, des références sur des objets de l’autre ;
la notion de navigation, forte en objet et inconnue en relationnel.
Les ORM proposent des solutions pour réunir ces 2 mondes et ces 2 paradigmes.
Ils permettent :
De définir les règles de mappage entre une base de données et un modèle objet
De charger un enregistrement depuis la BDD pour en faire une instance de classe
De charger un ensemble d'enregistrements en interrogeant la base de données pour obtenir un ensemble d'objets (collection)
De sauvegarder un objet dans la BDD sous forme d'enregistrement
De sauvegarder un ensemble d'objets dans la base de données
De traduire les relations entre tables sous forme de liens entre classes d'objet :