Базы данных

Представление простой специализирующей иерархии в виде таблиц


Рассмотрим простейший случай одного суперкласса и нескольких подклассов. На 4.11 перечислены три основные стратегии представления специализирующей иерархии в виде таблиц.

1. Создать таблицу для суперкласса с его атрибутами и таблицу для каждого подкласса с его атрибутами.

2. Создать таблицу для суперкласса со всеми атрибутами подклассов.

3. Создать таблицу для каждого подкласса, состоящую из атрибутов подкласса и суперкласса.

В качестве примера рассмотрим специализацию почасовиков и штатных сотрудников (см. 3.4), представленную на 4.12. Эта специализация имеет единственный суперкласс, определяющий атрибут и два подкласса.

Первая стратегия представления специализации в виде таблиц состоит в том, чтобы создать три таблицы, как показано на 4.13. Ключ суперкласса (Employee, ssn) добавляется в таблицу каждого из подклассов в качестве ключа и внешнего ключа. Определяющий атрибут добавлен к таблице суперкласса. Для каждого служащего, оплачиваемого почасово, запись присутствует как в таблице Employee, так и в таблице HourlyEmployee. Аналогично, каждому штатному служащему соответствует запись как в таблице Employee, так и в таблице SalariedEmployee. Для доступа ко всем атрибутам одного объекта требуется доступ к строке из таблицы суперкласса и к строке из таблицы соответствующего подкласса.

/Empl оуее: (ssn, lastName, firstName, address, balance, wageType) J /HourlyEmployee: (ssn, hourlyRate) (

ISalariedEmployee: (ssn, weeklyPayRate, vacationLeaveHours, I

IsickLeaveHours)

Комментарии закрыты