El mapeo objeto-relacional (en inglés, object-relational mapping, ORM) es una técnica de programación, y por extensión el tipo de biblioteca que la implementa, que traduce entre los elementos de una base de datos relacional, tablas, filas y columnas, y los objetos de un lenguaje de programación orientada a objetos. Con un ORM, el programador trabaja con objetos, por ejemplo un objeto Cliente con su nombre y su lista de pedidos, y la biblioteca se encarga de escribir las consultas SQL que leen y guardan esos datos en las tablas correspondientes.
El problema que resuelve se llama desajuste de impedancia objeto-relacional (object-relational impedance mismatch), una expresión tomada de la electrónica. Las bases de datos relacionales guardan la información en tablas planas que se relacionan mediante claves, mientras que los programas orientados a objetos la organizan en objetos que contienen otros objetos, heredan unos de otros y se apuntan entre sí. Traducir de un modelo a otro a mano exige mucho código repetitivo y propenso a errores. Un ORM lo hace automáticamente y es una capa de abstracción sobre la base de datos: el mismo programa puede funcionar con distintos gestores sin cambiar.
Casi todos los lenguajes tienen sus ORM, gratuitos o libres en su mayoría. Hibernate, para Java, apareció en 2001; Active Record, el de Ruby on Rails, toma su nombre de un patrón de diseño descrito por Martin Fowler en 2003; en Python se usan SQLAlchemy y el ORM de Django, y en la plataforma .NET de Microsoft, Entity Framework. En JavaScript y TypeScript hay varios muy extendidos, como TypeORM o Prisma.
Su comodidad tiene un coste conocido. Al ocultar el SQL, un ORM puede generar consultas muy ineficientes sin que el programador lo note. El caso más famoso es el problema de las N+1 consultas (N+1 query problem): para mostrar cien clientes con sus pedidos, el programa hace una consulta para obtener los clientes y luego otra por cada cliente, ciento una en total, cuando bastaría con una o dos. El programador Ted Neward llegó a llamar en 2006 al mapeo objeto-relacional «el Vietnam de la informática», un proyecto en el que se entra con facilidad y del que es difícil salir. Por eso la práctica habitual es usar el ORM para las operaciones sencillas sobre registros y escribir a mano las consultas complejas o críticas.