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

4.2. Наследование атрибутов

Как упоминалось выше, сущность в подклассе представляет тот же объект реаль­ного мира, что и ее суперкласс, и может обладать атрибутами, как связанными с су­перклассом, так и специфическими для данного подкласса. Например, подкласс Sales_Personnel обладает всеми атрибутами суперкласса Staff (т.е. атрибутами Staff_No, Name, Address и DOB), а также специфическими атрибутами подкласса Sales Personnel (т.е. атрибутами Car_Allowance и Sales_Area).

Подкласс также является сущностью, а потому может иметь свои собственные под­классы. Сущность, ее подклассы, подклассы данных подклассов и так далее — все это называется иерархией типа (type hierarchy). Иерархии типов могут иметь разные на­звания: иерархия специализации (specialization hierarchy) — например, подкласс Man­ager является специализацией суперкласса Staff; иерархия генерализации (generalization hierarchy) — например, суперкласс Staff является генерализацией под­класса Manager; иерархия принадлежности (IS-A hierarchy) — например, менеджер (подкласс Manager) является сотрудником (принадлежит суперклассу Staff). В следую­щих разделах процессы специализации и генерализации описываются более подробно.

4.3. Специализация

Специализация: процесс увеличения различий между отдельными членами типа сущности за счет выделения их отличительных характеристик.

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

Рассмотрим, например, процедуру специализации, в которой идентифицируется множество подклассов суперкласса Staff, включая подклассы Manager, Secretary и Sales Personnel. Ее можно представить схематически — в виде EER-диаграммы, по­казанной на рис. 4.1. Обратите внимание, что суперкласс Staff и его подклассы, ко­торые также являются типами сущностей, здесь обозначены прямоугольниками. Подклассы специализации соединяются линиями с кружком, который, в свою оче­редь, соединяется с суперклассом. Символ принадлежности множеству (с) на каждой линии, соединяющей подкласс с кружком, указывает направление связи "подкласс/суперкласс" (например. Manager с Staff). Символ "о" в кружке специали­зации обозначает накладываемое на связь "подкласс/суперкласс" ограничение, кото­рое более подробно описывается ниже, в разделе 4.5.

Рис. 4.1. Специализация сущности Staff no подклассам на основе служебных ролей

Специфические для каждого подкласса атрибуты непосредственно соединяются линиями с прямоугольником, обозначающим этот подкласс. Например, на рис. 4.1 атрибуты Car_Allowance и Sales_Area связаны только с подклассом Sales_Personnel, a это означает, что они не могут быть применены к подклассу ManagerилиSecretary. Аналогичным образом выделены атрибуты, специфические для подклассов Manager (атрибут Bonus) и Secretary (атрибут Typing Speed).

Обратите внимание на то, что на ERR-диаграмме могут быть указаны связи, ко­торые применимы только к отдельным подклассам. Например, подкласс Manager свя­зан с сущностью Branch посредством связи Manages, в то время как сущность Staff связана с сущностью Branchпосредством связиIsAllocated(см. рис. 4.1).

Для одной и той же сущности можно выделить несколько независимых специали­заций, основываясь на разных ее характеристиках. Например, в другой специализа­ции сущности Staff могут быть выделены подклассы Full Time Permanent (Постоянный работник) и PartTime Temporary (Временный работник), отличающиеся типом установленного с данным работником соглашения о найме. Обе специализации типа сущностиStaffна подклассы служебных ролей и подклассы вида установленно­го соглашения о найме показаны на рис. 4.2.

Рис. 4.2. Специализации сущности Staff на подклассы служебных ро­лей и подклассы вида установленного соглашения о найме

На этом рисунке также показаны атрибуты, которые специфичны для подклассов Full_Time_Permanent (Salary Scale и Holiday Allowance) и Part Time Temporary (Hourly Rate). Символ d в кружке специализации представляет ограничение, накла­дываемое на связь "суперкласс/подкласс", речь о котором пойдет в разделе 4.5.

Подкласс также может иметь свои собственные подклассы, которые образуют иную иерархию специализаций. Как показано на рис. 4.3, сущность Sales_Trainee является подклассом двух подклассов Sales_Personnel и Trainee. Подкласс с несколь­кими суперклассами называется совместно используемым подклассом (shared subclass). Иначе говоря, член совместно используемого подкласса Sales Trainee одно­временно должен быть членом подклассов Sales Personnel и Trainee. В результате ат­рибуты подкласса Sales Personnel (Sales_Area и Car_Allowance) и подклассаTrainee(Start_Date) наследуются подклассом Sales_Trainee, который также обладает своим собственным дополнительным атрибутом SalesJarget. Подобный процесс называется множественным наследованием (multiple inheritance).

Рис.4.3. Пример совместно используемого подкласса Sales_Trainee (множественное наследование)

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