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

       

результат одной операции может являться


результат одной операции может являться операндом другой), и поскольку любой оператор можно представить как сложную суперпозицию примитивных операторов, то индуктивно можно показать, что доказываемое утверждение верно для любых реляционных операций.

Теперь покажем, что операция f', использующая в качестве операндов значения R-переменных компонентов типа t.a уровня представления данных, может быть преобразована в операцию stf',операндами которой являются значения базовых переменных(таблиц) stt.a' уровня хранения. Мы основываемся на том, что значение R-переменой реализуется системой как объединение нескольких значений, из которых одно является значением базовой переменной stt.a' уровня хранения, используемое для хранения значений тех компонентов объектов, которые на уровне представления реализованы как хранимые. Остальные значения можно рассматривать как промежуточный результат выражения stf'(BASE_VALUE), соответствующего тем компонентам объектов, которые на уровне представления реализованы как вычисляемые

t.a = stt.a' UNION stf'1 (…) UNION …

здесь stf'i(…) есть не что иное, как R-трансляция определенного на уровне представления данных операции fi.Если предположить, что эта операция использует в качестве операндов значения компонентов объекта fi (…, o.a, …), то можно утверждать, что, в соответствии с первой частью доказательства,

t.a = stt.a' UNION f'1 (t.a1, …, t.an) UNION …

Исходя из этого, опять же индуктивно можно показать, что значение любой R-переменной t.a действительно может быть рассчитано на основании значений базовых переменных отношений уровня хранения данных.

t.a = stt.a' UNION stf'1 (stt.a'1 UNION f'11 (stt.a'11, …) UNION …) UNION …


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