Операция декартова произведения классов является
Декартово произведение классов.
Операция декартова произведения классов является двуместной
и применима к любым двум классам решетки классов (статической
или динамической).
Сигнатура типа результирующего класса производится путем
объединения сигнатур типов классов-операндов. Возможные коллизии
имен функций разрешаются подобно тому, как это делается в
реляционной алгебре для имен атрибутов. Результирующий класс 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 с
Содержание Назад Вперед