{"id":5062,"date":"2022-10-26T00:00:00","date_gmt":"2022-10-26T00:00:00","guid":{"rendered":"https:\/\/techlib.net\/techedu\/object-relational-mapping-orm\/"},"modified":"2022-10-26T00:00:00","modified_gmt":"2022-10-26T00:00:00","slug":"object-relational-mapping-orm","status":"publish","type":"post","link":"https:\/\/techlib.net\/techedu\/object-relational-mapping-orm\/","title":{"rendered":"Object-Relational Mapping (ORM)"},"content":{"rendered":"<p> El mapeo objeto-relacional (ORM) es una t\u00e9cnica de programaci\u00f3n para convertir datos entre sistemas de tipos incompatibles en lenguajes de programaci\u00f3n orientados a objetos. Esto crea, en efecto, una \"base de datos de objetos virtual\" que puede utilizarse desde el lenguaje de programaci\u00f3n. Existen paquetes gratuitos y comerciales que realizan el mapeo objeto-relacional, aunque algunos programadores optan por crear sus propias herramientas ORM. <\/p>\n<p> El ORM es una capa entre la base de datos y la aplicaci\u00f3n que permite que ambas trabajen juntas. En teor\u00eda, se supone que ORM hace que el trabajo con las bases de datos sea mucho m\u00e1s f\u00e1cil y eficiente, adem\u00e1s de mejorar la calidad general del c\u00f3digo. Sin embargo, en la pr\u00e1ctica, ORM puede ser bastante complejo y en realidad puede introducir m\u00e1s problemas de los que resuelve. <br \/>\n Hay varios enfoques diferentes de ORM, cada uno con sus propias ventajas y desventajas. Las herramientas ORM m\u00e1s populares son Active Record, Data Mapper y Unit of Work. <\/p>\n<p> Active Record es el patr\u00f3n ORM m\u00e1s com\u00fan. Es simple y f\u00e1cil de usar, pero puede ser inflexible y no escala bien. <br \/>\n El mapeador de datos es un patr\u00f3n m\u00e1s flexible que separa el modelo de dominio de la capa de persistencia. Esto puede hacer que el c\u00f3digo sea m\u00e1s dif\u00edcil de entender y mantener, pero es m\u00e1s escalable y con mayor rendimiento. <br \/>\n La unidad de trabajo es un patr\u00f3n que rastrea los cambios en los objetos y s\u00f3lo los persiste en la base de datos cuando es necesario. Esto puede hacer que el c\u00f3digo sea m\u00e1s complejo, pero puede mejorar el rendimiento al reducir el n\u00famero de consultas a la base de datos. <\/p>\n<h4> \u00bfPor qu\u00e9 ORM es m\u00e1s lento que las consultas en bruto?<\/h4>\n<p> ORM es un Object Relational Mapper, que es una herramienta que ayuda a mapear los datos de una base de datos relacional a un lenguaje de programaci\u00f3n orientado a objetos. La raz\u00f3n principal por la que ORM es m\u00e1s lento que el raw query es porque tiene que mapear los datos de la base de datos en objetos, lo que lleva tiempo. Adem\u00e1s, el ORM suele utilizar mucha memoria porque tiene que hacer un seguimiento de todos los objetos que ha mapeado. <\/p>\n<h3> ORM puede ser m\u00e1s lento que el SQL crudo.<\/h3>\n<p> La raz\u00f3n principal por la que ORM puede ser m\u00e1s lento que SQL sin procesar es que ORM est\u00e1 dise\u00f1ado para ser abstracto y gen\u00e9rico, mientras que SQL est\u00e1 dise\u00f1ado para ser espec\u00edfico para una base de datos en particular. ORM debe a\u00f1adir una capa de abstracci\u00f3n a SQL para poder interactuar con otras bases de datos. Esto puede causar problemas. Adem\u00e1s, el ORM a veces puede generar consultas SQL ineficientes, lo que tambi\u00e9n puede provocar problemas de rendimiento.   \u00bfEs ORM un marco de trabajo?  No, ORM no es un framework. ORM es una biblioteca que proporciona una capa de abstracci\u00f3n sobre las interacciones con la base de datos.   \u00bfEn qu\u00e9 consiste el ORM?  Un ORM es un mapeador relacional de objetos. Es una pieza de software que mapea entre objetos en su c\u00f3digo y registros en una base de datos. Esto le permite trabajar con los datos de la base de datos de una manera orientada a objetos, sin tener que escribir SQL.   \u00bfPor qu\u00e9 Hibernate se llama ORM?  ORM son las siglas de Object-Relational Mapping. Hibernate es una herramienta ORM que proporciona un marco de trabajo para mapear un modelo de dominio orientado a objetos a una base de datos relacional.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El mapeo objeto-relacional (ORM) es una t\u00e9cnica de programaci\u00f3n para convertir datos entre sistemas de tipos incompatibles en lenguajes de programaci\u00f3n orientados a objetos. Esto crea, en efecto, una \u00abbase de datos de objetos virtual\u00bb que puede utilizarse desde el lenguaje de programaci\u00f3n. Existen paquetes gratuitos y comerciales que realizan el mapeo objeto-relacional, aunque algunos &#8230; <a title=\"Object-Relational Mapping (ORM)\" class=\"read-more\" href=\"https:\/\/techlib.net\/techedu\/object-relational-mapping-orm\/\" aria-label=\"Leer m\u00e1s sobre Object-Relational Mapping (ORM)\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1431,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[],"class_list":["post-5062","post","type-post","status-publish","format-standard","hentry","category-desarrollo-de-software"],"_links":{"self":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/5062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/users\/1431"}],"replies":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/comments?post=5062"}],"version-history":[{"count":0,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/5062\/revisions"}],"wp:attachment":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/media?parent=5062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/categories?post=5062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/tags?post=5062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}