Три манифеста баз данных ретроспектива и перспективы

       

Объекты как результаты запросов


В примерах предыдущего пункта результатами запросов являлись литеральные значения, не обладающие объектными идентификаторами. Если ввести следующие определения объектных типов:

typedef Set <interval> ages;

class persinfo {

   

attribute string <20> n;

   

attribute date b; };

typedef Bag <persinfo > info;

то можно сформулировать следующие запросы.

Пример 2.5

ages ( SELECT DISTINCT E.age
         FROM EMPLOYEES E
         WHERE E.EMP_SAL > 20000.00 )

Окончательным результатом этого запроса является объект-множество, включающий литеральные значения типа interval . 37

Пример 2.6

info ( SELECT persinfo (n: E.EMP_NAME, b: E.EMP_BDATE)

    

FROM EMPLOYEES E

    

WHERE E.EMP_SAL > 20000.00 )

В этом примере по литеральным значениям имени и даты рождения каждого служащего, размер зарплаты которого превышает 20000 руб., конструируется объект типа persinfo , а на основе литерального мультимножества этих объектов конструируется объект-мультимножество типа info .

В совокупности результатом допустимых в OQL выражений запросов могут являться:

  • коллекция объектов;
  • индивидуальный объект;
  • коллекция литеральных значений;
  • индивидуальное литеральное значение.


  • Содержание раздела