Un modelo entidad-relación (o modelo ER ) describe cosas de interés interrelacionadas en un dominio de conocimiento específico. Un modelo ER básico se compone de tipos de entidades (que clasifican las cosas de interés) y especifica las relaciones que pueden existir entre entidades (instancias de esos tipos de entidades).
En ingeniería de software , un modelo ER comúnmente se forma para representar cosas que una empresa necesita recordar para realizar procesos de negocios . En consecuencia, el modelo ER se convierte en un modelo de datos abstracto , [1] que define una estructura de datos o información que se puede implementar en una base de datos , típicamente una base de datos relacional .
El modelado entidad-relación fue desarrollado para bases de datos y diseño por Peter Chen y publicado en un artículo de 1976, [2] con variantes de la idea que existían anteriormente. [3] Hoy en día se utiliza comúnmente para enseñar a los estudiantes los conceptos básicos de la estructura de bases de datos. Algunos modelos ER muestran entidades de supertipo y subtipo conectadas por relaciones de generalización-especialización, [4] y también se puede utilizar un modelo ER para especificar ontologías de dominio específico .
Un modelo ER generalmente resulta de un análisis sistemático para definir y describir los datos creados y necesarios por los procesos en un área comercial. Normalmente, representa registros de entidades y eventos monitoreados y dirigidos por procesos de negocio, en lugar de los procesos en sí. Generalmente se dibuja en forma gráfica como cuadros ( entidades ) que están conectados por líneas ( relaciones ) que expresan las asociaciones y dependencias entre entidades. También se puede expresar en forma verbal, por ejemplo: un edificio puede dividirse en cero o más apartamentos, pero un apartamento sólo puede estar ubicado en un edificio.
Las entidades pueden definirse no sólo por relaciones, sino también por propiedades adicionales ( atributos ), que incluyen identificadores llamados "claves primarias". Los diagramas creados para representar atributos, así como entidades y relaciones, pueden denominarse diagramas entidad-atributo-relación, en lugar de modelos entidad-relación.
Un modelo ER normalmente se implementa como una base de datos . En una implementación de base de datos relacional simple, cada fila de una tabla representa una instancia de un tipo de entidad y cada campo de una tabla representa un tipo de atributo. En una base de datos relacional, una relación entre entidades se implementa almacenando la clave principal de una entidad como un puntero o "clave externa" en la tabla de otra entidad.
Existe la tradición de que los modelos de ER/datos se construyan en dos o tres niveles de abstracción. La siguiente jerarquía conceptual-lógica-física se utiliza en otros tipos de especificaciones y es diferente del enfoque de tres esquemas para la ingeniería de software .
La primera etapa del diseño de sistemas de información utiliza estos modelos durante el análisis de requisitos para describir las necesidades de información o el tipo de información que se almacenará en una base de datos . La técnica de modelado de datos se puede utilizar para describir cualquier ontología (es decir, una descripción general y clasificaciones de los términos utilizados y sus relaciones) para un área de interés determinada . En el caso del diseño de un sistema de información que se basa en una base de datos, el modelo de datos conceptual se asigna, en una etapa posterior (generalmente llamado diseño lógico), a un modelo de datos lógico , como el modelo relacional . Esto a su vez se asigna a un modelo físico durante el diseño físico. A veces, ambas fases se denominan "diseño físico".
Una entidad puede definirse como algo capaz de tener una existencia independiente, que puede identificarse de forma única y que es capaz de almacenar datos. [5] Una entidad es una abstracción de las complejidades de un dominio. Cuando hablamos de una entidad, normalmente hablamos de algún aspecto del mundo real que puede distinguirse de otros aspectos del mundo real. [6]
Una entidad es algo que existe física o lógicamente. Una entidad puede ser un objeto físico como una casa o un automóvil (existen físicamente), un evento como la venta de una casa o el servicio de un automóvil, o un concepto como una transacción o un pedido de un cliente (existen lógicamente, como un concepto). ). Aunque el término entidad es el más utilizado, siguiendo a Chen, se deben distinguir entidades y tipos de entidades. Un tipo de entidad es una categoría. Una entidad, estrictamente hablando, es una instancia de un tipo de entidad determinado. Generalmente hay muchas instancias de un tipo de entidad. Debido a que el término tipo de entidad es algo engorroso, la mayoría de la gente tiende a utilizar el término entidad como sinónimo.
Las entidades pueden considerarse como sustantivos . [7] Los ejemplos incluyen una computadora, un empleado, una canción o un teorema matemático.
Una relación captura cómo las entidades se relacionan entre sí. Las relaciones pueden considerarse como verbos , que unen dos o más sustantivos. [7] Los ejemplos incluyen una relación de propiedad entre una empresa y una computadora, una relación de supervisión entre un empleado y un departamento, una relación de interpretación entre un artista y una canción, y una relación de prueba entre un matemático y una conjetura.
El aspecto lingüístico del modelo descrito anteriormente se utiliza en el lenguaje de consulta de base de datos declarativo ERROL, que imita construcciones de lenguaje natural . La semántica y la implementación de ERROL se basan en el álgebra relacional reformada (RRA), un álgebra relacional que se adapta al modelo entidad-relación y captura su aspecto lingüístico.
Tanto las entidades como las relaciones pueden tener atributos. Por ejemplo, una entidad de empleado puede tener un atributo de Número de Seguro Social (SSN), mientras que una relación comprobada puede tener un atributo de fecha .
Todas las entidades, excepto las entidades débiles, deben tener un conjunto mínimo de atributos de identificación única que puedan usarse como clave única / principal .
Los diagramas entidad-relación (ERD) no muestran entidades individuales ni instancias únicas de relaciones. Más bien, muestran conjuntos de entidades (todas las entidades del mismo tipo de entidad) y conjuntos de relaciones (todas las relaciones del mismo tipo de relación). Por ejemplo, una canción en particular es una entidad, la colección de todas las canciones en una base de datos es un conjunto de entidades, la relación consumida entre un niño y su almuerzo es una relación única, y el conjunto de todas esas relaciones niño-almuerzo en una base de datos es un conjunto de relaciones. En otras palabras, un conjunto de relaciones corresponde a una relación en matemáticas , mientras que una relación corresponde a un miembro de la relación.
También se pueden indicar ciertas restricciones de cardinalidad en conjuntos de relaciones.
Las vistas físicas muestran cómo se almacenan realmente los datos.
El artículo original de Chen da un ejemplo de una relación y sus funciones. Describe una relación de "matrimonio" y sus dos roles, "marido" y "esposa".
Una persona desempeña el papel de marido en un matrimonio (relación) y otra persona desempeña el papel de esposa en el (mismo) matrimonio. Estas palabras son sustantivos.
La terminología de Chen también se ha aplicado a ideas anteriores. Las líneas, flechas y patas de gallo de algunos diagramas se deben más a los diagramas anteriores de Bachman que a los diagramas de relaciones de Chen.
Otra extensión común del modelo de Chen es "nombrar" relaciones y roles como verbos o frases.
También se ha vuelto frecuente nombrar roles con frases como es propietario de y es propiedad de . Los sustantivos correctos en este caso son propietario y posesión . Así, la persona desempeña el papel de propietario y el coche desempeña el papel de posesión, en lugar de que la persona desempeña el papel de , es propietario de , etc.
El uso de sustantivos tiene un beneficio directo al generar implementaciones físicas a partir de modelos semánticos. Cuando una persona tiene dos relaciones con el automóvil, es posible generar nombres como propietario_persona y conductor_persona , que tienen significado inmediato. [9]
Las modificaciones a la especificación original pueden resultar beneficiosas. Chen describió las cardinalidades transversales. Además, la notación de Barker-Ellis , utilizada en Oracle Designer, utiliza el mismo lado para una cardinalidad mínima (análoga a la opcionalidad) y el rol, pero mira hacia otro lado para una cardinalidad máxima (la pata de gallo). [ se necesita aclaración ]
La investigación realizada por Merise , Elmasri y Navathe y otros ha demostrado que existe una preferencia por roles del mismo lado y cardinalidades mínimas y máximas, [10] [11] [12] y los investigadores (Feinerer, Dullea et al.) han demostrado que esto es más coherente cuando se aplica a relaciones n-arias de orden mayor que 2. [13] [14]
Dullea et al. afirma: "Una notación de 'mirada transversal' como la que se utiliza en UML no representa eficazmente la semántica de las restricciones de participación impuestas a las relaciones donde el grado es superior al binario".
Feinerer dice: "Surgen problemas si operamos bajo la semántica de mirada cruzada como se usa para las asociaciones UML. Hartmann [15] investiga esta situación y muestra cómo y por qué fallan diferentes transformaciones". (Aunque la "reducción" mencionada es espuria ya que los dos diagramas 3.4 y 3.5 son en realidad iguales) y también "Como veremos en las próximas páginas, la interpretación transversal introduce varias dificultades que impiden la extensión de mecanismos simples de asociaciones binarias a n-arias."
La notación de Chen para el modelado entidad-relación utiliza rectángulos para representar conjuntos de entidades y diamantes para representar relaciones apropiadas para objetos de primera clase : pueden tener atributos y relaciones propios. Si un conjunto de entidades participa en un conjunto de relaciones, están conectados con una línea.
Los atributos se dibujan como óvalos y se conectan con una línea exactamente a una entidad o conjunto de relaciones.
Las restricciones de cardinalidad se expresan de la siguiente manera:
Los atributos a menudo se omiten porque pueden saturar un diagrama. Otras técnicas de diagramas suelen enumerar atributos de entidad dentro de los rectángulos dibujados para conjuntos de entidades.
La notación de pata de gallo, cuyo comienzo se remonta a un artículo de Gordon Everest (1976), [16] se utiliza en la notación de Barker , el Método de Diseño y Análisis de Sistemas Estructurados (SSADM) y la ingeniería de tecnologías de la información . Los diagramas de pata de gallo representan entidades como cuadros y relaciones como líneas entre los cuadros. Diferentes formas al final de estas líneas representan la cardinalidad relativa de la relación.
La notación de pata de gallo se utilizó en ICL en 1978, [17] y se utilizó en la práctica de consultoría CACI . Muchos de los consultores de CACI (incluido Richard Barker) vinieron de ICL y posteriormente se trasladaron a Oracle Reino Unido, donde desarrollaron las primeras versiones de las herramientas CASE de Oracle , introduciendo la notación a una audiencia más amplia.
Con esta notación, las relaciones no pueden tener atributos. Cuando sea necesario, se promueven relaciones con entidades por derecho propio: por ejemplo, si es necesario capturar dónde y cuándo un artista interpretó una canción, se introduce una nueva entidad "interpretación" (con atributos que reflejan el tiempo y el lugar), y la relación de un artista con una canción se convierte en una relación indirecta a través de la interpretación (artista-interpreta-interpretación, interpretación-presentación-canción).
Se utilizan tres símbolos para representar la cardinalidad:
Estos símbolos se utilizan en pares para representar los cuatro tipos de cardinalidad que puede tener una entidad en una relación. El componente interno de la notación representa el mínimo y el componente externo representa el máximo.
Los usuarios de una base de datos modelada pueden encontrar dos problemas bien conocidos en los que los resultados devueltos significan algo distinto a los resultados asumidos por el autor de la consulta.
La primera es la "trampa de los fans". Ocurre con una tabla (maestra) que vincula a varias tablas en una relación de uno a muchos. El problema deriva su nombre de la apariencia del modelo cuando se dibuja en un diagrama entidad-relación: las tablas vinculadas se abren en abanico desde la tabla maestra. Este tipo de modelo es similar a un esquema en estrella , un tipo de modelo utilizado en almacenes de datos . Al intentar calcular sumas sobre agregados utilizando SQL estándar sobre la tabla maestra, pueden producirse resultados inesperados (e incorrectos). La solución es ajustar el modelo o el SQL. Este problema ocurre principalmente en bases de datos para sistemas de soporte de decisiones y el software que consulta dichos sistemas a veces incluye métodos específicos para manejar este problema.
La segunda cuestión es una "trampa de abismo". Una trampa de abismo ocurre cuando un modelo sugiere la existencia de una relación entre tipos de entidades, pero el camino no existe entre ciertas ocurrencias de entidades. Por ejemplo, un edificio tiene una o más habitaciones que albergan cero o más computadoras. Se esperaría poder consultar el modelo para ver todas las computadoras del edificio. Sin embargo, las computadoras que actualmente no están asignadas a una sala (porque están en reparación o en otro lugar) no se muestran en la lista. Se necesita otra relación entre Edificio y Computadoras para capturar todas las computadoras en el edificio. Este último problema de modelado se debe a que no se capturan en el modelo todas las relaciones que existen en el mundo real. Consulte Modelado entidad-relación 2 para obtener más detalles.
Un modelo semántico es un modelo de conceptos y a veces se le denomina "modelo independiente de plataforma". Es un modelo intencional. Al menos desde Carnap , es bien sabido que: [18]
Un modelo extensional es aquel que se asigna a los elementos de una metodología o tecnología particular y, por lo tanto, es un "modelo específico de plataforma". La especificación UML establece explícitamente que las asociaciones en los modelos de clases son extensionales y esto es, de hecho, evidente al considerar la amplia gama de "adornos" adicionales proporcionados por la especificación además de los proporcionados por cualquiera de los "lenguajes de modelado semántico" candidatos anteriores. "UML como notación de modelado de datos, parte 2"
Peter Chen, el padre del modelado de emergencias, dijo en su artículo fundamental:
En su artículo original de 1976, Chen contrasta explícitamente los diagramas entidad-relación con las técnicas de modelado de registros:
Varios otros autores también apoyan el programa de Chen: [19] [20] [21] [22] [23]
Chen está de acuerdo con las tradiciones filosóficas de la época de los filósofos griegos antiguos: Platón y Aristóteles . [24] El propio Platón asocia el conocimiento con la aprehensión de Formas inmutables (es decir, arquetipos o representaciones abstractas de muchos tipos de cosas y propiedades) y sus relaciones entre sí.