необходимость и использование слабых сущностей в диаграммах ER

у меня две сущности

textbook(ISBN primary key, name, auhor etc...) is published by publisher(name, number_of_books_published etc...)

Мой издатель — слабая сущность.

  1. Почему мне нужно, чтобы эту сущность держали как слабую, а не делали сильной? Каково его значение?
  2. Если я добавлю первичный ключ BookISBN к издателю, он станет сильной сущностью. В чем тогда будет разница между этими двумя конструкциями?

person user1079065    schedule 05.02.2015    source источник


Ответы (1)


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

2) Добавление BookISBN к издателю было бы неправильным. Отношение «один ко многим» происходит в другом направлении; т. е. издатель издает много книг — это подтверждается атрибутом number_of_books_published издательства (что, возможно, не обязательно, поскольку вы всегда можете вычислить это значение).

Теоретически (я не знаю, так ли это на самом деле (я никогда этого не видел)), учебник может быть опубликован (вероятнее всего, напечатан) более чем одним издателем, поэтому наличие первичного ключа издателя в учебнике сделает учебник сильная сущность. Я считаю это маловероятным, поэтому лучшим решением является таблица отношений, то есть PublisherBook, которая содержит первичные ключи издателя и учебника, таким образом, издатель может публиковать много книг, И книга может быть опубликована многими издателями (что может играть более важную роль по сравнению с время говорят, что одно издательство прекращает свою деятельность, а книга не издается другим издательством). В этой модели у вас есть возможность вести «историю», не говоря уже об обновлении PublisherId в таблице учебника и потере предыдущего издателя.

person Michael Humelsine    schedule 05.02.2015