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

       

Общее правило, определяющее существование и именование R-переменных и атрибутов.


Вернемся к примеру с содержащим ссылку объектным типом (см. описание операции раскрытия ссылки). Как мы ранее сказали, результат выборка t[a.xref] из R-переменной типа t эквивалентен результату выборке t.a[xref] из R-переменной компонента t.a этого типа. Этот результат представляет собой множество OID объектов типа t*. Фактически, существование этого множества предопределено путевым выражением t.a.xref. Таким образом, это выражение можно рассматривать как имя предопределенной ссылочной переменной, хранящей значение унарного отношения, вычисляемое любыми из приведенных способов.

Подобно любым именам ссылочных переменных, такое предопределенное имя можно рассматривать как имя предопределенной R-переменной (см. пред. раздел). Таким образом, определение объектного типа t, содержащего компонент a с атрибутом xref, который является ссылкой на объект класса t*, содержащего компонент a* с атрибутом x* можно также рассматривать как определение следующих R-переменных

    переменной t содержащей, среди прочих, скалярный атрибут a.xref.a*.x* (раскрытие ссылки a.xref R-переменной типа t)

  • переменной t.a содержащей, среди прочих, скалярный атрибут xref.a*.x* (раскрытие ссылки xref R-переменной компонента типа t.a)

  • переменной t. a.xref содержащей, среди прочих, скалярный атрибут a*.x* (R-переменная ссылки t. a.xref)

  • переменной t. a.xref.a* содержащей, среди прочих, скалярный атрибут x* (R-переменная компонента ссылки t. a.xref.a*)

Рассуждения такого рода применимы к структурам с любым числом вложенных ссылок. Напомним, что мы исходим из того, что объектные типы, образующие эти структуры, соответствуют основному требованию НРМ. Операция раскрытия ссылки позволяет рассматривать в качестве имени предопределенной ссылочной переменной путевое выражение вида n1.*.nn (где ni - любые, не обязательные разные, имена, а знак * означает произвольную, возможно пустую, последовательность таких имен) для любого числа вложенных ссылок. Соответствующая R-переменная может содержать ссылочный атрибут, для которого также может быть выполнена вложенная операция раскрытия ссылке.

Таким образом, можно утверждать, что определение сложной ссылочной структуры, в которой корректно путевое выражение n1.*.*.nz можно рассматривать как определение переменной отношения с именем n1.* , в котором определен скалярный атрибут с именем *.nz. Данное правило является универсальным правилом, определяющим существования и именования R-переменных и их атрибутов в R*O системе. Важно, что имена, имеющие семантику сложных вложенных структур, используются в операциях, определённых в реляционной модели данных.



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