El modelo ENTIDAD RELACIÓN (E-R) está basado en una percepción del mundo real consistente en objetos básicos llamados entidades y de relaciones entre estos objetos. Se desarrolló para facilitar el diseño de bases de datos permitiendo la especificación de un esquema de la empresa que representa la estructura lógica completa de una base de datos.
El modelo de datos E-R es uno de los diferentes modelos de datos semánticos; el aspecto semántico del modelo yace en la representación del significado de los datos. El modelo Entidad Relación es extremadamente útil para hacer corresponder los significados e interacciones de las empresas del mundo real con un esquema conceptual. Debido a esta utilidad, muchas herramientas de diseño de bases de datos se basan en los conceptos del modelo Entidad Relación.
Conceptos Básicos del Modelo Entidad Relación
Hay tres nociones básicas que emplea el modelo Entidad Relación con respecto a los datos: conjuntos de entidades, conjuntos de relaciones y atributos.
Conjuntos de entidades
Una entidad es una «cosa» u «objeto» en el mundo real que es distinguible de todos los demás objetos. Por ejemplo, cada persona en un desarrollo es una entidad. Una entidad tiene un conjunto de propiedades, y los valores para algún conjunto de propiedades pueden identificar una entidad de forma unívoca. Por ejemplo, el D.N.I. 67.789.901 identifica unívocamente una persona particular en la empresa.
Análogamente, se puede pensar en los préstamos bancarios como entidades, y un número de préstamo P-15 en la sucursal de Castellana identifica unívocamente una entidad de préstamo. Una entidad puede ser concreta, como una persona o un libro, o puede ser abstracta, como un préstamo, unas vacaciones o un concepto.
Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos. El conjunto de todas las personas que son clientes en un banco dado, por ejemplo, se pueden definir como el conjunto de entidades cliente.
Análogamente, el conjunto de entidades préstamo podría representar el conjunto de todos los préstamos concedidos por un banco particular. Las entidades individuales que constituyen un conjunto se llaman la extensión del conjunto de entidades. Así, todos los clientes de un banco son la extensión del conjunto de entidades cliente.
Los conjuntos de entidades no son necesariamente disjuntos. Por ejemplo, es posible definir el conjunto de entidades de todos los empleados de un banco (empleado) y el conjunto de entidades de todos los clientes del banco (cliente).
Entidad “persona”
Una entidad persona puede ser una entidad empleado, una entidad cliente, ambas cosas, o ninguna. Una entidad se representa mediante un conjunto de atributos. Los atributos describen propiedades que posee cada miembro de un conjunto de entidades.
La designación de un atributo para un conjunto de entidades expresa que la base de datos almacena información similar concerniente a cada entidad del conjunto de entidades; sin embargo, cada entidad puede tener su propio valor para cada atributo. Posibles atributos del conjunto de entidades cliente son id-cliente, nombre-cliente, calle-cliente y ciudad-cliente.
En la vida real, habría más atributos, tales como el número de la calle, el número del portal, la provincia, el código postal, y la comunidad autónoma, pero no se incluyen en el ejemplo simple. Posibles atributos del conjunto de entidades préstamo son número-préstamo e importe. Cada entidad tiene un valor para cada uno de sus atributos.
Por ejemplo, una entidad cliente en concreto puede tener el valor 32.112.312 para id-cliente, el valor Santos para nombre-cliente, el valor Mayor para callecliente y el valor Peguerinos para ciudad-cliente. El atributo id-cliente se usa para identificar unívocamente a los clientes, dado que no hay más de un cliente con el mismo nombre, calle y ciudad.
En los Estados Unidos, muchas empresas encuentran conveniente usar el número seguridad-social de una persona1 como un atributo cuyo valor identifica unívocamente a la persona. En general la empresa tendría que crear y asignar un identificador a cada cliente. Para cada atributo hay un conjunto de valores permitidos, llamados el dominio, o el conjunto de valores, de ese atributo.
Otros atributos
El dominio del atributo nombrecliente podría ser el conjunto de todas las cadenas de texto de una cierta longitud. Análogamente, el dominio del atributo número-préstamo podría ser el conjunto de todas las cadenas de la forma «P-n», donde n es un entero positivo. Una base de datos incluye así una colección de conjuntos de entidades, cada una de las cuales contiene un número de entidades del mismo tipo.
Una base de datos de un banco que consta de dos conjuntos de entidades, cliente y préstamo. Formalmente, un atributo de un conjunto de entidades es una función que asigna al conjunto de entidades un dominio. Como un conjunto de entidades puede tener diferentes atributos, cada entidad se puede describir como un conjunto de pares (atributo,valor), un par para cada atributo del conjunto de entidades.
Por ejemplo, una entidad concreta cliente se puede describir mediante el conjunto {(id-cliente, 67.789.901), (nombre-cliente, López), (calle-cliente, Mayor), (ciudad-cliente, Peguerinos)}, queriendo decir que la entidad describe una persona llamada López que tiene D.N.I. número 67.789.901, y reside en la calle Mayor en Peguerinos. Se puede ver, en este punto, que existe una integración del esquema abstracto con el desarrollo real de la empresa que se está modelando.
Los valores de los atributos que describen una entidad constituirán una porción significante de los datos almacenados en la base de datos. Un atributo, como se usa en el modelo E-R, se puede caracterizar por los siguientes tipos de atributo.
Atributos simples y compuestos
En los ejemplos considerados hasta ahora, los atributos han sido simples; es decir, no están divididos en subpartes. Los atributos compuestos, en cambio, se pueden dividir en subpartes (es decir, en otros atributos). Por ejemplo, nombre-cliente podría estar estructurado como un atributo compuesto consistente en nombre, primer-apellido y segundo-apellido.
Usar atributos compuestos en un esquema de diseño es una buena elección si el usuario desea referirse a un atributo completo en algunas ocasiones y, en otras, a algún componente del atributo. Se podrían haber sustituido los atributos del conjunto de entidades cliente, calle-cliente y ciudad-cliente, por el atributo compuesto dirección-cliente, con los atributos calle, ciudad, provincia, y código-postal 2. Los atributos compuestos ayudan a agrupar los atributos relacionados, haciendo los modelos más claros.
Nótese también que un atributo compuesto puede aparecer como una jerarquía.
Volviendo al ejemplo del atributo compuesto dirección-cliente, su componente calle puede ser a su vez dividido en número-calle, nombre-calle y piso. Estos ejemplos de atributos compuestos para el conjunto de entidades cliente se representa.
Atributos monovalorados y multivalorados
Los atributos que se han especificado en los ejemplos tienen todos un valor sólo para una entidad concreta. Por ejemplo, el atributo número-préstamo para una entidad préstamo específico, referencia a un único número de préstamo. Tales atributos se llaman monovalorados. Puede haber ocasiones en las que un atributo tiene un conjunto de valores para una entidad específica. Considérese un conjunto de entidades empleado con el atributo número-teléfono.
Cualquier empleado particular puede tener cero, uno o más números de teléfono. Este tipo de atributo se llama multivalorado. En ellos, se pueden colocar apropiadamente límites inferior y superior en el número de valores en el atributo multivalorado. Como otro ejemplo, un atributo nombresubordinado del conjunto de entidades empleado sería multivalorado, ya que un empleado en concreto podría tener cero, uno o más subordinados.
Cuando sea apropiado se pueden establecer límites superior e inferior en el número de valores de un atributo multivalorado. Por ejemplo, un banco puede limitar el número de números de teléfono almacenados para un único cliente a dos. Colocando límites en este caso, se expresa que el atributo número-teléfono del conjunto de entidades cliente puede tener entre cero y dos valores.
Atributos derivados
El valor para este tipo de atributo se puede derivar de los valores de otros atributos o entidades relacionados. Por ejemplo, sea el conjunto de entidades cliente que tiene un atributo préstamos que representa cuántos préstamos tiene un cliente en el banco. Ese atributo se puede derivar contando el número de entidades préstamo asociadas con ese cliente.
Como otro ejemplo, considérese que el conjunto de entidades empleado tiene un atributo edad, que indica la edad del cliente. Si el conjunto de entidades cliente tiene también un atributo fechade-nacimiento, se puede calcular edad a partir de fecha-de-nacimiento y de la fecha actual. Así, edades un atributo derivado.
En este caso, fecha-denacimiento y antigüedad pueden serlo, ya que representan el primer día en que el empleado comenzó a trabajar para el banco y el tiempo total que el empleado lleva trabajando para el banco, respectivamente. El valor de antigüedad se puede derivar del valor de fecha-comienzo y de la fecha actual. En este caso, fecha-comienzo se puede conocer como atributo base o atributo almacenado. El valor de un atributo derivado no se almacena, sino que se calcula cuando sea necesario.
Acerca de la base de datos
Por ejemplo, si el valor nombre para un cliente particular es nulo, se asume que el valor es perdido, ya que cada cliente debe tener un nombre. Un valor nulo para el atributo piso podría significar que la dirección no incluye un piso (no aplicable), que existe piso pero no se conoce cuál es (perdido), o que no se sabe si el piso forma parte o no de la dirección del cliente (desconocido).
Una base de datos para una empresa bancaria puede incluir diferentes conjuntos de entidades. Por ejemplo, además del mantenimiento de clientes y préstamos, el banco también proporciona cuentas, que se representan mediante el conjunto de entidades cuenta con atributos número-cuenta y saldo.
También, si el banco tiene un número de sucursales diferentes, se puede mantener información acerca de todas las sucursales del banco. Cada conjunto de entidades sucursal se describe mediante los atributos nombre-sucursal, ciudad-sucursal y activo.
Conjuntos de relaciones
Una relación es una asociación entre diferentes entidades. Por ejemplo, se puede definir una relación que asocie al cliente López con el préstamo P-15. Esta relación especifica que López es un cliente con el préstamo número P-15. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo. Formalmente es una relación matemática con n > = 2 de conjuntos de entidades (posiblemente no distintos).
Si E1, E2,…,En son conjuntos de entidades, entonces un conjunto de relaciones R es un subconjunto de: {(e1, e2,…,en) | e1 ∈ E1, e2 ∈ E2,…,en ∈ En} donde (e1,e2,…en) es una relación. Considérense las dos entidades cliente y préstamo. Se define el conjunto de relaciones prestatario para denotar la asociación entre clientes y préstamos bancarios que los clientes tengan. Como otro ejemplo, considérense los dos conjuntos de entidades préstamo y sucursal.
Se puede definir el conjunto de relaciones sucursal-préstamo para denotar la asociación entre un préstamo y la sucursal en que se mantiene ese préstamo. La asociación entre conjuntos de entidades se conoce como participación; es decir, los conjuntos de entidades E1, E2,…, En participan en el conjunto de relaciones R.
Ejemplar de relación
Un ejemplar de relación en un esquema E-R representa que existe una asociación entre las entidades denominadas en la empresa del mundo real que se modela. Como ilustración, el cliente individual López, que tiene D.N.I. 67.789.901, y la entidad préstamo P-15 participan en un ejemplar de relación de prestatario. Este ejemplar de relación representa que, en la empresa del mundo real, la persona llamada López cuyo número de D.N.I. es 67.789.901 ha tomado un préstamo que está numerado como P-15. La función que desempeña una entidad en una relación se llama papel de la entidad.
Debido a que los conjuntos de entidades que participan en un conjunto de relaciones son generalmente distintos, los papeles están implícitos y no se especifican normalmente. Sin embargo, son útiles cuando el significado de una relación necesita aclaración. Tal es el caso cuando los conjuntos de entidades de una relación no son distintos; es decir, el mismo conjunto de entidades participa en una relación más de una vez con diferentes papeles.
En este tipo de conjunto de relaciones, que se llama algunas veces conjunto de relaciones recursivo, es necesario hacer explícitos los papeles para especificar cómo participa una entidad en un ejemplar de relación. Por ejemplo, considérese una conjunto de entidades empleado que almacena información acerca de todos los empleados del banco. Se puede tener un conjunto de relaciones trabaja-para que se modela mediante pares ordenados de entidades empleado.
El primer empleado de un par toma el papel de trabajador, mientras el segundo toma el papel de jefe. De esta manera, todas las relaciones trabaja-para son pares (trabajador, jefe); los pares (jefe, trabajador) están excluidos. Una relación puede también tener atributos descriptivos. Considérese un conjunto de relaciones impositor con conjuntos de entidades cliente y cuenta.
Asociaciones entre atributos
Se podría asociar el atributo fecha-acceso a esta relación para especificar la fecha más reciente en que un cliente accedió a una cuenta. La relación impositor entre las entidades correspondientes al cliente García y la cuenta C-217 se describen mediante {(fecha-acceso, 23 mayo 2002)}, lo que significa que la última vez que García accedió a la cuenta C-217 fue el 23 de mayo de 2002. Como otro ejemplo de atributos descriptivos para relaciones, supóngase que se tienen los conjuntos de entidades estudiante y asignatura que participan en una relación matriculado.
Se podría desear almacenar un atributo descriptivo para créditos con la relación, para registrar si el estudiante se ha matriculado de la asignatura para obtener créditos o sólo como oyente. Un ejemplar de relación en un conjunto de relaciones determinado debe ser identificado unívocamente a partir de sus entidades participantes, sin usar los atributos descriptivos.
Para comprender este punto supóngase que deseemos modelar todas las fechas en las que un cliente ha accedido a una cuenta. El atributo monovalorado fecha-acceso puede almacenar sólo una única fecha de acceso. No se pueden representar varias fechas de acceso por varios ejemplares de relación entre el mismo cliente y cuenta, ya que los ejemplares de relación no estarían identificados unívocamente por las entidades participantes.
La forma correcta de manejar este caso es crear un atributo multivalorado fechas-acceso que pueda almacenar todas las fechas de acceso. Sin embargo, puede haber más de un conjunto de relaciones que involucren los mismos conjuntos de entidades. En nuestro ejemplo los conjuntos de entidades cliente y préstamo participan en el conjunto de relaciones prestatario.
Ejemplos relativos al tema
Además, supóngase que cada préstamo deba tener otro cliente que sirva como avalista para el préstamo. Entonces los conjuntos de entidades cliente y préstamo pueden participar en otro conjunto de relaciones: avalista. Los conjuntos de relaciones prestatario y sucursal préstamo proporcionan un ejemplo de un conjunto de relaciones binario, es decir, uno que implica dos conjuntos de entidades.
La mayoría de los conjuntos de relaciones en un sistema de bases de datos son binarios. Ocasionalmente, sin embargo, los conjuntos de relaciones implican más de dos conjuntos de entidades. Por ejemplo, considérense los conjuntos de entidades empleado, sucursal y trabajo. Ejemplos de las entidades trabajo podrían ser director, cajero, auditor y otros.
Las entidades trabajo pueden tener los atributos puesto y nivel. El conjunto de relaciones trabaja-en entre empleado, sucursal y trabajo es un ejemplo de una relación ternaria. Una relación ternaria entre Santos, Navacerrada y director indica que Santos actúa de director de la sucursal Navacerrada.
Santos también podría actuar como auditor de la sucursal Centro, que estaría representado por otra relación. Podría haber otra relación entre Gómez, Centro y cajero, indicando que Gómez actúa como cajero en la sucursal Centro. El número de conjuntos de entidades que participan en un conjunto de relaciones es también el grado del conjunto de relaciones.
Un conjunto de relaciones binario tiene grado 2; un conjunto de relaciones ternario tiene grado 3. Finalmente si deseas aprender mucho más sobre modelo entidad relación puede ver más en el siguiente blog que habla sobre el arte de la informática. Asimismo, si desea consultar otras fuentes, puede dirigirse al siguiente enlace de la Wiki.