Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.doc
Скачиваний:
114
Добавлен:
16.03.2016
Размер:
5.67 Mб
Скачать

10.4.1. Наследование типов сущности и типов связи

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

Если у типа сущности Aимеются подтипыB1, B2,..., Bn, то:

  • (a) любой экземпляр типа сущности B1, B2,..., Bnявляется экземпляром типа сущностиA(включение);

  • (b) если aявляется экземпляром типа сущностиA, тоaявляется экземпляром некоторого подтипа сущностиBi (i = 1, 2, ..., n)(отсутствие собственных экземпляров у супертипа сущности);

  • (c) ни для каких подтипов BiиBj (i, j = 1, 2, ..., n)не существует экземпляра, типом которого одновременно являются типы сущностиBiиBj(разъединенность подтипов).

Тип сущности, на основе которого определяются подтипы, называется супертипом. Как мы видели выше, подтипы должны образовывать полное множество, т. е. любой экземпляр супертипа должен относиться к некоторому подтипу. Иногда для обеспечения такой полноты приходится определять дополнительный подтипПРОЧИЕ.

Пример супертипа ЛЕТАТЕЛЬНЫЙ АППАРАТи его подтиповАЭРОПЛАН,ВЕРТОЛЕТ,ПТИЦЕЛЕТиПРОЧИЕпоказан нарис. 10.12. У подтипаАЭРОПЛАНимеются два собственных подтипа –ПЛАНЕРиМОТОРНЫЙ САМОЛЕТ. Для супертипа сущностиЛЕТАТЕЛЬНЫЙ АППАРАТопределен атрибутмаксимальная дальность полетаи необязательная связь «многие ко многим» с типом сущностиПИЛОТ. Эти атрибут и связь наследуется всеми подтипами этого супертипа сущности. У непосредственного подтипа сущностиАЭРОПЛАНопределяется один дополнительный атрибут, так что в совокупности у данного типа сущности имеются два атрибутамаксимальная дальность полетаиразмах крыльеви одна унаследованная связь с типом сущностиПИЛОТ. У подтипа второго уровняМОТОРНЫЙ САМОЛЕТсупертипаАЭРОПЛАНопределяется один дополнительный атрибутмощность мотораи одна дополнительная (обязательная) связь с типом сущностиАЭРОДРОМ. Тем самым, у типа сущностиМОТОРНЫЙ САМОЛЕТимеются три атрибута: два унаследованных –максимальная дальность полетаиразмах крыльеви один собственный –мощность мотора, а также две связи: одна унаследованная – с типом сущностиПИЛОТи одна собственная – с типом сущностиАЭРОДРОМ. И так далее. Понятно, что для типа сущностиПРОЧИЕ, скорее всего, бессмысленно определять собственные атрибуты и связи, так что свойства этого типа будут совпадать со свойствами его супертипа.

Как же следует понимать диаграмму, представленную на рис. 10.12? Если начинать от супертипа, то диаграмма изображаетЛЕТАТЕЛЬНЫЙ АППАРАТ, который должен бытьАЭРОПЛАНОМ,ВЕРТОЛЕТОМ,ПТИЦЕЛЕТОМилиДРУГИМ ЛЕТАТЕЛЬНЫМ АППАРАТОМ. Если начинать от подтипа (например, сущностиВЕРТОЛЕТ), то этоВЕРТОЛЕТ, который относится к типуЛЕТАТЕЛЬНОГО АППАРАТА. Если начинать от подтипа, который является одновременно супертипом, то этоАЭРОПЛАН, который относится к типуЛЕТАТЕЛЬНОГО АППАРАТАи должен бытьПЛАНЕРОМилиМОТОРНЫМ САМОЛЕТОМ.

Рис. 10.12.Супертипы и подтипы сущности

В механизме наследования ER-модели допускается наличие двух или более разбиений сущности на подтипы. Например, тип сущности ЧЕЛОВЕКможет быть расщеплен на подтипы по профессиональному признаку (ПРОГРАММИСТ,ДОЯРКАи т. д.), а может быть расщеплен и по половому признаку (МУЖЧИНА,ЖЕНЩИНА).