Object Relational Mapping - Java Persistence API

Object Relational Mapping

Introduction

Avant de s'aventurer dans le monde de l'Object Relational Mapping, il est nécessaire de considérer les deux environnements suivants

Les bases de données relationnelles

Les bases de données relationnelles sont des structures de données basées sur l'algèbre relationnel. Elles permettent le stockage de grande quantité de données ainsi que les opérations standards suivantes :

Les bases de données relationnelles utilisent l'unité de stockage nommé table pour enregistrer l'ensemble des données de même type. Les associations entre table sont représentables par des liens et sont appelées relation.

Les bases de données relationnelles connaissent un grand succès par leur capacité à stocker l'information de façon uniforme et intéropérable.

Le monde objet

Le monde objet est un paradigme représentant le monde comme un ensemble d'entités nommées objet possédant les propriétés suivantes : L'ensemble des langages objets tels que Java, C++ ou encore Ruby appliquent ces concepts.

Objectifs

Le but de l'Object Relational Mapping ou O.R.M est de faciliter la manipulation de données stockées dans un Système de Gestion de Base de Données Relationnelles (SGBD) au sein des langages de programmation objet.

En effet, la plupart des applications nécessite le stockage d'un grand nombre de données et a donc recours aux bases de données. Cependant, les opérations les plus basiques d'ajout, lecture, mise à jour et suppression sont loin de la trivialité que souhaiterait le développeur.

Afin de répondre à ce besoin de facilitation, l'O.R.M offre une couche d'abstraction qui réalise la traduction des données extraites de la base de données vers un objet propre au langage de programmation. Le développeur travaille ainsi uniquement avec des objets sans se soucier du stockage sous-jacent des données.

Voici un schéma représentant la logique de l'O.R.M :

Il est important de noter que l'O.R.M est un concept et que l'on trouvera ainsi différentes implémentations offrant plus ou moins de fonctionnalités.

L'apport des technologies d'O.R.M

L'usage de technologies d'O.R.M apporte de nombreuses améliorations dans le développement des applications :

Les implémentations

Les avantages sus-cités ont amené à la réalisation de nombreuses implémentations dans les langages les plus courants.

Voici une liste non exhaustive de langages et leurs O.R.M associés :