Вход/Регистрация
BPwin и Erwin. CASE-средства для разработки информационных систем
вернуться

Маклаков Сергей Владимирович

Шрифт:

Связь многие-ко-многим возможна только на уровне логической модели данных. На рис. 2.31 вверху показан пример связи многие-ко-многим. Врач может принимать много пациентов, пациент может лечиться у нескольких врачей. Такая связь обозначается сплошной линией с двумя точками на концах.

Рис. 2.31. Связь многие-ко-многим

Для внесения связи следует установить курсор на кнопке

в палитре инструментов, щелкнуть сначала по одной, а затем по другой сущности.

Связь многие-ко-многим должна именоваться двумя фразами - в обе стороны (в примере "принимает/лечится"). Это облегчает чтение диаграммы. Связь на рис. 2.31 следует читать Вран <принимает> Пациент"а, Пациент <лечится> у Врач"а.

При переходе к физическому уровню ERwin автоматически преобразует связь многие-ко-многим, добавляя новую таблицу и устанавливая две новые связи один-ко-многим от старых к новой таблице (рис. 2.32, сверху). При 'этом имя новой таблице присваивается автоматически как “Имя1 Имя2".

Рис. 2.32. Иллюстрация автоматического разрешения связи многие-ко-многим на уровне физической модели

Автоматического решения проблемы связи многие-ко-многим не всегда оказывается достаточно. В примере таблица Doctor_Patient имеет смысл визита к врачу, поэтому ее следует переименовать согласно бизнес-логике в Visit. Один и тот же пациент может много раз посещать врача, поэтому для того, чтобы идентифицировать визит, необходимо в состав первичного ключа таблицы Visit добавить дополнительную колонку, например дату-время посещения (VisitDatetime, рис. 2.33).

Рис. 2.33. Дополнение модели при разрешении связи многие-ко-многим на уровне физической модели

Следует заметить, что после внесения дополнительной колонки на физическом уровне на логическом уровне представление модели не изменится, диаграмма будет выглядеть так, как на рис. 2.31.

2.2.4. Типы сущностей и иерархия наследования

Как было указано выше, связи определяют, является ли сущность независимой или зависимой. Различают несколько типов зависимых сущностей.

Характеристическая - зависимая дочерняя сущность, которая связана только с одной родительской и по смыслу хранит информацию о характеристиках родительской сущности.

Рис. 2.34. Пример характеристической сущности "Хобби "

Ассоциативная - сущность, связанная с несколькими родительскими сущностями. Такая сущность содержит информацию о связях сущностей. Примером ассоциативной сущности является Visit на рис. 2.33.

Именующая - частный случай ассоциативной сущности, не имеющей собственных атрибутов (только атрибуты родительских сущностей, мигрировавших в качестве внешнего ключа). Примером именующей сущности является Doctor_Patient на рис. 2.32.

Категориальная - дочерняя сущность в иерархии наследования.

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

Обычно иерархию наследования создают, когда несколько сущностей имеют общие по смыслу атрибуты, либо когда сущности имеют общие по смыслу связи (например, если бы Постоянный сотрудник и Совместитель имели бы сходную по смыслу связь "работает в" с сущностью Организация), либо когда это диктуется бизнес-правилами.

Для каждой категории можно указать дискриминатор - атрибут родового предка, который показывает, как отличить одну категориальную сущность от другой (атрибут Тип на рис. 2 35).

Рис. 2.35. Иерархия наследования. Неполная категория

Иерархии категорий делятся на два типа - полные и неполные. В полной категории одному экземпляру родового предка (сущность Служащий, рис. 2.36) обязательно соответствует экземпляр в каком-либо потомке, т. е. в примере служащий обязательно является либо совместителем, либо консультантом, либо постоянным сотрудником.

  • Читать дальше
  • 1
  • ...
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: