RUSENG
Студия веб дизайна «Альтра»

Студия веб дизайна «Альтра»

разработка сайтов, интернет магазинов
логотипов, фирменного стиля
веб дизайн

Другие новости

Моделирование групп объектов в Oracle

Дата публикации: 13.07.2011

Оглавление Введение Таблицы хранимых и синтезированных объектов Коллекции Вложенные таблицы Работа в PL/SQL Массивы типа VARRAY Преобразования коллекций Объектный подход к моделированию БД, безусловно, имеет свою притягательность, хотя, как замечалось в предыдущей статье ценность его преувеличивать не стоит, так как и он не лишен собственных проблем и ограничений (к слову сказать, известных задолго до середины 90-х годов, когда ведущие поставщики СУБД взяли его на вооружение)

Однако подход есть, и как-то решать задачу моделирования он обязан. В предыдущей статье говорилось о том, как в Oracle можно создавать и хранить отдельные объекты. В жизни этого недостаточно, и требуется иметь возможность моделировать группы объектов: наборы адресов, списки сотрудников и т. д. Такая возможность предусматривалась, например, в сетевой модели данных, исторически предшествовавшей реляционной, и проектировалась в виде расширения реляционной создателем последней Э. Коддом (в силу ряда причин это расширение было проигнорировано разработчиками промышленных "реляционных" СУБД). Здесь будут рассмотрены возможности моделирования групп объектов, реализованные в Oracle последних версий (8, 9). Таблицы хранимых и синтезированных объектов Первая возможность моделирования групп из объектов в Oracle известна по предыдущей статье: это таблицы "исконных" объектов (object tables) и таблицы "виртуальных", или "синтезированных" объектов (object views). Исконные объекты хранятся как самостоятельные сущности в БД, а синтезированные дают только видимость объектов (по потребительским свойствам почти не отличимую от истинных объектов) на основе данных, хранимых в обычных или объектных таблицах. И те и другие позволяют иметь в БД неупорядоченные списки объектов. Ниже приводится пример создания двух списков сотрудников, проживающих в Москве и Ленинграде. Принадлежность сотрудников отделам задается специальной таблицей: DROP TYPE employee_typ FORCE;DROP table e_moscow;DROP table e_leningrad;DROP table employment; CREATE TYPE employee_typ AS OBJECT (ename VARCHAR2(50),job VARCHAR2(10))/ CREATE table e_moscow OF employee_typ; CREATE table e_leningrad OF employee_typ; INSERT INTO e_moscow VALUES ('Scott', 'Manager');... INSERT INTO e_leningrad VALUES ('Smith', 'Salesman');... CREATE table employment (dname VARCHAR2(50), employee REF employee_typ); INSERT INTO employment VALUES ('Operations', (SELECT REF(m) FROM e_moscow m WHERE m.ename = 'Scott'));...
© 2000–2012 Студия веб дизайна «Альтра»
Все о ремонте! Полезные статьи - сауны. Ищете сауну?