Развитие идей и приложений реляционной СУБД System R


Организация внешней памяти в базах данных System R - часть 4


В ранних версиях System R существовал еще один способ физического доступа к кортежам отношения и соответственно еще один способ указания условия кластеризации с использованием так называемых связей (links). На уровне физического представления связь представлялась в виде физической ссылки (tid'a) из одного кортежа на другой (не обязательно одного отношения). В языке SEQUEL (до того момента, когда его стали называть SQL) существовали средства определения связей в иерархической манере: можно было объявить некоторое отношение родительским по отношению к тому же или другому отношению-потомку. При этом указывались поля родительского отношения и отношения-потомка, в соотвествии со значениями которых образовывалась иерархия. Правила построения были очень простыми - проводились связи между кортежем родительского отношения ко всем кортежам отношения-потомка с теми же значениями полей связывания. На самом деле, все кортежи отношения-потомка с общим значением полей связывания связывались в кольцевой список, на который проводилась одна связь из соответствущего кортежа родительского отношения. Естественно, у отношения-родителя требовалась уникальность по отношению к значениям полей связывания.

Для строгости следует заметить, что мы описали способ использования механизма связей, который поддерживался в ранних версиях SEQUEL [9]. В интерфейсе RSS System R этого периода допускалась возможность произвольного проведения связей без учета совпадения значений полей связывания. Тем самым, в системе в целом не использовались все возможности RSS, которые с избытком превосходили потребности организации иерархических бинарных связей по совпадению полей связывания.

Для одного отношения допускалось создание многих связей: кортеж отношения мог быть родителем нескольких иерархий и входить в несколько других иерархий в качестве потомка. При этом одна связь могла быть объявленной кластеризованной. Тогда система стремилась поместить в одну страницу данных все кортежи одной иерархии. При этом, естественно, использовалась возможность размещения в одной странице данных кортежей нескольких отношений.


Начало  Назад  Вперед