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

       

в системах Arbre, Bubba, Gamma


Механизм разделения с хэшированием используется в системах Arbre, Bubba, Gamma и Teradata.

В системах баз данных значительное внимание уделяется совместной кластеризации родственных данных в физической памяти. Если кортежи какого-либо набора кортежей обычно требуются вместе, то система баз данных пытается хранить их в одной физической странице. Например, если к Smith'ам в телефонной книге обычно обращаются в алфавитном порядке, то их записи следует хранить на страницах в том же порядке; эти страницы следует совместно кластеризовать на диске, чтобы можно было производить последовательную упреждающую выборку и другие оптимизации. Кластеризация во многом зависит от специфики прикладной программы. Например, в географических базах данных имеет смысл кластеризовать кортежи, описывающие соседние улицы; в прикладной программе управления инвентарными ведомостями кортежи, описывающие пункты накладной, разумно кластеризовать с кортежем накладной.

Разделение с хэшированием ориентировано на случайное разделение данных, а не на их кластеризацию. При разделении на основе диапазона значений (range partitioning)

в одном разделе совместно кластеризуются кортежи, имеющие одинаковые значения атрибутов. Это подходит для последовательного и ассоциативного доступа и дает хорошую основу для кластеризации. На рис. 7 показано такое разделение, базирующееся на лексикографическом порядке, но возможен и любой другой способ кластеризации. Разделение на основе диапазона значений получило свое имя от типичного запроса на языке SQL с указанием диапазона значений и специфицируется следующим образом: latitute BETWEEN 38 AND 30

Разделение на основе диапазона значений используется в системах Arbre, Bubba, Gamma, Oracle, Tandem.

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

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