jueves, 20 de febrero de 2014

Modelo entidad-relación ER

El modelo entidad-relación ER es un modelo de datos que permite representar cualquier abstracción, percepción y conocimiento en un sistema de información formado por un conjunto de objetos denominados entidades y relaciones, incorporando una representación visual conocida como diagrama entidad-relación.

CONCEPTOS DEL MODELO ER

Ejemplares - Conjuntos - Extensión - Instancia. Se denominan ejemplares a los registros que guardan una serie de características similares o que pueden ser agrupados o clasificados dadas sus características comunes en grupos bien delimitados. A los ejemplares también se los conoce como registros de una tabla de una base de datos, o en términos de abstracción como la extensión de la base de datos. Por ejemplo es la lista de usuarios de una biblioteca, la lista de productos con sus características, la lista de tipos de documentos y su definición.

Entidad. La entidad es cualquier clase de objeto o conjunto de elementos presentes o no, en un contexto determinado dado por el sistema de información o las funciones y procesos que se definen en un plan de automatización. Dicho de otra forma, las entidades las constituyen las tablas de la base de datos que permiten el almacenamiento de los ejemplares o registros del sistema, quedando recogidos bajo la denominación o título de la tabla o entidad. Por ejemplo, la entidad usuarios guarda los datos personales de los usuarios de la biblioteca, la entidad catalogo registra todos los libros catalogados, la entidad circulación todos los libros prestados y devueltos y así sucesivamente con todos los casos.

Atributos - Intención. Son las características, rasgos y propiedades de una entidad, que toman como valor una instancia particular. Es decir, los atributos de una tabla son en realidad sus campos descriptivos, el predicado que permite definir lo que decimos de un determinado sujeto. Por ejemplo de una entidad o tabla catálogo, se pueden determinar los atributos título, subtítulo, título paralelo, otras formas del título, autor principal, otras menciones de responsabilidad, edición, mención de edición, editorial, lugar de publicación, fecha de publicación,...

Relación. Vínculo que permite definir una dependencia entre los conjuntos de dos o más entidades. Esto es la relación entre la información contenida en los registros de varias tablas. Por ejemplo, los usuarios suelen clasificarse según una lista de tipos de usuarios, ya sean profesores, alumnos o investigadores. De esta forma es posible emitir la relación entre el usuario Jorge Martínez como alumno y Enrique Valtierra como profesor. Las relaciones son definidas de forma natural en un diagrama relacional para expresar un modelo cognitivo que dará lugar posteriormente a las interrelaciones de las entidades.

Interrelación. Las interrelaciones las constituyen los vínculos entre entidades, de forma tal que representan las relaciones definidas en el esquema relacional de forma efectiva. Esto no sólo la relación de los registros sino de sus tablas y de las características de la interrelación entre las entidades, a través de un campo clave que actúa como código de identificación y referencia para relacionar (es decir, como nexo de unión y articulación de la relación). Los tipos de interrelaciones entre entidades o tablas se realizan aplicando las reglas de cardinalidad y modalidad.

Entidades fuertes. Lo constituyen las tablas principales de la base de datos que contienen los registros principales del sistema de información y que requieren de entidades o tablas auxiliares para completar su descripción o información. Por ejemplo la tabla usuario es una entidad fuerte en relación a la tabla tipos de usuarios, que es una entidad débil dada su condición auxiliar para clasificar a los usuarios registrados en la biblioteca.

Entidades débiles. Son entidades débiles a las tablas auxiliares de una tabla principal a la que completan o complementan con la información de sus registros relacionados. Por ejemplo también son consideradas entidades débiles las tablas intermedias que sirven para compartir información de varias tablas principales.

Modelo entidad relación
Objeto de la base de datos
Ejemplo
Ejemplares – Conjuntos – Extensión
Registros de una tabla – Conjunto de registros

Conjunto-Usuarios{Jorge Martínez(1|alumno), Enrique Valtierra(2|profesor), Miguel dos Santos(3|investigador)}

