ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
37
битовой маски происходит чтение остальных атрибутов, участвую-
щих в операции проекции. При последовательной обработке, в отли-
чие от параллельной, атрибуты, участвующие в запросе, упорядочи-
ваются по убыванию селективности и считываются по очереди. В
каждую следующую операцию чтения атрибута передается битовая
маска предыдущего чтения (рис. 3).
Рис. 3. Иллюстрация особенности последовательной обработки атрибутов
Подобная организация процесса чтения атрибутов позволяет
уменьшить число операций чтения блоков данных с диска. На рис. 3
показаны колонки атрибутов. Перечеркнуты те блоки, которые нет
необходимости считывать, так как соответствующие записи не удо-
влетворяют условию поиска по предыдущим атрибутам.
В современных СУБД широко используется
сжатие данных
.
Это
позволяет повысить производительность за счет уменьшения числа
дисковых операций ввода—вывода и объема передаваемых по сети
данных. Колоночное хранение отношений позволяет улучшить этот
показатель по сравнению со строчными СУБД. Это достигается за счет
использования коэффициентов повторяемости значений атрибутов и
возможности оперировать сжатыми данными (т. е. отсутствия затрат
на декомпрессию). Ниже приведены описания некоторых алгоритмов
сжатия, применяемых в колоночных базах данных [17]:
1.
RLE (кодирование длин серий)
.
Последовательная серия оди-
наковых элементов данных заменяется на два символа: элемент и
число его повторений.
2.
Словарный метод.
Используется словарь, состоящий из по-
следовательностей данных или слов. При сжатии эти слова заменя-
ются на их коды из словаря. В наиболее распространенном варианте
реализации в качестве словаря выступает сам исходный блок данных.
3.
Векторное кодирование.
С
каждым значением сопоставляется
битовая строка, где значение 1 обозначает позицию с данной вели-
чиной.
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0