Разработка прототипа системы управления объектно-ориентированной базой данных

       

Описание операций над объектами в БД


             [] DB.NEW   [] -- создать новую БД

             [] DB.OPEN  [] -- открыть БД

             [] DB.CLOSE [] -- закрыть БД

Операции клонирования:

          [oid] CLONE      [oid']  -- клонировать объект

             [] CLONE_ROOT [oid']  -- Создать объект от "Корень"

          [int] CLONE_INT  [oid']  -- Создать объект "Целое"

     ["string"] CLONE_STR  [oid']  -- Создать объект "Строка"

     ["string"] CLONE_AGG  [oid']  -- Создать объек-агрегат

     [oid_if oid_then oid_else]

                CLONE_BIO  [oid']  -- Создать объект-условие

             [] CLONE_SET  [oid']  -- Создать объект-множество

             [] CLONE_SEQ  [oid']  -- Создать объект-последовательность

OIDROOT, OIDINT, OIDAGG, …, OIDSEQ -– Узнать идентификаторы соотв. Объектов

      [oid_bhr] SET_BHR    []      -- переопределить поведение

             [] GET_BHR    [oid]   -- узнать поведение

       [oid_kh] SET_KH     []      -- переопределить действие

             [] GET_KH     [oid]   -- узнать действие

          [oid] GET_INT    [int]   -- Получить целое число из объекта-целого

      [int oid] SET_INT    []      -- Занести целое число в объект-целое

          [oid] PRINT_STR  []      -- Печатать на экране содержимое строки

 ["string" oid] SET_STR    []      -- Занести строку в объект-строку

[oid_super oid] SUPER+     []      -- наследовать данные из oid_super в oid

          [oid] DELOBJ     []      -- удалить объект

Операции над множеством:

   [oid_el oid] SET+E      []      -- добавить элемент в множество

   [oid_el oid] SET-E      []      -- удалить элемент из множества

   [oid_el oid] SET?E      [0/1]   -- найти элемент в множестве

     [oid1 oid] SET+       []      -- объединение

     [oid1 oid] SET-       []      -- разность

     [oid1 oid] SET*       []      -- пересечение

Операции над списком:

 [oid_el n oid] SEQ+E      []      -- добавить элемент в последовательность


        [n oid] SEQ-E      []      -- удалить n-й элемент из
                                     последовательности
   [oid_el oid] SEQ?E      [0/n]   -- найти позицию в последовательности
        [n oid] SEQ?N      [0/oid] -- определить oid n-го элемента послед-ти
Операции над агрегатом:
[fid oid_etalon oid] AGG+F []      -- добавить поле к объекту
          [fid oid] AGG-F  []      -- удалить поле из объекта
          [fid oid] ETALON [oid]   -- получить идентификатор объекта-эталона
          [fid oid] FIELD  [oid]   -- получить идентификатор
                                      объекта-значения
Операции над объектом-условием:
           [oid] GET_BIO
     [oid_else oid_then oid_if]    -- Получить параметры объекта-условия
[oid_else oid_then oid_if oid]
                 SET_BIO []        -- Сохранить параметры объекта-условия
Специальные операции:
[oid_str oid] SET_NAMEOBJ [oid] -- именовать объект
[oid_str fid] SET_NAMEFID [fid] -- именовать поле
    [oid_str] NAMEOBJ     [oid] -- получить идентификатор по имени
    [oid_str] NAMEFID     [fid] -- получить идентификатор поля по имени
[oid_mess oid_par oid] SEND  [] -- послать сообщение объекту
 [oid_mess oid_obj] METHOD?  [] -- определить идентификатор метода
   [oid1 oid] CHIELD      [1/0] -- определить, является ли oid1 потомком oid
     [oid_kh] RUN_KH         [] -- выполнить knowhow
           [] NCHAN      [chan] -- узнать номер текущего канала
       [chan] !NCHAN         [] -- переключиться на заданный канал
Операции просмотра:
[oid] JVIEW  [] -- просмотр журнала
   [] A.VIEW [] -- просмотр адресов объектов в БД
   [] Q.VIEW [] -- просмотр очереди
   [] IC     [] -- просмотр состояния канала

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