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




Об основаниях ненавигационного языка запросов к объектно-ориентированным базам данных - часть 14


Декартово произведение классов.

Операция декартова произведения классов является двуместной

и применима к любым двум классам решетки классов (статической

или динамической).

Сигнатура типа результирующего класса производится путем

объединения сигнатур типов классов-операндов. Возможные коллизии

имен функций разрешаются подобно тому, как это делается в

реляционной алгебре для имен атрибутов. Результирующий класс C,

полученный путем декартова произведения класса A на класс B,

включает множество объектов, полученных путем попарного

"склеивания" объектов классов A и B. Объекты класса C являются

вновь созданными временными объектами ООБД и обладают новыми

идентификаторами. Тип класса C является подтипом типов классов A

и B, но класс C не является подклассом ни A, ни B. В динамической

решетке классов его можно считать подклассом только корневого

суперкласса статической решетки.

Заметим, что даже если в статической решетке классов у классов A

и B имеется общий подкласс с тем же типом, что и у C, нельзя

считать, что это и есть класс C, потому что объекты этого класса

могли порождаться совсем другим образом.

Селекция класса.

Операция селекции класса является двуместной и применима к любому

классу A решетки классов (статической или динамической). Вторым

параметром операции является логическое выражение F, построенное

на основе простых предикатов, включающих вызовы функций сигнатуры

типа класса A.

Результирующий класс C обладает тем же типом, что и класс A,

является его подклассом в динамической решетке классов и

непосредственно включает все объекты класса A, для которых

значение логического выражения F есть true.

Проекция класса.

Операция проекции класса является двуместной и применима к любому

классу A решетки классов (статической или динамической). Вторым

параметром операции является подсигнатура сигнатуры типа класса A

(S), т.е. список имен функций, входящих в сигнатуру типа класса

A.

Тип результирующего класса C является супертипом типа класса A с




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