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

       

При этом, на наш взгляд,


При этом, на наш взгляд, значительный интерес представляет тот факт, что используемая РСУБД реализует определяемые реляционной моделью групповые операции. Основываясь на этом, можно показать, что определенное на уровне представление выражение f может быть транслировано в такое выражение stf' уровня хранения, что однократное (никаких итераторов!) исполнение последнего приведет к таким изменениям в системе, как будто исходное выражение f было выполнено для каждого из существующих в системе объектов типа t.

Эта идея может быть продемонстрирована на следующем простом примере. Предположим, что в теле метода method типа t происходит присваивание значения одного хранимого компонента a1 другому хранимому компоненту a2 (предполагается, что это компоненты одного и того же типа)

ALTER CLASS t REALIZE method(…)… AS BEGIN …; this.a2 := this.a1; …; END

Рассмотрим данную операцию в терминах R-переменных t.a1 и t.a2. После ее выполнения переменная t.a2 будет содержать кортежи, значение которых в точности равны результату выборки из отношения t.a1 по значению ссылки this. Исходя из этого, соответствующая этому методу процедура stmethod' уровня хранения должна выглядеть приблизительно следующим образом.

CREATE PROCEDURE stmethod'(this' …, …)… BEGIN …; INSERT INTO stt.a'2 VALUE (SELECT * FROM stt.a'1 JOIN this'); …; END

Предполагается, что значение параметра this', служащего для передачи в процедуру OID того объекта, в котором выполняется указанное действие, представляет собой унарное отношение с единственным атрибутом OID.

В данном случае не вызывает сомнения, что параметр this' может содержать OID множества объектов - в этом случае описываемое действие будет одновременно выполнено для всех этих объектов. Именно этот факт делает возможным групповой вызов метода. Например, в ходе вызова

t<cond>.method(…)

описываемое действие будет выполнено для всех объектов типа t, для которых выполняется условие cond.

Данный случай является наиболее простым. Рассмотрим принципы трансляции в общем виде.


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