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

       

Оператор расщепления определяет отображение одного


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



Рисунок 9.

Объединение ввода и разделение вывода оператора. Реляционный граф потока данных, показывающий, как входные данные реляционного оператора сливаются в последовательный поток через порт. Вывод оператора разделяется оператором расщепления на несколько независимых потоков. Каждый поток может быть сдублирован или разделен на множество несвязанных потоков. При помощи операторов расщепления и слияния паутина узлов простого последовательного потока данных может быть соединена в параллельный план выполнения.

В качестве примера рассмотрим два оператора расщепления (см. ) в связи с запросом на языке SQL, представленном на рис. 10. Предположим, что три процесса используются для выполнения оператора соединения, а пять других – для выполнения двух операторов просмотра – три просмотра разделов отношения A при двух просмотрах разделов отношения B. В каждом из трех узлов просмотра отношения A будет выполняться одна и та же операция разбиения, посылающая все кортежи со значениями в промежутке "A-H" на порт 1 процесса слияния 0, все кортежи со значениями в промежутке "I-Q" – на порт 1 процесса слияния 1 и все кортежи со значениями в промежутке "R-Z" – на порт 1 процесса слияния 2. Аналогично, а двух узлах просмотра отношения B будет выполняться та же самая операция расщепления с той разницей, что их вывод сливается портом 1 (не портом 0) каждого процесса слияния. Каждый процесс слияния видит последовательный входной поток кортежей A как слитый в порту 0 (левые узлы просмотра) и другой последовательный поток кортежей B как слитый в порту 1 (правые узлы просмотра). В свою очередь, выходные потоки каждого соединения разделяются на три потока в соответствии с критерием разделения отношения C.

Таблица 1

Пример операторов расщепления


Каждая операция расщепления отображает кортежи на множество выходных потоков (портов других процессов) в зависимости от порядкового значения (предиката) входного кортежа.

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