Entidad débil - Weak entity

En una base de datos relacional , una entidad débil es una entidad que no puede ser identificada únicamente por sus atributos; por lo tanto, debe usar una clave externa junto con sus atributos para crear una clave primaria . La clave externa suele ser una clave principal de una entidad con la que está relacionada.

En los diagramas de relación de entidades (diagramas ER) , un conjunto de entidades débiles se indica mediante un rectángulo en negrita (o de doble línea) (la entidad) conectado por una flecha de tipo negrita (o de doble línea) a una negrita (o de doble línea) diamante (la relación). Este tipo de relación se denomina relación de identificación y en la notación IDEF1X está representada por una entidad ovalada en lugar de una entidad cuadrada para las tablas base. Una relación de identificación es aquella en la que la clave principal se completa con la entidad débil secundaria como clave principal en esa entidad.

En general (aunque no necesariamente) una entidad débil no tiene ningún elemento en su clave principal que no sea su clave principal heredada y un número de secuencia. Hay dos tipos de entidades débiles: entidades asociativas y entidades de subtipo . Este último representa un tipo crucial de normalización , donde la entidad de supertipo hereda sus atributos a entidades de subtipo en función del valor del discriminador .

En IDEF1X , un estándar gubernamental para capturar requisitos, las posibles relaciones de subtipo son:

  • Relación subtipo completa , cuando se conocen todas las categorías.
  • Relación de subtipo incompleta , cuando es posible que no se conozcan todas las categorías.

Un ejemplo clásico de una entidad débil sin una relación de subtipo serían los registros de "encabezado / detalle" en muchas situaciones del mundo real, como reclamos, pedidos y facturas, donde el encabezado captura información común en todos los formularios y el detalle captura información específica. a artículos individuales.

El ejemplo estándar de una relación de subtipo completa es la entidad del partido . Dado el TIPO DE PARTIDO discriminador (que podría ser individuo, sociedad, Corporación C, Asociación del Sub Capítulo S, Asociación, Unidad Gubernamental, Agencia Cuasi gubernamental), las dos entidades de subtipo son PERSONA, que contiene información específica del individuo como el nombre y apellido y fecha de nacimiento, y ORGANIZACIÓN, que contendría atributos tales como el nombre legal y jerarquías organizacionales tales como centros de costos.

Cuando las relaciones de subtipo se representan en una base de datos, el supertipo se convierte en lo que se conoce como tabla base. Los subtipos se consideran tablas derivadas, que corresponden a entidades débiles. La integridad referencial se aplica mediante actualizaciones y eliminaciones en cascada.

Ejemplo

Considere una base de datos que registre los pedidos de los clientes, donde un pedido es para uno o más de los artículos que vende la empresa. La base de datos contendría una tabla que identifica a los clientes por un número de cliente ( clave principal ); otro identificando los productos que se pueden vender por un número de producto ( clave primaria ); y contendría un par de tablas que describen los pedidos.

Entidad débil ER-example.svg

Una de las tablas podría llamarse Pedidos y tendría un número de pedido ( clave principal ) para identificar este pedido de manera única, y contendría un número de cliente ( clave externa ) para identificar a quién se venden los productos, además de otra información como la fecha y hora en que se realizó el pedido, cómo se pagará, a dónde se enviará, etc.

La otra tabla podría llamarse OrderItem; se identificaría mediante una clave compuesta que constaba tanto del número de pedido ( clave externa ) como de un número de línea de artículo; con otros atributos de clave no primaria, como el número de producto ( clave externa ) que se solicitó, la cantidad, el precio, cualquier descuento, cualquier opción especial, etc. Puede haber cero, una o muchas entradas de artículo de pedido correspondientes a una entrada de pedido, pero no puede existir ninguna entrada de artículo de pedido a menos que exista la entrada de pedido correspondiente. (El caso de artículo de pedido cero normalmente solo se aplica de manera transitoria, cuando se ingresa el pedido por primera vez y antes de que se registre el primer artículo pedido).

La tabla OrderItem almacena entidades débiles precisamente porque un OrderItem no tiene ningún significado independiente del Order. Algunos podrían argumentar que un artículo de pedido tiene algún significado por sí solo; registra que en algún momento no identificado por el registro, alguien no identificado por el registro ordenó una cierta cantidad de un determinado producto. Esta información puede ser de alguna utilidad por sí sola, pero es de uso limitado. Por ejemplo, tan pronto como desee encontrar tendencias estacionales o geográficas en las ventas del artículo, necesitará información del registro de pedido relacionado.

Un pedido no existiría sin un producto y una persona para crear el pedido, por lo que se podría argumentar que un pedido se describiría como una entidad débil y que los productos pedidos serían un atributo multivalor del pedido.

Ver también

Referencias

  • Elmasri, R & Navathe, SB, Pearson, Fundamentos de los sistemas de bases de datos 7ª Ed.
  1. ^ Elmasri, Ramez. Fundamentos de los sistemas de bases de datos . Navathe, Sham (Séptima ed.). Hoboken, Nueva Jersey. ISBN 0-13-397077-9. OCLC  913842106 .