¿Que es un ORM (object-relational mapping) ?


 La principal ventaja que aporta el ORM es la reutilización, permitiendo llamar a los métodos de un objeto de datos desde varias partes de la aplicación e incluso desde diferentes aplicaciones. La capa ORM también encapsula la lógica de los datos; como por ejemplo, el cálculo de la puntuación de un usuario de un foro en función de las aportaciones que ha realizado al foro y en función del éxito de esas aportaciones. Cuando una página quiere mostrar esa puntuación de un usuario, simplemente invoca un método del modelo de datos, sin preocuparse de cómo se realiza el cálculo. Si el método de cálculo sufre alguna variación, solo es necesario modificar el método que calcula la puntuación en el modelo, sin necesidad de modificar el resto de la aplicación.


La utilización de objetos en vez de registros y de clases en vez de tablas, tiene otra ventaja: permite añadir métodos accesores en los objetos que no tienen relación directa con una tabla. Si se dispone por ejemplo de una tabla llamada cliente con dos campos llamados nombre y apellidos, puede que se necesite un dato llamado NombreCompleto que incluya y combine el nombre y los apellidos. En el mundo orientado a objetos, es tan fácil como añadir un método accesor a la clase Cliente. Desde el punto de vista de la aplicación, no existen diferencias entre los atributos Nombre, Apellidos, NombreCompleto de la clase Cliente. Solo la propia clase es capaz de determinar si un atributo determinado se corresponde con una columna de la base de datos.

Existe otra consideración importante que hay que tener en cuenta cuando se crean elementos de acceso

a los datos: las empresas que crean las bases de datos utilizan variantes diferentes del lenguaje SQL. Si se cambia a otro sistema gestor de bases de datos, es necesario reescribir parte de las consultas SQL que se definieron para el sistema anterior. Si se crean las consultas mediante una sintaxis independiente de la base de datos y un componente externo se encarga de traducirlas al lenguaje SQL concreto de la base de datos, se puede cambiar fácilmente de una base de datos a otra. Este es precisamente el objetivo de las capas de abstracción de bases de datos. Esta capa obliga a utilizar una sintaxis específica para las consultas y a cambio realiza el trabajo sucio de optimizar y adaptar el lenguaje SQL a la base de datos concreta que se está utilizando.

Cuando se desarrollaban las primeras soluciones software para trabajar con datos persistentes, el mismo software debía de implementar la lógica necesaria de una base de datos para poder realizar las operaciones básicas.

Con el paso del tiempo los Sistemas de Bases de Datos Relacionales han sido líderes en todos los proyectos para almacenar toda la información necesaria definiendo distintas entidades con sus atributos y relaciones entre estas. Para acceder a estos datos se desarrollaron interfaces para cada sistema de base de datos con su propio lenguaje SQL específico, permitiendo recuperar y manipular esta información desde nuestra propia aplicación.

Para realizar esta gestión de los datos el lenguaje de programación orientados a objetos perdía cierta de sus características por lo que se buscaron soluciones para alinear la información con los objetos de nuestra aplicación. Así, en busca de solucionar los problemas que esto traía se intentó proporcionar una solución eficiente y alineada con las tecnologías actuales del mercado.

La principal ventaja de la capa de abstracción es la portabilidad, porque hace posible el cambiar la aplicación a otra base de datos, incluso en mitad del desarrollo de un proyecto. Si se debe desarrollar rápidamente un prototipo de una aplicación y el cliente no ha decidido todavía la base de datos que mejor se ajusta a sus necesidades, se puede construir la aplicación utilizando SQLite y cuando el cliente haya tomado la decisión, cambiar fácilmente a MySQL, PostgreSQL o Oracle. Solamente es necesario cambiar una línea en un archivo de configuración y todo funciona correctamente.


Referencias

https://uniwebsidad.com/libros/symfony-1-4/capitulo-8/por-que-utilizar-un-orm-y-una-capa-de-abstraccion

https://www.youtube.com/watch?v=dHQ-I7kr_SY

https://www.techyv.com/article/importance-object-relational-mapping-java-ee/

https://adrianalonso.es/desarrollo-web/backend/aprende-ya-que-es-un-orm/

http://interviewquestionjava.blogspot.com/2014/01/framework-orm-object-relational-mapping.html

Comentarios

Entradas populares de este blog

¿Qué es la JCAHO Joint Commission on Accreditation of Healthcare Organizations?

PARSEO DEL CODIGO PDF417 DEL DNI ARGENTINO

¿Como instalar El Cliente de SOPHOS VPN ?