Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Супертипы и подтипы сущностей



Поскольку на рис. 11.6 не содержится никаких супертипов или подтипов, далее речь пойдет о примере, представленном на рис. 11.7. Рассмотрим типы сущностей EMPLOYEE и PROGRAMMER. Предположим для простоты, что программисты обладают навыками работы только с одним языком программирования6 (т.е. свойство LANG является однозначным).

■ Супертип EMPLOYEE отображается на базовую переменную отношения, например ЕМР, обычным образом (т.е. так, как уже было описано выше).

■ Подтип PROGRAMMER отображается на другую базовую переменную отношения, например PGMR, с таким же первичным ключом, что и у переменной отношения ее супертипа, но с другим набором атрибутов, соответствующим свойствам, которые применяются для описания только работников, являющихся программистами (в нашем примере — LANG).

VAR PGMR BASE RELATION { EMP#

..., LANG... } PRIMARY KEY {

EMP# }...;

Более того, первичный ключ переменной отношения PGMR является также внешним ключом, который ссылается на переменную отношения ЕМР. Следовательно, приведенное выше определение необходимо соответствующим образом расширить (в частности, обратите внимание на определение правил удаления и обновления).

VAR PGMR BASE RELATION {

ЕМР#..., LANG... }

PRIMARY KEY { EMP# }

FOREIGN KEY { EMP# } REFERENCES EMP

ON DELETE CASCADE ON UPDATE

CASCADE;

■ Нам также потребуется представление, например, с именем EMP_PGMR, являющее ся соединением переменных отношения супертипа и подтипа.

VAR EMP_PGMR VIEW

ЕМР JOIN PGMR;

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

работниках, являющихся программистами.

Такая структура позволяет выполнять описанные ниже действия.

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

■ С помощью базовой переменной отношения PGMR МОЖНО получить доступ к свой ствам, характерным только для программистов.

■ С помощью представления EMP_PGMR можно получить доступ ко всему набору свойств программистов.

1 В базовую переменную отношения ЕМР можно вставлять сведения о работниках, которые не являются программистами.

■ Сведения о работниках-программистах можно вставлять в базу данных с помощью представления EM7P_PGMR.

■ Сведения о любых работниках (программистах и не программистах) можно удалить из базы данных, удалив их из базовой переменной отношения ЕМР, а сведения о работниках-программистах можно удалить из базы данных, удалив их из представления EMP_PGMR.

■ Свойства, общие для всех работников, можно обновлять в базовой переменной отношения ЕМР, а свойства только работников-программистов — обновлять и с помощью представления EMP_PGMR.

■ Свойства, характерные только для программистов, можно обновлять в базовой переменной отношения PGMR.

■ Статус сотрудника, не являющегося программистом, можно изменить на статус программиста за счет вставки сведений об этом сотруднике в базовую переменную отношения PGMR или же в представление EMP_PGMR.

■ Статус программиста можно изменить на статус сотрудника, не являющегося программистом, за счет удаления сведений об этом программисте из базовой переменной отношения PGMR.

Предлагаем читателю самостоятельно рассмотреть другие типы сущностей, показанные на рис. 11.7 (APPLICATION_PROGRAMMER ИSYSTEM_PROGRAMMER).





Дата публикования: 2015-02-03; Прочитано: 246 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...