Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PosobieERmodel.doc
Скачиваний:
30
Добавлен:
31.03.2015
Размер:
735.23 Кб
Скачать

4.6. Категоризация

Категоризация: моделирование одного подкласса со связью, которая охватывает несколько разных суперклассов.

Каждая связь "суперкласс/подкласс" (включая совместно используемые подклас­сы) в иерархии специализации/генерализации обладает единственным и отличным от других суперклассом. Например, совместно используемый подкласс Sales Trainee (см. рис. 4.3) имеет две разные связи типа "суперкласс/подкласс", каждая из кото­рых включает единственный суперкласс. Однако в некоторых ситуациях может по­требоваться смоделировать связь "суперкласс/подкласс", включающую сразу не­сколько разных суперклассов. В этом случае создаваемый подкласс будет называться категорией (category) (Elmasri, 1994).

Например, на рис. 4.4 показаны две категории Property Owner и Property. Категория Property Owner связана с двумя суперклассами с разными типами сущности, а именно с Person и Business. Категория Property связана с двумя другими, но также различными су­перклассами, а именно с Property_for_Sale и Property_for_Rent. Линия, соединяющая под­класс-категорию с кружком категоризации, помечается символом принадлежности множеству (), а в кружок категоризации помещается символ объединения (u).

Рис. 4.4. Категории Property Owner и Property

Подкласс категории обладает выборочным наследованием (selective inheritance). Это означает, что каждый экземпляр сущности категории наследует атрибуты только одного суперкласса. Например, на рис. 4.4 каждая сущность типа Property Owner может наследовать атрибуты только суперкласса Person (Name, Address и Tel No) или только суперкласса Business (BName, BAddress, Tel_No и Fax No).

Как и операция специализации/генерализации, операция категоризации мо­жет быть дополнительно детализирована с учетом полного или частичного уча­стия сторон. При полном участии каждый экземпляр всех суперклассов должен быть представлен в данной категории, что обозначается двойной линией, соеди­няющей подкласс-категорию с кружком категоризации. При частичном участии это ограничение устраняется и всем экземплярам всех суперклассов присутство­вать в данной категории не обязательно, что обозначается одинарной линией, со­единяющей подкласс-категорию с кружком категоризации. Например, категория Property_Owner характеризуется частичным участием, так как не все экземпляры суперклассов Person и Business должны быть представлены в этой категории. В то же время категория Property характеризуется полным участием, поскольку каждый член суперклассов Property_for_Sale и Property_for_Rent является членом этой категории.

Если категория характеризуется полным участием (например, как категория Property), то существует возможность представления сущностей с помощью опера­ций специализации/генерализации. Хотя выбор конкретного используемого вари­анта остается за разработчиком, тем не менее, операции специализа­ции/генерализации целесообразнее применять для представления сущностей одно­го типа, чтобы они могли совместно использовать наибольшее количество атрибутов, включая первичный ключ. Таким образом, представление сущности Property_Owner выгоднее сохранять в виде категории, а представление сущности Property эффективнее осуществлять с помощью средств специализа­ции/генерализации — как показано на рис. 4.5.

Рис. 4.5. Пример специализации/­генерализации сущности Property

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]