Entidad
Tabla de la base de datos

Tabla usuarios

Atributos – Intención
Campos de una tabla

id, nombre, apellidos, tipo de usuario, dni, dirección, teléfono

Relación
Vínculo entre conjuntos

Jorge Martínez es investigador

Interrelación
Relación entre tablas

Tabla Usuarios relacionada con Tabla Tipo de usuarios

Entidades fuertes
Tabla principal

Tabla Usuarios

Entidades débiles
Tabla auxiliar

Tabla Tipo de usuarios

Tabla1. Esquema con algunos elementos fundamentales del diagrama ER

Clave. Es el campo o atributo de una entidad o tabla que tiene como objetivo distinguir cada registro del conjunto, sirviendo sus valores como datos vinculantes de una relación entre registros de varias tablas.
  • Superclave. Es la combinación de campos clave que identifican unívocamente un registro en una tabla o entidad. 
  • Clave principal primaria. Permiten identificar unívocamente cada registro de una tabla. Por ejemplo campo auto-numérico interno ID.
  • Clave candidata. Campos que cumplen las condiciones de identificación única de registros, pero que no fueron definidos como principales por el diseñador. Por ejemplo el DOI (Document Object Identifier) es un campo que define unívocamente un registro de un documento en una tabla o entidad concreta. No obstante a efectos de gestión interna del sistema el campo principal ID que contiene un valor numérico correlativo, permite un tratamiento más sencillo que el DOI.
  • Clave externa. Campo clave conformado por el valor de una clave principal primaria de otra tabla. Por ejemplo el campo id_tipodeusuario en la tabla usuarios es un campo clave externo que guarda el valor del campo primario ID de la tabla tipodeusuario, especificando de esa forma que un usuario como Enrique Valtierra sea de tipo 2 es decir profesor.

Integridad referencial. Se denomina integridad referencial al tipo de interrelación que se produce entre tablas mediante un campo clave que deberá contener la cadena alfanumérica exacta al identificador de la tabla auxiliar para poder realizar la relación entre los registros. En caso contrario no se produce la relación. Además, se trata de un mecanismo que evita duplicidades e incorrecciones ya que la propiedad de integridad referencial conmina a que los datos de un usuario además de su identificador ID sean distintos al de los demás. Dicho de otra forma, no pueden existir dos registros iguales con los mismos datos.

Tipos de relaciones
  • Según cardinalidad. La cardinalidad se representan en un diagrama ER como una etiqueta que se ubica en ambos extremos de la línea de relación de las entidades y que puede contener diversos valores entre los que destacan comúnmente el 1 y el *, obteniendo los siguientes tipos:
    • Relación 1 a 1. La relación uno a uno, define que un único registro de la tabla puede estar relacionado con un único registro de la tabla relacionada.
Figura1. Esquema de relación 1 a 1
    • Relación 1 a *. La relación de uno a varios, define que un registro dado de una tabla auxiliar o secundaria sólo puede estar vinculado con un único registro de la tabla principal con la que está relacionada.
Figura2. Esquema de relación 1 a muchos
    • Relación * a *. La relación de varios a varios, define que un registro de una tabla puede estar relacionado con varios registros de la tabla relacionada y viceversa.
Figura3. Esquema de relación muchos a muchos
  • Según modalidad
    • Optativa. La relación entre un registro de una tabla y varios de la tabla relacionada, puede existir o no. 
    • Obligatoria. La relación entre un registro de una tabla y otro de la tabla relacionada es obligada, debe existir siempre.
Figura4. Esquema de relaciones optativas y obligatorias

Ejemplos

Relación 1 a 1. Cada documento adquirido es registrado podría equipararse a la cardinalidad 1 a 1. Esto significa que cada documento que se introduce en el módulo de adquisiciones (y por ende en su tabla) tiene su correspondencia con los documentos que finalmente se reciben en la biblioteca para ser dados de alta en la tabla registro. De esta forma, puede haber o no documentos en proceso de adquisición (relación optativa). En cambio la tabla registro se encarga de registrar los documentos que se reciben por lo que su relación es de obligatoriedad (todo documento registrado está presente en la tabla de adquisiciones). Todo ello no implica que todos los documentos en fase de adquisición tengan que estar registrados. Pueden existir documentos en fase de adquisición que no hubieran sido registrados. Véase ejemplo de la figura5.

