Le Mapping Objet-Relationnel: ORM

1. A proposdes ORM

ORM signifie "Object-Relational Mapping". C'est un concept qui consiste à utiliser une couche d'abstraction pour accéder à une base de données relationnelle depuis un langage de programmation orienté objet.

L'idée derrière ORM est de permettre aux développeurs de travailler avec des objets de leur langage de programmation préféré plutôt qu'avec des requêtes SQL, tout en profitant de la puissance et de la flexibilité des bases de données relationnelles.

2. Fonctionnement d'un ORM

Voici comment fonctionne ORM en général :

Le développeur définit des classes de modèles dans son code, qui représentent les différentes entités de la base de données (par exemple, "utilisateur", "article", "commande", etc.).
L'ORM mappe ces classes de modèles sur des tables de la base de données, en utilisant des annotations ou des fichiers de configuration.
Le développeur peut ensuite utiliser ces classes de modèles pour effectuer des opérations CRUD (create, read, update, delete) sur les données de la base de données, en utilisant des méthodes et des propriétés de ces classes plutôt que des requêtes SQL.
L'ORM se charge de traduire ces opérations en requêtes SQL et de les exécuter sur la base de données.

3. Exemple d'usage d'un ORM

Voici un exemple de code qui utilise l'ORM SQLAlchemy (un des ORM les plus populaires pour Python) pour définir un modèle de base de données et effectuer des opérations CRUD sur celui-ci :




- Dans ce code, nous avons d'abord importé les classes nécessaires à partir de sqlalchemy : create_engine pour créer une connexion à la base de données, Column pour définir les colonnes de la table, Integer et String pour indiquer le type de données de chaque colonne, declarative_base pour créer une base de modèles à partir de laquelle nous pouvons définir nos modèles, et sessionmaker et Session pour gérer les transactions avec la base de données.

- Ensuite, nous avons défini une classe User qui hérite de Base et qui définit les colonnes de la table users de la base de données.

- Ensuite, nous avons créé un "engine" de base de données en utilisant create_engine et en spécifiant l'URL de la base de données (ici, une base de données PostgreSQL local). Nous avons ensuite créé une "session" en utilisant sessionmaker et en lui passant l'engine en paramètre.

- Enfin, nous avons utilisé la session pour effectuer des opérations CRUD sur la base de données : nous avons créé un nouvel utilisateur en instanciant la classe User, nous avons utilisé la méthode session.add pour ajouter un nouveau utilisateur.

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply