- •Новосибирский государственный университет экономики и управления
- •«Проектирование информационных систем» Раздел «Моделирование и проектирование данных»
- •Новосибирск 2009
- •1. Концепции er-модели
- •Примеры сущностей с физическим и концептуальным существованием
- •Способы представления сущностей на диаграмме
- •Представление атрибутов на диаграммах
- •1.3. Типы связей
- •Представление связей на диаграммах
- •1.4. Атрибуты связей
- •Date_View и Comments
- •2. Структурные ограничения
- •2.1. Показатель кардинальности
- •Связи «один к одному»
- •Связь „один ко многим"
- •Связи "многие ко многим"
- •2.2. Степень участия
- •3. Проблемы er-моделирования
- •3.1. Ловушки разветвления
- •3.2. Ловушки разрыва
- •4. Eer-модель
- •4.1. Суперклассы и подклассы типов сущностей
- •4.2. Наследование атрибутов
- •4.3. Специализация
- •4.4. Генерализация
- •4.5. Ограничения, накладываемые на процедуры специализации и генерализации
- •4.6. Категоризация
2.2. Степень участия
Степень участия: определяет, зависит ли существование некоторой сущности от участия в связи некоторой другой сущности.
Существует два варианта участия сущности в связи: полное (total) и частичное (partial). Степень участия является полной, если для существования некоторой сущности требуется существование другой сущности, связанной с ней определенной связью. В противном случае степень участия является частичной. Например, в случае связи IsAllocated между сущностями Branch и Staff участие сущности Branch в этой связи является полным, поскольку каждое отделение компании имеет некоторый персонал. Однако, поскольку некоторые работники (например, торговые агенты) не относятся ни к какому конкретному отделению компании, то участие сущности Staff в связи IsAllocated является частичным.
На рис. 2.7 эти ограничения представлены в схематическом виде на примере связи IsAllocated между сущностями Branch и Staff. Полную степень участия иногда называют обязательным участием (mandatory), а частичную — необязательным (optional). Участники связи с полным участием соединяется со значком связи двойной линией, а участники связи с частичным участием — одинарной линией.
Рис. 2.7. Степень участия сторон в связи IsAllocated между сущностями Branch и Staff
Допустимо использование и альтернативного варианта обозначений структурных ограничений, накладываемых на некоторую связь, который предусматривает отображение максимальных (Мах) и минимальных (Min) значений в виде надписи (Min, Max) над линией соединения, обозначающей участие сущности в данной связи. Например, на рис. 2.8 эти обозначения применены в отношении связи IsAllocated между сущностями Branch и Staff. Подобная система обозначений полезна тем, что иногда позволяет отобразить больше информации о степени участия сторон для данной связи. Например, обозначение (5, N) между сущностью Branch и связью IsAllocated (см. рис. 2.8) указывает, что в каждом отделении компании работает, по крайней мере, 5 сотрудников (Min = 5), а максимальное их количество не ограничено (Мах = N). Аналогично, обозначение (0, 1) между сущностью Staff и связью IsAllocated указывает, что сотрудник не обязательно работает в каком-то из отделений компании (Min = 5), но работать одновременно в нескольких отделениях он не может (Мах == 1). Такую информацию нельзя получить только на основе показателя кардинальности.
Рис. 2.8. Ограничения участия сторон для связи IsAllocated между сущностями Branch и Staff представлены с использованием альтернативной системы обозначений (Min, Мах)
3. Проблемы er-моделирования
В этом разделе рассматриваются некоторые проблемы, которые могут иметь место при разработке концептуальной модели данных. Эти проблемы, которые принято называть ловушками соединения (connection trap), обычно возникают вследствие неправильной интерпретации смысла некоторых связей. Мы рассмотрим два основных типа ловушек соединения: ловушку разветвления(fan trap) иловушку разрыва(chasm trap), а также укажем способы идентификации и устранения этих проблем в создаваемых ER-моделях. Здесь, однако, следует отметить, что очень важно всегда проверять модель данных на наличие потенциальных ловушек соединения, поскольку в одних случаях это может иметь лишь незначительные последствия, тогда как в других — для устранения ловушек может потребоваться выполнить перестройку всей концептуальной модели.
В общем случае для выявления ловушек соединения необходимо гарантировать, что смысл каждой связи четко и ясно определен. При недостаточном понимании сути установленных связей можно построить модель, которая не будет являться истинным представлением реального мира.