{"id":3292,"date":"2023-06-22T15:00:31","date_gmt":"2023-06-22T15:00:31","guid":{"rendered":"https:\/\/www.appyweb.es\/diccionario\/?post_type=project&#038;p=3292"},"modified":"2024-03-21T12:10:05","modified_gmt":"2024-03-21T12:10:05","slug":"orm","status":"publish","type":"page","link":"https:\/\/www.appyweb.es\/diccionario\/orm\/","title":{"rendered":"ORM"},"content":{"rendered":"<h1><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-11990\" src=\"https:\/\/www.appyweb.es\/diccionario\/wp-content\/uploads\/2024\/03\/ORM-300x180.jpg\" alt=\"ORM\" width=\"970\" height=\"582\" srcset=\"https:\/\/www.appyweb.es\/diccionario\/wp-content\/uploads\/2024\/03\/ORM-300x180.jpg 300w, https:\/\/www.appyweb.es\/diccionario\/wp-content\/uploads\/2024\/03\/ORM-768x461.jpg 768w, https:\/\/www.appyweb.es\/diccionario\/wp-content\/uploads\/2024\/03\/ORM.jpg 1000w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><\/h1>\n<p>Las t\u00e9cnicas de programaci\u00f3n dedicada a base de datos son un fuerte fundamento te\u00f3rico que ha guiado la evoluci\u00f3n y la implementaci\u00f3n de las t\u00e9cnicas para tratar las bases de datos relacionales. Actualmente, <strong>las experiencias en mapeo objeto relacional<\/strong> (ORM por sus siglas en ingl\u00e9s) se han destacado por ser t\u00e9cnicas autom\u00e1ticas e independientes a los datos de origen, donde se traducen c\u00f3digos de datos en sentencias de lenguaje de consulta estructurados, para tales fines.<\/p>\n<h2>\u00bfQu\u00e9 es ORM?<\/h2>\n<p>Es una t\u00e9cnica de desarrollo de software (programaci\u00f3n), donde se simplifica a gran escala el trabajo del <a href=\"https:\/\/www.appyweb.es\/desarrollo-app\/\">desarrollo de aplicaciones multiplataforma<\/a>. Su objetivo es conectar las diferentes bases de datos relacionales u or\u00edgenes de datos (ODBC) con diferentes tipos de lenguaje de programaci\u00f3n orientado a objetos.<\/p>\n<p>Procede de las siglas <em>Object Relational Mapping<\/em> (Mapeo de Objeto Relacional). Es un modelo excelente de programaci\u00f3n que transfor<strong>ma las tablas de una base de datos en entidades f\u00e1ciles de administrar<\/strong> por parte del desarrollador de software.<\/p>\n<h2>\u00bfPara qu\u00e9 sirve?<\/h2>\n<p>La funci\u00f3n principal de esta t\u00e9cnica de programaci\u00f3n es convertir los datos de los objetos en formato correcto <strong>para que sea m\u00e1s simple de guardar la informaci\u00f3n en una base de datos<\/strong>, a esto se le denomina <em>mapeo<\/em>, lo que crea una base de datos virtual vinculados a un motor de persistencia.<\/p>\n<p>Por otro lado, cuando se trata el <a href=\"https:\/\/www.appyweb.es\/diseno-web\/\">desarrollo de aplicaciones o el dise\u00f1o web de sitios<\/a> que necesiten conectarse constantemente con una base de datos, esta t\u00e9cnica funciona para simplificar el proceso de transformaci\u00f3n de la informaci\u00f3n, especialmente cuando se trabaja en Tablas. Al utilizar <strong>un ORM el proceso es totalmente autom\u00e1tico e independiente<\/strong>, de forma que tambi\u00e9n ser\u00e1 posible cambiar el motor de persistencia cuando sea necesario.<\/p>\n<h2>Origen<\/h2>\n<p>Las t\u00e9cnicas de mapeo relacionales datan del a\u00f1o 2001, donde se liberan las primeras sentencias de programaci\u00f3n bajo ambientes SQL, Java, entre otras. Estas se destacaban por la ejecuci\u00f3n a tiempo de sus datos, manteniendo portabilidad entre los motores de BD.<\/p>\n<h2>Ejemplo de ORM<\/h2>\n<p>Estos factores proporcionan el desarrollo de una aplicaci\u00f3n en espec\u00edfico <strong>con ayuda de un mapeo en forma independiente<\/strong>, son flexibles y de f\u00e1cil uso su integraci\u00f3n. Tienen una excelente abstracci\u00f3n de la base de datos consultada, mantienen seguridad en la capa de acceso contra ataques, entre otras. Pero, \u00bfc\u00f3mo se aplica todo esto en un caso real?<\/p>\n<p>Por ejemplo, si una empresa tiene una tabla de clientes y quiere transformarla en una base de datos virtual se deben tener en cuenta las funciones b\u00e1sicas sobre ella, como son las sentencias CRUD de SQL, su significado en ingl\u00e9s \u201ccrear, obtener, actualizar y borrar\u201d. En este sentido, la tabla b\u00e1sica tendr\u00eda el siguiente aspecto, teniendo en cuenta que se almacena el nombre, la identificaci\u00f3n, el email y el pa\u00eds del cliente.<\/p>\n<p><code>String query = \"INSERT INTO clientes (id,nombre,email,pais) VALUES (@id, @nombre, @email, @pais)\";<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@id\",\"1\")<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@nombre\",\"nombre\")<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@email\",\"email\")<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@pais\",\"pais\")<\/code><\/p>\n<p><code>command.ExecuteNonQuery();<\/code><\/p>\n<p>Cuando se utiliza un sistema ORM el c\u00f3digo se reduce considerablemente, pero tambi\u00e9n ser\u00e1 m\u00e1s f\u00e1cil aplicar las sentencias \u201cinsertar, seleccionar y actualizar\u201d en caso de que sea necesario introducir un nuevo campo, por ejemplo, el apellido del cliente. <strong>Esta sentencia se llevar\u00e1n a cabo de forma autom\u00e1tica gracias al sistema<\/strong>, una vez aplicado se ver\u00e1 de la siguiente forma.<\/p>\n<p><code>String query = \"INSERT INTO clientes (id,nombre,email,pais) VALUES (@id, @nombre, @email, @pais)\";<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@id\",\"1\")<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@nombre\",\"nombre\")<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@email\",\"email\")<\/code><\/p>\n<p><code>command.Parameters.AddWithValue(\"@pais\",\"pais\")<\/code><\/p>\n<p><code>command.ExecuteNonQuery();<\/code><\/p>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[ \n{\"@type\":\"Question\",\"name\":\"\ud83d\udccc \u00bfQu\u00e9 es ORM?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<\/p>\n<p>Es una t\u00e9cnica de desarrollo de software (programaci\u00f3n), donde se simplifica a gran escala el trabajo del <a href='https:\/\/www.appyweb.es\/desarrollo-app\/'>desarrollo de aplicaciones multiplataforma<\/a>. Su objetivo es conectar las diferentes bases de datos relacionales u or\u00edgenes de datos (ODBC) con diferentes tipos de lenguaje de programaci\u00f3n orientado a objetos.<\/p>\n<p>Procede de las siglas <em>Object Relational Mapping<\/em> (Mapeo de Objeto Relacional). Es un modelo excelente de programaci\u00f3n que transfor<strong>ma las tablas de una base de datos en entidades f\u00e1ciles de administrar<\/strong> por parte del desarrollador de software.<\/p>\n<p>\"}},\n{\"@type\":\"Question\",\"name\":\"\ud83d\udccc \u00bfPara qu\u00e9 sirve?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<\/p>\n<p>La funci\u00f3n principal de esta t\u00e9cnica de programaci\u00f3n es convertir los datos de los objetos en formato correcto <strong>para que sea m\u00e1s simple de guardar la informaci\u00f3n en una base de datos<\/strong>, a esto se le denomina <em>mapeo<\/em>, lo que crea una base de datos virtual vinculados a un motor de persistencia.<\/p>\n<p>Por otro lado, cuando se trata el <a href='https:\/\/www.appyweb.es\/diseno-web\/'>desarrollo de aplicaciones o el dise\u00f1o web de sitios<\/a> que necesiten conectarse constantemente con una base de datos, esta t\u00e9cnica funciona para simplificar el proceso de transformaci\u00f3n de la informaci\u00f3n, especialmente cuando se trabaja en Tablas. Al utilizar <strong>un ORM el proceso es totalmente autom\u00e1tico e independiente<\/strong>, de forma que tambi\u00e9n ser\u00e1 posible cambiar el motor de persistencia cuando sea necesario.<\/p>\n<p>\"}},\n{\"@type\":\"Question\",\"name\":\"\ud83d\udccc Origen\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<\/p>\n<p>Las t\u00e9cnicas de mapeo relacionales datan del a\u00f1o 2001, donde se liberan las primeras sentencias de programaci\u00f3n bajo ambientes SQL, Java, entre otras. Estas se destacaban por la ejecuci\u00f3n a tiempo de sus datos, manteniendo portabilidad entre los motores de BD.<\/p>\n<p>\"}},\n{\"@type\":\"Question\",\"name\":\"\ud83d\udccc Ejemplo de ORM\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<\/p>\n<p>Estos factores proporcionan el desarrollo de una aplicaci\u00f3n en espec\u00edfico <strong>con ayuda de un mapeo en forma independiente<\/strong>, son flexibles y de f\u00e1cil uso su integraci\u00f3n. Tienen una excelente abstracci\u00f3n de la base de datos consultada, mantienen seguridad en la capa de acceso contra ataques, entre otras. Pero, \u00bfc\u00f3mo se aplica todo esto en un caso real?<\/p>\n<p>Por ejemplo, si una empresa tiene una tabla de clientes y quiere transformarla en una base de datos virtual se deben tener en cuenta las funciones b\u00e1sicas sobre ella, como son las sentencias CRUD de SQL, su significado en ingl\u00e9s \u201ccrear, obtener, actualizar y borrar\u201d. En este sentido, la tabla b\u00e1sica tendr\u00eda el siguiente aspecto, teniendo en cuenta que se almacena el nombre, la identificaci\u00f3n, el email y el pa\u00eds del cliente.<\/p>\n<p><code>String query = 'INSERT INTO clientes (id,nombre,email,pais) VALUES (@id, @nombre, @email, @pais)';<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@id','1')<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@nombre','nombre')<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@email','email')<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@pais','pais')<\/code><\/p>\n<p><code>command.ExecuteNonQuery();<\/code><\/p>\n<p>Cuando se utiliza un sistema ORM el c\u00f3digo se reduce considerablemente, pero tambi\u00e9n ser\u00e1 m\u00e1s f\u00e1cil aplicar las sentencias \u201cinsertar, seleccionar y actualizar\u201d en caso de que sea necesario introducir un nuevo campo, por ejemplo, el apellido del cliente. <strong>Esta sentencia se llevar\u00e1n a cabo de forma autom\u00e1tica gracias al sistema<\/strong>, una vez aplicado se ver\u00e1 de la siguiente forma.<\/p>\n<p><code>String query = 'INSERT INTO clientes (id,nombre,email,pais) VALUES (@id, @nombre, @email, @pais)';<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@id','1')<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@nombre','nombre')<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@email','email')<\/code><\/p>\n<p><code>command.Parameters.AddWithValue('@pais','pais')<\/code><\/p>\n<p><code>command.ExecuteNonQuery();<\/code><\/p>\n<p>\"}}\n]}<\/script><\/p>\n<h2>M\u00e1s informaci\u00f3n sobre ORM<\/h2>\n<p>Si quieres aplicar este sistema para mejorar tu proceso de desarrollo de apps, te tienes que informar m\u00e1s al respecto, aqu\u00ed tienes algunos enlaces para ello.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.appyweb.es\/diccionario\/mysql\/\">\u00bfQu\u00e9 es el MySQL y para qu\u00e9 sirve?<\/a><\/li>\n<li><a href=\"https:\/\/www.esic.edu\/rethink\/tecnologia\/el-orm-como-herramienta-eficiente-de-trabajo\" rel=\"nofollow noopener\" target=\"_blank\">El ORM como herramienta eficiente de trabajo<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las t\u00e9cnicas de programaci\u00f3n dedicada a base de datos son un fuerte fundamento te\u00f3rico que ha guiado la evoluci\u00f3n y la implementaci\u00f3n de las t\u00e9cnicas para tratar las bases de datos relacionales. Actualmente, las experiencias en mapeo objeto relacional (ORM por sus siglas en ingl\u00e9s) se han destacado por ser t\u00e9cnicas autom\u00e1ticas e independientes a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11990,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-3292","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/pages\/3292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/comments?post=3292"}],"version-history":[{"count":5,"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/pages\/3292\/revisions"}],"predecessor-version":[{"id":11995,"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/pages\/3292\/revisions\/11995"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/media\/11990"}],"wp:attachment":[{"href":"https:\/\/www.appyweb.es\/diccionario\/wp-json\/wp\/v2\/media?parent=3292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}