{"id":58,"date":"2023-09-02T16:49:21","date_gmt":"2023-09-02T14:49:21","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/?page_id=58"},"modified":"2023-10-19T13:19:59","modified_gmt":"2023-10-19T11:19:59","slug":"1-2-el-modelo-entidad-relacion","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/1-2-el-modelo-entidad-relacion\/","title":{"rendered":"1.2. El modelo entidad-relaci\u00f3n"},"content":{"rendered":"<p>Podemos estructurar cualquier realidad en diferentes entidades que pueden interactuar entre ellas siguiendo determinadas reglas. Por ejemplo, el genoma, en tanto que parte de la realidad biol\u00f3gica de una c\u00e9lula, tambi\u00e9n puede estructurarse en distintos componentes. A partir de esta organizaci\u00f3n artificialmente construida, podemos modelar la totalidad de los elementos que lo conforman utilizando entidades y relaciones. Estas estructuras, contenedores de informaci\u00f3n o datos pueden ser digitalizados en un ordenador para su gesti\u00f3n y an\u00e1lisis; en el caso del genoma, an\u00e1lisis bioinform\u00e1ticos.<\/p>\n<p>El modelo entidad-relaci\u00f3n nos ayuda a dise\u00f1ar nuestra propia base de datos. Una entidad representa una clase de elementos en el entorno real que deseamos modelar. Una ocurrencia es una instancia o ejemplo particular de una entidad. La conectividad o participaci\u00f3n entre entidades debe especificarse expl\u00edcitamente mediante relaciones. El n\u00famero de ocurrencias de una entidad que podr\u00e1n relacionarse con instancias de otra entidad ser\u00e1:<\/p>\n<ul>\n<li>Uno a uno (1:1): un elemento de la primera entidad puede relacionarse con un \u00fanico elemento de la segunda.<\/li>\n<li>Uno a varios (1:N): un elemento de la primera entidad puede relacionarse con varios elementos de la segunda (pero no al contrario).<\/li>\n<li>Varios con varios (M:N): un elemento de la primera entidad puede relacionarse con varios elementos de la segunda (y viceversa).<\/li>\n<\/ul>\n<figure id=\"attachment_61\" aria-describedby=\"caption-attachment-61\" style=\"width: 378px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-61\" src=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_1-548x1024.png\" alt=\"\" width=\"378\" height=\"707\" srcset=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_1-548x1024.png 548w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_1-160x300.png 160w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_1.png 731w\" sizes=\"(max-width: 378px) 100vw, 378px\" \/><figcaption id=\"caption-attachment-61\" class=\"wp-caption-text\">Figura 1. Modelo entidad-relaci\u00f3n de un cat\u00e1logo de genes. <br \/>Fuente: elaboraci\u00f3n propia.<\/figcaption><\/figure>\n<p>El modelo contiene tres entidades y dos relaciones. Gr\u00e1ficamente, las entidades se representan utilizando rect\u00e1ngulos, y las relaciones, mediante l\u00edneas rectas con un rombo para indicar la conectividad.<\/p>\n<p>Este esquema basado en entidades y relaciones resulta sencillo de emplear posteriormente para construir la base de datos definitiva. Para mostrar las diferentes etapas de dise\u00f1o, procederemos a modelar un escenario muy habitual en entornos de investigaci\u00f3n bioinform\u00e1ticos: la caracterizaci\u00f3n del cat\u00e1logo de genes de un genoma. Pod\u00e9is observar las diferentes entidades con sus atributos y las relaciones entre entidades que van a formar nuestro modelo en la figura 1.<\/p>\n<p>Los genes son fragmentos de ADN ubicados en una localizaci\u00f3n precisa del genoma que codifican la secuencia de una prote\u00edna. Estas mol\u00e9culas, por otro lado, desempe\u00f1an una funci\u00f3n biol\u00f3gica espec\u00edfica dentro del <a href=\"javascript:void(0);\" class=\"tooltip\" data-toggle=\"popover\" data-placement=\"bottom\" data-content=\"Los conceptos b\u00e1sicos de biolog\u00eda necesarios aqu\u00ed se estudian en la asignatura Fundamentos de biolog\u00eda molecular.\" data-placement=\"top\" data-html=\"true\">organismo<\/a>. L\u00f3gicamente, cada genoma posee su propio cat\u00e1logo de genes. Analizando esta informaci\u00f3n previa, decidimos modelar este entorno utilizando las entidades <strong>genes<\/strong>, <strong>genomas<\/strong> y <strong>funciones<\/strong>, con sus propios atributos (mostrados en la figura 2).<\/p>\n<p>L\u00f3gicamente, las entidades no son objetos aislados de su entorno. Debemos, por tanto, cumpliendo las especificaciones de nuestro problema, unir mediante relaciones aquellas entidades que est\u00e1n interconectadas en el mundo real. En este caso, los genes poseen la capacidad de pertenecer a un genoma para desarrollar una funci\u00f3n concreta en el organismo. Para satisfacer ambas propiedades, definimos las relaciones binarias <strong>pertenencia<\/strong> y <strong>anotaciones<\/strong>, cada una con una conectividad diferente (figura 1). Las entidades y relaciones que forman este modelo deben ser convertidas en tablas. Las entidades y sus atributos pasar\u00e1n a ser tablas de nuestra base de datos, pero no todas las relaciones van a ser tablas, va a depender del tipo de conectividad. Es b\u00e1sico establecer para cada tabla un atributo especial (o una combinaci\u00f3n de ellos) que identifique cada instancia de forma un\u00edvoca. Este atributo especial recibe el nombre de clave primaria. Es preferible usar un c\u00f3digo caracter\u00edstico en lugar de un nombre para facilitar la identificaci\u00f3n de cualquier instancia mediante la clave primaria (por ejemplo, un c\u00f3digo num\u00e9rico asignado en funci\u00f3n del orden de entrada en la tabla).<\/p>\n<figure id=\"attachment_63\" aria-describedby=\"caption-attachment-63\" style=\"width: 750px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-63\" src=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_2-1024x155.png\" alt=\"\" width=\"750\" height=\"114\" srcset=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_2-1024x155.png 1024w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_2-300x45.png 300w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_2-768x116.png 768w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_2-1536x233.png 1536w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_2-2048x310.png 2048w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption id=\"caption-attachment-63\" class=\"wp-caption-text\">Figura 2. Entidades convertidas en tablas.<br \/>Hemos subrayado la clave primaria de cada tabla.<br \/>Fuente: elaboraci\u00f3n propia.<\/figcaption><\/figure>\n<p>Las dos relaciones existentes en nuestro esquema deben modelarse de distinta forma, debido a que cada una presenta una combinaci\u00f3n diferente de posibles ocurrencias entre tablas. La asociaci\u00f3n <em>pertenencia<\/em> entre las tablas <em>genes<\/em> y <em>genomas<\/em> debe representarse con una relaci\u00f3n con cardinalidad 1:N, pues un gen solo pertenece a un genoma, pero un genoma contiene muchos genes. Esta relaci\u00f3n no necesita una tabla nueva, puede implementarse referenciando simplemente desde una tabla (genes), que es la parte <em>n <\/em>de la relaci\u00f3n <em>pertenencia<\/em>, la clave primaria de la otra (genomas) que es la parte 1 de la relaci\u00f3n <em>pertenencia<\/em>. Dentro de la tabla <em>genes<\/em>, este atributo recibe la denominaci\u00f3n de clave for\u00e1nea.<\/p>\n<figure id=\"attachment_65\" aria-describedby=\"caption-attachment-65\" style=\"width: 750px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-65\" src=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_3-1024x95.png\" alt=\"\" width=\"750\" height=\"70\" srcset=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_3-1024x95.png 1024w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_3-300x28.png 300w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_3-768x72.png 768w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_3-1536x143.png 1536w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_3-2048x191.png 2048w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption id=\"caption-attachment-65\" class=\"wp-caption-text\">Figura 3. Relaciones (1:N) convertidas en claves for\u00e1neas.<br \/>Indicamos con un subrayado superior la clave for\u00e1nea de cada tabla.<br \/>Fuente: elaboraci\u00f3n propia.<\/figcaption><\/figure>\n<p>La relaci\u00f3n <em>anotaciones<\/em> entre las tablas <em>genes<\/em> y <em>funciones<\/em> tiene una conectividad M:N, pues un gen puede poseer varias anotaciones, pero una anotaci\u00f3n tambi\u00e9n puede ser compartida por varios genes. Para su correcta implementaci\u00f3n, introduciremos una nueva tabla llamada <em>anotaciones<\/em>. Esta poseer\u00e1, como clave primaria la combinaci\u00f3n de las claves primarias de cada tabla original.<\/p>\n<p>Dado que ambas claves primarias por separado poseen todas las propiedades necesarias, el dise\u00f1ador garantiza con esta medida que cada instancia de esta nueva tabla estar\u00e1 dotada de un identificador \u00fanico, que estar\u00e1 formado por el nombre del gen junto con el nombre de la funci\u00f3n en particular para que sea un identificador de la instancia \u00fanico que no se pueda repetir.<\/p>\n<figure id=\"attachment_67\" aria-describedby=\"caption-attachment-67\" style=\"width: 750px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-67\" src=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_4-1024x123.png\" alt=\"\" width=\"750\" height=\"90\" srcset=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_4-1024x123.png 1024w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_4-300x36.png 300w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_4-768x92.png 768w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_4-1536x184.png 1536w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_4-2048x246.png 2048w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption id=\"caption-attachment-67\" class=\"wp-caption-text\">Figura 4. Relaciones (M:N) convertidas en tablas.<br \/>Fuente: elaboraci\u00f3n propia.<\/figcaption><\/figure>\n<p>Las relaciones con cardinalidad M:N exportadas desde el modelo entidad-relaci\u00f3n est\u00e1n caracterizadas tambi\u00e9n por sus propios atributos. As\u00ed, es posible a\u00f1adir un campo para guardar el origen de cada anotaci\u00f3n (por ejemplo, computacional, experimental o fuente bibliogr\u00e1fica). Podemos extraer esta informaci\u00f3n a partir de los datos recuperados del sistema de anotaci\u00f3n autom\u00e1tica utilizado para poblar de ejemplos nuestro cat\u00e1logo de genes:<\/p>\n<figure id=\"attachment_69\" aria-describedby=\"caption-attachment-69\" style=\"width: 750px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-69\" src=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_5-1024x94.png\" alt=\"\" width=\"750\" height=\"69\" srcset=\"\/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_5-1024x94.png 1024w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_5-300x28.png 300w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_5-768x71.png 768w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_5-1536x141.png 1536w, \/wp-content\/uploads\/sites\/8\/2023\/09\/PID_00298302_5-2048x188.png 2048w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption id=\"caption-attachment-69\" class=\"wp-caption-text\">Figura 5. Atributos en relaciones convertidas en tablas.<br \/>Fuente: elaboraci\u00f3n propia.<\/figcaption><\/figure>\n<p>La selecci\u00f3n de las claves id\u00f3neas resulta esencial dentro del dise\u00f1o de una base de datos relacional. De hecho, la integridad de un modelo relacional debe cumplir dos requisitos fundamentales relacionados con la gesti\u00f3n de estas:<\/p>\n<ol>\n<li>La clave primaria no debe contener un valor indefinido o nulo y el valor ha de ser \u00fanico.<\/li>\n<li>La clave for\u00e1nea debe hacer referencia a una clave primaria de otra tabla.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Podemos estructurar cualquier realidad en diferentes entidades que pueden interactuar entre ellas siguiendo determinadas reglas. Por ejemplo, el genoma, en tanto que parte de la realidad biol\u00f3gica de una c\u00e9lula, tambi\u00e9n puede estructurarse en distintos componentes. A partir de esta organizaci\u00f3n artificialmente construida, podemos modelar la totalidad de los elementos que lo conforman utilizando entidades [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/58"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":8,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/58\/revisions"}],"predecessor-version":[{"id":507,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/pages\/58\/revisions\/507"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/gestion-de-datos\/es\/wp-json\/wp\/v2\/media?parent=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}