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

       

Следствия из утверждения о транслируемости.


Предварительное замечание 1. Как мы уже сказали, изменение состояния объектов заключается в изменении значений их компонентов. Изменение значения компонента подразумевает присвоение этому компоненту нового значения (сами значения неизменны). Значение компонента a объекта o изменится вследствие операции присваивания

o.a := rval

где rval является значением отношения, схема которого совпадает со схемой, заданной для компонента a.

Отметим, что традиционные для существующих реляционных СУБД операции, изменяющие значения переменных отношения (вставки и удаления кортежей, а также операция обновления, изменяющая значения атрибутов существующих в переменной кортежей) могут быть записаны, используя операцию присваивания:

  • операция вставки INSERT o.ai VALUE(rval) может быть представлена как o.ai := o.ai UNION rval,
  • операция удаления кортежей DEL o.ai WHERE (condition) может быть представлена как o.ai := o.ai WHERE (NOT condition),
  • операция, изменяющая значения атрибутов UPDATE o.ai SET xj=s WHERE(condition) может быть представлена как
    o.ai := (o.ai WHERE (NOT condition)) UNION (o.ai WHERE (condition)[…, xj-1, s, xj+1,…]).

    И наоборот, оператор присваивания

    relvar:=relvalue

    может быть реализован с использованием традиционных для существующих реляционных СУБД операций

    • DELETE FROM relvar;

    • INSERT INTO relvar VALUE relvalue;

      Предварительное замечание 2. Как мы сказали ранее, в методы классов возможны локальными переменными значимых типов. Рассмотрим возможную реализацию этих переменных в используемой РСУБД.

      Локальные переменные служат для хранения значений, используемых в методе и/или возникающих в процессе выполнения этого метода. Время жизни локальной переменной ограничено временем выполнения метода. В том случае, когда действия, описываемые неким методом method(), производятся одновременно для множества объектов (никаких итераторов), можно говорить о множестве таких значений и, соответственно, о множестве переменных localvar, служащих для их хранения, причем каждому объекту из этого множества, соответствует одна переменная, и, в каждый момент времени, одно значение этой переменной.



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