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

       

Разделение данных происходит от централизованных


Разделение данных происходит от централизованных систем, которые вынуждены разделять файлы, потому что файл слишком велик для одного диска, или потому что невозможно обеспечить приемлемую скорость доступа к файлу на одном диске. Разделение данных используется в распределенных базах данных, когда части отношения помещаются в различные узлы сети [23]. Разделение данных позволяет параллельным системам баз данных использовать пропускную способность ввода/вывода нескольких дисковых устройств путем параллельного чтения и записи. Такой подход обеспечивают более широкую пропускную способность ввода/вывода, чем у систем, использующих RAID (дисковые массивы), без применения какой-либо специальной аппаратуры [23, 24].

Простейшая стратегия разделения заключается в том, что кортежи распределяются между фрагментами по принципу кольца (round-robin). Это разделенная версия классического последовательного файла. Кольцевое разделение дает превосходные результаты, если все прикладные программы нуждаются в получении доступа к отношению путем полного последовательного просмотра его содержимого при каждом запросе. Проблемой кольцевого разделения является то, что прикладным программам часто бывает нужен ассоциативный доступ к кортежам в том смысле, что им требуется найти все кортежи, включающие заданное значение некоторого атрибута. Запрос на языке SQL о всех людях по фамилии Smith в телефонной книге, представленный на рис. 6, является примером ассоциативного поиска.

Разделение с хэшированием (hash partitioning) идеально подходит для прикладных программ, которым требуется только последовательный и ассоциативный доступ к данным. Кортежи размещаются в зависимости от значения хэш-функции, применяемой к значению некторого атрибута каждого кортежа. Функция определяет конкретный диск, на котором будет размещен кортеж. Ассоциативный доступ к кортежам с конкретным значением атрибута может быть направлен к единственному диску, что исключает накладные расходы на запуск запросов на нескольких дисках.

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