Figura5. Los documentos que se adquieren son registrados
Relación 1 a *. Los usuarios de una biblioteca suelen solicitar préstamos, por lo tanto la relación que se produce es de uno a muchos. Un usuario puede pedir o no el préstamo de uno o varios libros o documentos. Por lo tanto, pueden existir uno o ningún usuario solicitando el préstamo, pero para que exista la relación con la tabla préstamos, ésta debe registrar al usuario, su fecha de préstamo y devolución. Véase figura6. Por otra parte, el préstamo se compone no sólo del usuario que lo solicita, sino del documento u objeto que le es prestado, que es el caso que se expone en la figura7. Al igual que en la relación del usuario con la tabla préstamo, un documento puede o no ser prestado. Un documento puede haber sido prestado y devuelto muchas veces y para que exista la relación entre la tabla préstamos y catálogo, debe existir un registro que integre su información (de aquí su modalidad de relación obligatoria). Todo ello conduce a una relación más compleja que puede observarse en la figura8. Lo que en un principio se consideraba una relación de 1 a muchos, termina convirtiéndose en una relación de muchos a muchos gracias a una tabla débil o intermedia que almacena la información necesaria del usuario y del documento para poder efectuar el préstamo correspondiente. Por lo tanto la tabla préstamos, relaciona muchos usuarios con muchos libros en múltiples conjuntos o registros que pueden estar activos o finalizados. Recuérdese que los libros una vez devueltos vuelven a estar disponibles para dar servicio a terceros usuarios. Por ello se concluye que para que un préstamo tenga lugar, deberá estar presente el identificador del usuario y del documento siendo obligatorios en todo proceso de circulación.

Figura6. Los usuarios solicitan préstamos
Figura7. Los documentos y libros son prestados
Figura8. Lo documentos son prestados a los usuarios
Relación * a *. Cuando se catalogan los documentos en una biblioteca, al seguir las indicaciones de las normas de catalogación, se advierte un apartado de suma importancia; las autoridades. Éstas definen la responsabilidad intelectual, artística, cognitiva, editorial, administrativa, introductoria, del documento. Por ello no es de extrañar que en la catalogación los campos de autoridades sean repetibles, dado que pueden existir 1 o más autoridades. Esta relación es la que se advierte en la figura9. Cada libro puede tener o no 1 o muchas autoridades. Por lo tanto una autoridad puede estar presente en varios libros o formar parte de varias responsabilidades en el mismo.

Figura9. Los libros al ser catalogados pueden tener o no autoridades

10 comentarios:

  1. que es muy interesante saber eso por que nos ayuda a tener claro nuestras dudas

    ResponderEliminar
  2. Muchas Gracias por su aporte, me ha quedo muy claro todo, en verdad que me ha sido de ayuda.
    ¡Saludos!

    ResponderEliminar
  3. Hola tengo una aplicacion DOS en la cual existe una tabla (nombre , directorio) donde estan diferentes empresas y cuando escojo una empresa va directamente al directorio de la empresa en donde estan las tablas de esa empresa, es asi como la aplicacion sirve para muchas empresas.Cuando creo una nueva empresa creo un directorio unico para la empresa y alli copio todas las tablas desde un lugar donde estan vacias y las grabo en ese directorio, para luego llenarlas con la aplicacion. Pregunto se puede hacer esto con un sistema WEB (mysql,poster,mongodb) ,de todos modos muchas gracias por leerme y perdonar mi ignorancia.

    ResponderEliminar
  4. Gracias me ayudo mucho para mi examen

    ResponderEliminar
  5. Muy buen aporte amigo, sigue así.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.