TW3 — Technologies du Web 3

Introduction aux ORM

Qu'est-ce qu'un ORM/ODM, le mapping objet-relationnel, ses avantages et limites, la comparaison avec le SQL brut, et le panorama Prisma, Sequelize, TypeORM et Mongoose.

Un ORM (Object-Relational Mapper) fait le pont entre votre code orienté objet et votre base relationnelle. Un ODM (Object-Document Mapper) fait la même chose pour une base documentaire comme MongoDB.

🔗 Le mapping objet-relationnel

L'idée : une classe/objet = une table, une propriété = une colonne, une instance = une ligne.

// Sans ORM : on pense en SQL
await db.query("SELECT titre, prix FROM articles WHERE id = $1", [42])

// Avec Prisma : on pense en objets via le client généré
const article = await prisma.article.findUnique({ where: { id: 42 } })
console.log(article.titre, article.prix)

Le développeur manipule des objets ; l'ORM génère le SQL (ou les appels Mongo) correspondant.

✅ Avantages

  • Productivité : pas besoin d'écrire chaque requête à la main.
  • Sécurité : l'ORM échappe les valeurs, réduisant les injections SQL.
  • Typage : avec Prisma/TypeORM, les modèles sont typés (TypeScript).
  • Portabilité : changer de base est souvent transparent.

⚠️ Limites

  • Abstraction : requêtes complexes parfois moins performantes ou moins claires.
  • Courbe : il faut apprendre l'API de l'ORM.
  • Fuite de fuite : parfois on finit quand même par écrire du SQL natif pour les cas rares.

Règle pratique : utilisez l'ORM pour 90 % des cas courants, et du SQL natif uniquement pour les requêtes analytiques complexes.

🆚 ORM vs SQL brut

CritèreORMSQL brut
Vitesse d'écritureRapideLente
Contrôle finMoyenTotal
Sécurité intégréeOuiÀ gérer soi-même
Performance critiqueParfois moinsOptimisable

🗺️ Panorama des outils

  • Prisma : ORM moderne, schéma déclaratif, client typé généré, migrations.
  • Sequelize : ORM Node historique, mature, supporte many DBS.
  • TypeORM : orienté décorateurs, proche de Hibernate (Java).
  • Mongoose : ODM pour MongoDB (pas relationnel).

Pour MongoDB, on parle d'ODM (Mongoose) plutôt que d'ORM. Voir Modélisation MongoDB pour le modèle documentaire.

➡️ Suite

La page Prisma en pratique montre l'installation et un CRUD typé concret.

Quiz du chapitre

5 questions
0 / 5 répondue0%
  1. 1Que signifie le « M » dans ORM ?
  2. 2Quel outil est un ODM (et non un ORM relationnel) ?
  3. 3Quel est un avantage principal d'un ORM ?
  4. 4Quelle est une limite fréquente des ORM ?
  5. 5Quel ORM propose un schéma déclaratif et un client typé généré ?
Répondez à toutes les questions pour valider.

MVC & ORM

Terminez le quiz du chapitre pour le marquer comme complété.

Tableau de bord

On this page