34
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
—
КОП — код реляционной операции, реализуемой данным
узлом;
—
указатель на скобочный шаблон левого дочернего узла;
—
указатель на скобочный шаблон правого дочернего узла
(«
пусто» для унарных операций).
Рис. 1. Алгоритм выполнения плана запроса на базе итераторной модели
Сам по себе скобочный шаблон не содержит конкретной реали-
зации реляционной операции. Однако после оптимизации запроса
СУБД «вставляет» в каждый скобочный шаблон ту или иную реализа-
цию соответствующей реляционной операции. Например, для операции
соединения СУБД может выбрать один из следующих кодов: «соедине-
ние вложенными циклами», «соединение сортировкой и слиянием»,
«
соединение хешированием». При выполнении этой операции узел об-
ращается к скобочным шаблонам своих дочерних узлов.
Рассмотрим, какие изменения вносят колоночные базы данных в
каждый из рассмотренных принципов.
Синхронный конвейер
.
В колоночных СУБД при реализации
конвейера учитываются следующие особенности:
—
в связи с фундаментальными отличиями в организации хране-
ния информации на физическом носителе операции выполняются не
над кортежами отношения, а над блоками атрибутов отношения;
—
существует возможность проводить операции не над данными
(
блоками), а над позициями значений в этих блоках;
—
между узлами конвейера могут передаваться как позиции, так
и указатели на блоки данных.
Пример конвейера колоночного хранилища для простого запроса
по двум атрибутам таблицы, использующего перечисленные выше
возможности, представлен на рис. 2. Результатами операций 5 и 6 яв-
ляются позиции значений в атрибутах. Списки полученных позиций
передаются и обрабатываются (соединяются, пересекаются и др.) в
операторе 4, результат действия которого попадает в операторы 2 и 3,
считывающие указанные в полученном наборе позиций значения.