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

       

к базовым скалярным типам, позволяет


Существование ссылочного типа, относящегося к базовым скалярным типам, позволяет описывать вложенные сложные структуры.

Объектные типы образуют иерархию наследования (невозможно наследование объектных типов от значимых, значимые типы не могут наследоваться от объектных). Наследование объектных типов подразумевает, что спецификация типа наследника включает спецификацию родительского типа (или типа предка). Допускается множественное наследование. Существует предопределенный фиктивный объектный тип Object, по умолчанию являющийся предком для любого объектного типа.

Замечание. При наследовании от типов, имеющих общий базовый тип, спецификация последнего не дублируется (используя термины С++ можно сказать, что спецификации объектных типов наследуются виртуально). В системе должен существовать механизм, позволяющий разрешать возможные в случае множественного наследования конфликты реализаций компонентов.

Пример. Опишем кортежный тип SaleQty., служащий для описания количества определённого артикула.

DESCRIBE TUPLE SaleQty { Art Article; Quantity INTEGER; Price FLOAT; }

Объектный тип Sales описывает факты продаж. Поскольку продажи можно рассматривать как частный случай отгрузки со склада, объектный тип Sales является наследником типа GoodsMotion. Компонент SaleItems содержит данные о продаваемом товаре. Его значение определено как множество кортежных значений типа SaleQty, где атрибуты ArticleNo и Price составляют ключ (одни и тот же артикул может продаваться по разным ценам). Компонент IsPayed указывает, была ли произведена оплата. Компонент DoSale является методом, принимающим в качестве атрибута дату отгрузки и возвращающим результат, свидетельствующий об успехе выполнения операции отгрузки.

CREATE CLASS Sales EXTENDED GoodsMotion { IsPayed BOOLEAN; SalesManager Manager; SaleItems SET OF SaleQty CONSTRAIN LOCALKEY (Art, Price); DoSale (DateOfSale) BOOLEAN; }

Возможно изменение схемы данных. Например, пусть в объектный тип Brand нужно добавить компонент, содержащий информацию о продажах артикулов, принадлежащих данной(this) торговой марки.

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