Классика баз данных - статьи

       

наследуют все атрибуты от супертипа


Подтипы "Programmer" и "Representative" наследуют все атрибуты от супертипа "Employee". Запрос об объектах "employees" типа "Employee" означает также запрос об объектах подтипов, а именно "programmers" и "representatives".

SELECT e.Name FROM employees e;

Результатом SQL запроса будет:

Name -------------------- Sylvia Karsen William Helprin Akiko Yokomoto

Zigzag представление



Та же иерархия данных может быть выражена в Zigzag. Отдельное определение типов не требуется.

$readTable() < Employee; Name ; Salary # ; Sylvia Karsen; 30000.00 >; $readTable() < Employee:Programmer; Name ; Salary ; Language; Project # ; William Helprin; 40000.00; C++ ; Seestorm >; $readTable() < Employee:Representative; Name ; Salary ; Region # ; Akiko Yokomoto; 50000.00; Asia >;

Zigzag запрос об объектах типа "Employee" означает также запрос об объектах имеющих тип "Programmer" и "Representative". Чтобы получить тот же самый результат, как ранее в SQL, воспользуемся следующим запросом.

= Name:(Employee:);

Отличительное свойство Zigzag - то, что тип действительно является объектом, который определяет класс (в смысле множества) других объектов. Другими словами, типы в Zigzag – также данные. Кроме того, наследование типа означает не только наследование имен атрибутов, но также и наследование значений атрибутов. Например, предположим, что все программисты расположены в одном отделе "E". В случае SQL3 требуется вставить значение "E" во все строки таблицы "programmers". Относительно Zigzag, мы можем быть удовлетворены, если установим "E" только для объекта "Programmer".

$readTable() < Employee ; Department Programmer; E >;

Чтобы проверить наследование значения "E", введем следующий Zigzag запрос, переводимый как "имена работников отдела Е".

= Name:(Employee:(Department:E));

Результат будет такой:

Name:William Helprin


Содержание  Назад  Вперед