Теория и практика построения баз данных (1088289), страница 19
Текст из файла (страница 19)
Чтобы разобраться в том, что такое слабые сущности, рассмотрим базу данных отдела кадров с классами сущностей СОТРУДНИК и ПОДЧИНЕННЫЙ. Предположим, что, в соответствии с деловым регламентом, экземпляр сущности СОТРУДНИК может существовать, нс будучи связанным ни с одной сущностью класса ПОДЧИНЕННЫЙ, но сущность ПОДЧИНЕННЫЙ не может суитествовать вне связи с какой-либо сущностью класса СОТРУДНИК, Тогда сущность ПОДЧИНЕННЫЙ является слабой, Это означает, что данные о сущности ПОДЧИНЕННЫЙ могут появиться в базе данных только в том случае, если эта сущность имеет связь с какой-либо сущностью класса С ОТРУДН И К.
Рис. 3.7. Слабые сущности: а — пример слабой сущности; б — пример идентификационно-зависимой сущности Как показано на рис. 3.7, 6, слабые сущности обозначаются прямоугольниками со скругленными угламп. Кроме того, связь, от которой зависит существование сущности, обозначается ромбом со скругленными углами. В качестве альтернативы, в некоторых ЕВ-диаграсимах (не показано здесь) прямоугольники для слабых сущностей рисуются двойной линией, а связи, от которых зависит существование этих сущностей, изображаются двойными ромбами. В модели «сущность — связь» имеется особый тип слабых сущностей, называемый идеггтифихакионно-зависимыми сущностями (П)-г(ерепс(епс епс1с1ез).
Это такие сущности, идентификаторы которых содержат идентификатор другой сущности. Рассмотрим сущности ДОМ и КВАРТИРА. Пусть идентификатором сущности ДОМ является атрибуч НазваниеДона, а идентификатором сущности КВАРТИРА является композитнытс идентификатор (НазваниеДона, НомерКвартиры), Поскольку идентификатор сущности КВАРТИРА содержит в себе идентификатор сущности ДОМ (НазааниеДома), то сущность КВАРТИРА является идентпфикационно-зависимой от сущности ДОМ.
Сравните рис. 3.7, 6 с рис. 3.7, а. По-другому можно представить это так, что, как логически, так и физически, квартира не может существовать, если не существует соответствующего здания. 90 Глава 3. Модель «сущность — связь» Элементы модели «сущность — связь» 91 Идентнфикацнонно-зависимые сущности встречаются часто. Ензе одним примером может служить сущность ВЕРСИЯ в связи с сущностью ПРОДУКТ, где ПРОДУКТ вЂ” это некоторый программный продукт, а ВЕРСИЯ вЂ” номер его версии. Идентификатором продукга является атрибут НазваннеПродукта, а идентификатором версии является совокупность (НазваннеПродукта, НомерВерсни).
Третзгй пример — это сущность ИЗДАНИЕ в связи с сущностью УЧЕБНИК. Идентификатором сущности УЧЕБНИК является атрибут Заглавие, а идентификатором издания является совокупность (Заглааке, ПорядковыйНонерИздання). К сожалению, в определении термина слабая суигггосгиь есть скрытая неоднозначность, и она по-разному интерпретируется различнымн проектировщиками баз данных (а также различными авторами книг). Эта неоднозначность заключается в следующем: в строгом смысле, слабая сущность определяется как любая сущность, чье присутствие в базе данных зависит от другой сущности; тогда любая сущность, участвуюьцая в связи минимальной кардинальности 1 с другой сущностью, является слабой.
Таким образом, рассматривая базу данных образовательного учреждения, можно заключить следугон)ее: если у студента должен быть руководитель, то сущность СТУДЕНТ является слабой, поскольку опа не может быть записана в базу данных без связи с какай-либо сущностью класса РУКОВОДИТЕЛЬ. Это толкование, однако, кажется некоторым людям слишком широким.
Студент физически не зависит от руководителя (в отличие от случая с квартирой и домом), как не зависит от него и логически (что бы по этому пододу ни думали студент и руководитель!), поэтому сущность СТУДЕНТ должна считаться сильной сущностью. Чтобы избежать подобных ситуаций, некоторые интерпретируют определение слабой сущности более ограниченно. Чтобы сущность люжно было отнести к разряду слабых, она должна логически зависеть от другой сущностп.
Согласно данному определению, сущности ПОДЧИНЕННЫЙ и КВАРТИРА должны считаться слабыми, а сущность СТУДЕНТ вЂ” нет. Подчиненный не был бы подчиненным, если бы не находился в подчинении у кого-то, а квартира не может существовать без здания, в котором она могла бы располагаться. Студен~ же может лапшескн существовать и без руководителя, даже если деловой регламент этога не допускает. Чтобы проиллюстрировать эту интерпретацию, рассмотрим несколько примеров. Пусть модель данных включает в себя связь между сущностямн ЗАКАЗ и АГЕНТ (рис. 3.8, а).
Хотя можно сказать, что для каждого заказа должен быть указан агент, в действительности зто не обязательно (заказ может быть, к примеру, продажей за наличные, прн которой нмя агента не записывается). Следовательно, минимальное кардинэльное число, равное 1, проистекает из делового регламента, а не из логической необходимости. Таким образом, сущность ЗАКАЗ, хотя и требует наличия сущности АГЕНТ, не зависит от существования последней, поэтому ЗАКАЗ следует рассматривать как сильную сущность.
Теперь рассмотрим связь между сущностями ПАЦИЕНТ н РЕЦЕПТ, изображенную на рис. 3.8, б. Здесь рецепт не может логически сунгествовать без пациента. Следовательно, помимо того, что минимальное кардинальное число сущности РЕЦЕПТ равно 1, эта сущность также зависит от существования сущности ПАЦИЕНТ. Отсюда следует, что РЕЦЕПТ вЂ” это слабая сущность. Наконец, рассмотрим сущность НАЗНАЧЕНИЕ, изображенную на рис. 3.8, в. Идентификатор этой сущности содержит идентификатор сущности ПРОЕКТ. Здесь, кроме того, что сущность НАЗНАЧЕНИЕ имеет минимальную кардинальность 1 и зависит от существования сущности ПРОЕКТ, она является еще и ндентификационно-зависилгой от последней, поскольку ее ключ содержит ключ сущности ПРОЕКТ. Такилг образом, сущность НАЗНАЧЕНИЕ является слабой.
Идентификатор: НззввннеПроекта Идентификатор: (НазвеннеПроекта, Название задачи) в Рнс. 3.8. Примеры обязательных сущностей В этой книге мы определяем слабые сущности как логически зависящие от существования другой сущности, Следовательно, не все сущное~и, имеющие минимальную кардинальность 1 в связи с другой сущностью, являются слабыми. Только логически зависимые сущности квалифицируются нами как слабые. Это определение также подразумевает, что слабыми являются все идентификацнонно-зависимые сущности.
Кроме того, любая слабая сущность имеет лзинилзальное кардинальное число 1 в связи с сущностью, от которой зависит, но произвольно взятая сущность с минимальным кардинальным числом, равным 1, не обязательно должна быть слабой'. Представление многозначных атрибутов при помощи слабых сущностей Многозначные атрибуты представляются в модели «сущность связь» путем создания новой слабой сугцности и построения связи нида «один ко лгнопзлин В качестве примера на рис. 3.9, а изображено представление многозначного атрибута ДоверенноеЛнцо сугцности КЛИЕНТ. Создается новая сущность под с именем ДОВЕРЕННОЕ ЛИЦО с единственным атрибутом ДоееренноеЛнцо. Связь между сущностями ДОВЕРЕННОЕ ЛИЦО и КЛИЕНТ имеет вид «один ко многим».
Созданная таким образом сущность должна быть слабойг, поскольку ана логически зависит от сущности, имеющей многозначный атрибут. ' Здесь не узолгннзгстся слунзн, когда нннннзльнзл кзрлнкзльностл оказывается бслыие еднннкы. Логика аналогична, но сущность теперь зависят от набора сущностей, КЛИЕНТ содержит: ИМЯ ДОВЕРЕННОГО ЛИЦА содержит: ИмяДсверенногопицв НомерКлиентв ИмяКпиентв прочие атрибуты... КЛИЕНТ содержит: АДРЕС содержит: НомерКлиентв ИмяКпиентв прочие атрибуты...
Улица Город Штат Индекс б Подтипы сущностей ФИЗИЧЕСКОЕ ЛИЦО содержит: КЛИЕНТ содержит; КОРПОРАЦИЯ содержит: ТОВАРИЩЕСТВО содержит: 92 Глава 3. Модель «сущность — связь» На рис. 3.9, 6 изображено представление многозначного составного атрибута Адрес. Новая слабая сушность АДРЕС содержит всю совокупность атрибутов, а именно атрибуты Улица, Город, Штат и ПочтовыйИндекс. Рис. 3.9.
Представление многозначных атрибутов с помощью слабых сущностей Некоторые сушности имеют необязательные наборы атрибутов; этн сущности часто представляются с помошью под»лилов (ьвЬсурез)'. рассмотрим, например, сушность КЛИЕНТ с атрибутами НомерКлиента, ИмяКлиента и СуммэКОплате. Предположим, что клиент может быть физическим лицом, товариществом или корпорацией и что необходимо указывать некоторую дополнительную информацию, зависяшую от типа клиента. Пусть зта информация имеет следующее содержание; ФИЗИЧЕСКОЕ ЛИЦО: Адрес, НомерСоциальнойСтрахавки ТОВАРИЩЕСТВО: ИмяупраеллющегоПартнера, Адрес, ИдентификационныйНалоговыйНомер КОРПОРАЦИЯ: КонтактноеЛицо, Телефон, ИдентификационныйНалоговыйНомер Одна из возможностей — отнести все эти атрибуты к сущности КЛИЕНТ, как показано на рис.
3.10, а. В этом случае, однако, некоторые атрибуты будут неприменимы. Например, такой атрибут, как нмя управляюшего партнера, не имеет смысла для индивидуального или корпоративного клиента, и таким образом, он не может иметь какого-либо значения. В модели, более близкой к реальной ситуации, вместо этого будет определена три подтипа сущностей, как показано на рис. 3.10, б. Здесь сущности ФИЗИЧЕСКОЕ ЛИЦО, ТОВАРИЩЕСТВО и КОРПОРАЦИЯ изображены как подгпипы сущности КЛИЕНТ. Последняя, в свою очередь, является нпдгпипом (звреггуре) для сущностей ФИЗИЧЕСКОЕ ЛИЦО, ТОВАРИЩЕСТВО и КОРПОРАЦИЯ.
' Подтипы были добавлены в модель кущность — связь после публикации оригинвдьной статьи Чена, и онн являются частью того, что ньзы кается расширенной моделью»сущнссть — сеюь». Элементы модели .сущность — связь» 93 Символ е рядом с линиями связи указывает, что сущности ФИЗИЧЕСКОЕ ЛИЦО, ТОВАРИЩЕСТВО и КОРПОРАЦИЯ являются подтипачш сущности КЛИЕНТ. Каждьгй полтин должен принадлежать надтипу КЛИЕНТ. Кривая линия с цифрой 1 рядом показывает, что сущность КЛИЕНТ должна принадлежать к одному и толька одному полтипу. Это означает, что падтипы являгатся взаимоисключающими и что требуется только один из них.
в Рис. 3.10. Подтипы сущностей: з — КЛИЕНТ без подтипов; б — КЛИЕНТ с подтипвми; в — невзвимоисключвющие подтипы с необязательным нвдтипом Сущности со связью типа «ЕСТЬ» должны иметь один и тот же идентификатор, поскольку они представляют различные аспекты одного и того же. В данном Пример Ей-диаграммы ФИКАЦИЯ ЕРТИФИ КАТА 94 Глава 3. Модель «сущность — связь» случае таким идентификатором является НомерКлиента. Сравните эту ситуацию со связью типа «ИМЕЕТ», показанной на рпс. З.З, где сущности представляют различные вещи.