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

       

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


НРМ утверждает, что любая заданная на уровне представления реляционная операция f (где f - суперпозиция теоретико-множественных и специальных операторов реляционной алгебры [, ]) над компонентами a объекта o типа t, может быть преобразована к операции stf, применив которую к значениям базовых переменных уровня хранения данных, мы получим значение отношения, представляющее собой объединение результатов применения операции f ко всем существующим в системе объектам данного типа (утверждение о R-транслируемости).

Для любой операции f, res = f(o.a1 ,…, o.an), существует такая операция stf, res' = stf'(stt.a'1, …, stt.a'n), что res = (res' WHERE OID = o)[!OID]

Сначала докажем, что для любой операции f, res = f(o.a1, …, o.an), существует такая операция f', res' = f'(t.a1, …,t.an), что res = (res' WHERE OID = o)[!OID]. Другими словами, покажем, что операция f может быть преобразована в операцию f', использующую в качестве операндов значения R-переменных компонентов типа t.a уровня представления данных (операндами операции stf' являются значения базовых переменных stt.a' уровня хранения).

Вспомним, что значение o.a рассчитывается как (t.a WHERE OID = o) [!OID]. Можно показать, что для следующих примитивных операций верно, что

  1. объединение (операнды совместимы по схеме) o.ai UNION o.aj эквивалентно (( t.ai UNION t.ai) WHERE OID = o ) [!OID]

  2. вычитание (операнды совместимы по схеме) o.ai MINUS o.aj эквивалентно (( t.ai MINUS t.aj) WHERE OID = o ) [!OID]

  3. декартово произведения o.ai TIMES o.aj эквивалентно ((t.ai JOINOID t.aj) WHERE OID = o ) [!OID]


    (здесь JOINOID есть соединение по атрибуту OID )

  4. выборка o.ai WHERE condition эквивалентна ((t.ai WHERE condition) WHERE OID = o) [!OID]


    (здесь condition означает некое условие)

  5. проекция o.ai [ra1, …, ran] эквивалентна ((t.ai [ra1, …, ran]) WHERE OID = o) [!OID]

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

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