Свойства Слабых Сущностей - PullRequest
0 голосов
/ 05 ноября 2019

В настоящее время я читаю Концепции системы баз данных от Korth, Silberschantz и Sudarhsan. Я не могу понять следующий абзац.

Слабый набор сущностей может участвовать в отношениях, отличных от идентифицирующих отношений. Например, субъект платежа может участвовать в отношениях с набором субъекта счета, идентифицируя счет, с которого был произведен платеж.

Слабый набор объектов может участвовать в качестве владельца в идентифицирующих отношениях с другим набором слабых объектов. сущность установлена.

Также возможно иметь набор слабых объектов с более чем одной идентификацией. Затем конкретный слабый объект будет идентифицироваться комбинацией объектов, по одному из каждого набора идентифицирующих объектов. Первичный ключ набора слабых сущностей будет состоять из объединения первичных ключей наборов идентифицирующих сущностей плюс дискриминатор набора слабых сущностей.

Эти важные понятия помещены оченькомпактно в небольшом абзаце. Очень сложно интерпретировать значение этих концепций. Может кто-нибудь, пожалуйста, помогите мне понять? ИЛИ, если вы можете предоставить ссылки, я могу прочитать это сам.

1 Ответ

1 голос
/ 05 ноября 2019

Все это немного абстрактно - и я не уверен, что вы скопировали каждую часть оригинала.

"Слабая сущность" - это сущность, которая не может существовать вне контекста другого. Классическими примерами являются "order_lines" в системе закупок, которые имеют смысл только в контексте таблицы "orders".

Слабый набор сущностей может участвовать в отношениях, отличных от идентифицирующих отношений. Например, платежный субъект может участвовать в отношениях с набором учетных записей, идентифицируя счет, с которого был произведен платеж.

Это означает, что в то время как слабый субъект должен иметь «идентифицирующие» отношения(в приведенном выше примере order_line должен иметь отношение order_id к своей базовой таблице), он также может быть связан с другими объектами, например, «ставкой НДС» в примере строк заказа. Ставка НДС - not_identifying_ - вы не можете ссылаться на строку заказа как «эту одну строку в заказе со ставкой НДС 15%».

Слабый набор сущностей может участвовать как владелец в идентифицирующих отношениях сдругой слабый набор сущностей. набор сущностей.

Это означает, что слабая сущность может быть «родителем» другой слабой сущности - другая сущность не имеет смысла вне родителя. Например, в нашей системе закупок может быть таблица с именем «order_line_discounts», которая фиксирует скидки, применяемые к каждой строке заказа. Эти скидки не имеют смысла без строки заказа, а строка заказа не имеет смысла без заказа.

Также возможно иметь набор слабых объектов с более чем одной идентификацией. Затем конкретный слабый объект будет идентифицироваться комбинацией объектов, по одному из каждого набора идентифицирующих объектов. Первичный ключ набора слабых объектов будет состоять из объединения первичных ключей наборов идентифицирующих объектов плюс дискриминатор набора слабых объектов.

Это означает, что слабому объекту может потребоваться большечем один родитель, чтобы иметь смысл. Если это происходит, первичный ключ состоит из внешних ключей для всех родителей, плюс (при необходимости) дополнительный дискриминатор для уникальной идентификации этой комбинации. В нашей системе закупок order_line является слабой сущностью, связанной с orders, но также и с products. Заказ может содержать более одной строки для продукта, поэтому «дискриминатор» позволит вам однозначно идентифицировать каждую строку заказа.

...