personaje mapeo datos database orm odm

database - mapeo - orm java



¿Cuál es la diferencia entre un ORM y un ODM? (3)

Estoy tratando de descubrir cuál es la diferencia entre ORM y ODM, por lo que entiendo el concepto, ORM (Object Relational Mapper) mapea las relaciones entre los datos, mientras que ODM (Object Document Mapper) trata los documentos. ¿Estoy en lo cierto al suponer que mySQL es un ejemplo de ORM y MongoDB es un ejemplo de ODM?

Como estoy seguro de que puede ver, no estoy muy familiarizado con la teoría del concepto. ¿Podría alguien aclarar las diferencias entre los dos?


Esencialmente, un ORM usa un controlador de base de datos SQL como ODBC, JDBC u OLEDB para traducir la notación de objeto a notación relacional y un ODM usa una api JSON o JSONB para traducir la notación de Objeto a la notación de Documento.

Hay diferentes tipos de implementaciones bajo el capó.

PD: JSONB es una notación de documentos de texto JSON almacenada en un formato binario como el utilizado por MongoDB.


MySQL es un ejemplo de una base de datos relacional: usted usaría un ORM para traducir sus objetos en código y la representación relacional de los datos.

Ejemplos de ORM son nHibernate , Entity Framework , Dapper y más ...

MongoDB es un ejemplo de una base de datos de documentos: usted usaría un ODM para traducir entre sus objetos en código y la representación de documentos de los datos (si es necesario).

Mandango es un ejemplo de un ODM para MongoDB.


Un ORM mapea entre un Modelo de Objeto y una Base de Datos Relacional. Un ODM mapea entre un Modelo de Objeto y una Base de Datos de Documentos. MySQL no es un ORM, es una base de datos relacional, más específicamente, una base de datos SQL. MongoDB no es un ODM, es una base de datos de documentos.