Базы данных Oracle - статьи



   ecolosorse.ru             

Наследование - часть 2


create type category_typ as object ( category_name varchar2(50) , category_description varchar2(1000) , category_id number(2) ) NOT INSTANTIABLE NOT FINAL; create type subcategory_ref_list_typ as table of ref category_typ; create type product_ref_list_typ as table of number(6); / create type corporate_customer_typ under customer_typ ( account_mgr_id number(6) ); create type leaf_category_typ under category_typ ( product_ref_list product_ref_list_typ ); create type composite_category_typ under category_typ ( subcategory_ref_list subcategory_ref_list_typ ) NOT FINAL; create type catalog_typ under composite_category_typ ( member function getCatalogName return varchar2 );

Иерархия представлений

Объектное представление может быть создано как подпредставление другого объектного представления, создавая тем самым иерархию представлений. Преимущества иерархии представлений вытекают из того факта, что строки иерархии объектных представлений включают все строки их подпредставлений. Благодаря этому свойству, можно запрашивать объекты типов, принадлежащих к некоторой иерархии, осмысленным образом.

CREATE VIEW Persons OF Person_t WITH OBJECT ID (name) AS SELECT name, dob FROM r_persons; CREATE VIEW Employees OF Employee_t UNDER Persons AS SELECT name, dob, salary, bonus from r_employees;

Запрос к представлению Persons выберет всех лиц, включая служащих.

SELECT VALUE(p) FROM Persons p;

Oracle предоставляет возможность выполнения новых операторов для определения наиболее специализированного типа (most-specific-type) некоторого экземпляра объекта и преобразования объекта супертипа Т в объект подтипа T (если это возможно).

(Прим. ред. Связь "тип-подтип" в объектных моделях данных позволяет моделировать иерархию двойственных видов абстракций типов сущностей предметной области – абстракции обобщения (generalization) и специализации (specialization). При этом супертип является обобщением своего подтипа, а подтип – специализацией супертипа. Естественно назвать подтип нижнего уровня иерархии "наиболее специализированным типом" или "самым специализированным типом". Важно заметить, что это свойство является относительным – оно имеет место относительно заданной иерархии типов.)

Например, следующий запрос выбирает всех персон с заданной датой рождения (date of birth, dob), которые являются служащими.




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