entity relationship - ¿La opcionalidad(obligatoria, opcional) y la participación(total, parcial) son iguales?
entity-relationship (1)
Comencemos con definiciones y ejemplos de cada uno de los conceptos:
Participación total y parcial:
La participación total (indicada por una línea de asociación doble o gruesa) significa que todas las entidades en un conjunto de entidades deben participar en la relación. La participación parcial (indicada por una sola línea delgada) significa que puede haber entidades en el conjunto de entidades que no participan en la relación.
Medicine
participa totalmente en la relación de
Produce
, lo que significa que la
Medicine
no puede existir a menos que sea
Produced
por un
Laboratory
.
En contraste, un
Laboratory
puede existir sin
Producing
Medicine
: el
Laboratory
participa parcialmente en la relación de
Produce
.
Roles obligatorios y opcionales:
En una relación, los roles pueden ser opcionales u obligatorios. Esto afecta si una instancia de relación puede existir sin una entidad en un rol determinado. Los roles obligatorios se indican con una línea de asociación sólida, los roles opcionales se indican con una línea de puntos.
Los roles no se mencionan a menudo en los tutoriales de bases de datos, pero son un concepto importante. Considere un matrimonio: una relación con dos roles obligatorios cubiertos por el mismo conjunto de entidades. En la mayoría de las relaciones, los conjuntos de entidades también definen los roles, pero cuando un conjunto de entidades aparece varias veces en una sola relación, los distinguimos en diferentes roles.
En el ejemplo anterior, un
Patient
puede
Purchase
Medicine
con o sin
Prescription
.
Una
Purchase
no puede existir sin un
Patient
y un
Medicine
, pero una
Prescription
es opcional (en general, aunque puede ser necesaria en casos específicos).
Relación de identificación / entidad débil:
Una entidad débil es una entidad que no puede identificarse por sus propios atributos y, por lo tanto, tiene la clave de otra entidad como parte de la suya. Una relación de identificación es la relación entre una entidad débil y su entidad matriz. Tanto la relación de identificación como la entidad débil se indican con bordes dobles. Los conjuntos de entidades débiles necesariamente deben participar totalmente en su relación de identificación.
En este ejemplo, una
Prescription
contiene
LineItems
que se identifican con la clave de la
Prescription
y un número de línea.
En otras palabras, la tabla
LineItems
tendrá una clave compuesta
(Prescription_ID, Line_Number)
.
Para ver ejemplos de relaciones no identificables, consulte los ejemplos anteriores.
Si bien
Medicine
participa totalmente en la relación
Produce
, tiene su propia identidad (por ejemplo, una clave sustituta, aunque no la indiqué).
Tenga en cuenta que las claves sustitutas siempre implican entidades regulares.
Obligatorio / opcional vs participación total / parcial
Los roles obligatorios u opcionales indican si se requiere un determinado rol (con su conjunto de entidades asociado) para que exista la relación. La participación total o parcial indica si se requiere cierta relación para que una entidad exista.
Participación parcial obligatoria: ver arriba: un
Laboratory
puede existir sin producir ningún medicamento, pero los
Medicine
no pueden producirse sin un
Laboratory
.
Participación total obligatoria: ver arriba: la
Medicine
no puede existir sin ser
Produced
, y un
Laboratory
no puede
Produce
algo sin especificar.
Participación parcial opcional: Ver más arriba: una
Prescription
puede existir sin haber sido
Purchased
, y una
Purchase
puede existir sin
Prescription
.
Eso deja una participación total opcional, que tuve que pensar un poco para encontrar un ejemplo:
Algunos
Patients
Die
por una
Cause
desconocida, pero una
Cause
de muerte no puede existir sin que un
Patient
Dying
por ello.
Participación total / parcial versus relaciones de identificación / no identificación
Como dije antes, los conjuntos de entidades débiles siempre participan totalmente en su relación de identificación.
Ver arriba: un
LineItem
debe estar
Contained
en una
Prescription
, su identidad y existencia dependen de eso.
La participación parcial en una relación de identificación no es posible.
La participación total no implica una relación de identificación: la
Medicine
no puede existir sin ser
Produced
por un
Laboratory
pero la
Medicine
se identifica por sus propios atributos.
La participación parcial en una relación no identificativa es muy común.
Por ejemplo, la
Medicine
puede existir sin ser
Purchased
, y la
Medicine
se identifica por sus propios atributos.
Relaciones obligatorias / opcionales vs identificativas / no identificativas
Es inusual que una relación tenga menos de dos roles obligatorios.
Las relaciones de identificación son relaciones binarias, por lo que los roles padre e hijo serán obligatorios: la relación
Contain
entre
Prescription
y
LineItem
no puede existir sin ambas entidades.
Los roles opcionales generalmente solo se encuentran en relaciones ternarias y superiores (aunque vea el ejemplo de pacientes que mueren por causas), y no están involucrados en la identificación. Una alternativa a un rol opcional es una relación en una relación:
Al convertir la
Purchase
en una entidad asociativa, podemos hacer que participe en una relación de
Fill
con
Prescription
.
Para mantener la misma semántica que la anterior, especifiqué que una
Purchase
solo puede
Fill
una
Prescription
.
Modelado fisico
Si traducimos del modelo conceptual al físico (omitiendo el modelado lógico / normalización adicional), haciendo tablas separadas para cada entidad y relación, las cosas se ven bastante similares, aunque debe saber cómo leer los indicadores de cardinalidad en las líneas clave externas para recuperar el Semántica ER.
Sin embargo, es común desnormalizar tablas con las mismas claves primarias, lo que significa que las relaciones uno a muchos se combinan con la tabla de entidades en el lado múltiple:
Una relación se representa físicamente como dos o más claves de entidad en una tabla.
En este caso, las claves de entidad -
patient_id
y
cause_of_death_id
se encuentran en la tabla de
Patient
.
Muchas personas piensan que la línea de clave externa representa la relación, pero esto proviene de confundir el modelo de relación de entidad con el antiguo modelo de datos de red.
Este es un punto crucial: para comprender los diferentes tipos de relaciones y las restricciones en las relaciones, es esencial comprender qué relaciones son primero. Las relaciones en ER son asociaciones entre claves, no entre tablas. Una relación puede tener cualquier número de roles de diferentes conjuntos de entidades, mientras que las restricciones de clave externa imponen una restricción de subconjunto entre dos columnas de un conjunto de entidades. Ahora, armado con este conocimiento, lea toda mi respuesta nuevamente. ;)
Espero que esto ayude. No dude en hacer preguntas.
Como sé, opcionalidad significa la cardinalidad mínima de una relación que se denota como opcional a opcional, obligatoria a opcional, obligatoria a obligatoria.
Y la participación se denota como línea en negrita y una línea normal.
En Internet, algunos refieren la participación como la dependencia de la entidad a la relación, que también parece una relación de identificación y no identificación.
y algunos lo refieren como la cardinalidad mínima
¿Cuáles son las definiciones correctas de esas relaciones y cuál es la diferencia?