Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
58. Общая схема обработки запроса
Обработка запросов последовательность действий, приводящая к извлечению информации из БД. Последовательность действий в этом случае состоит из трансляции запроса с языка высокого уровня в выражения, выполняемые на физическом уровне, преобразования оптимизации и фактическое выполнение запроса.
Наибольший процент времени при выполнении запроса тратится на обращения к диску /* вспомнить физическое хранение */ и сортировку данных. Поэтому при выполнении запроса сначала выявляются стратегии выполнения запроса, сравниваются и производится выполнение согласно лучшей.
Общая схема обработки запроса
Основные шаги обработки запросов
1 Разбор и трансляция. Язык SQL удобен и понятен пользователю БД, но его невозможно использовать в качестве внутреннего языка БД. В качестве такого языка может выступать расширенная реляционная алгебра. Трансляция при обработке запроса аналогична синтаксическому разбору в трансляторе языка программирования. В процессе трансляции проверяется правильность написания запроса и ассоциация имен, использованных в запросе с именами отношений и атрибутов.
2 Оптимизация. Один и тот же запрос может быть транслирован в различные выражения реляционной алгебры.
Например:
Select Сумма from счет where сумма<2500
Можно транслировать в выражение
sсумма<2500(pсумма(счет)) или pсумма(sсумма<2500(счет)).
Для выполнения каждого оператора реляционной алгебры могут использоваться различные алгоритмы. Например, для вычисления селекции нужно пересмотреть все кортежи отношения. Если же построен индекс, по атрибуту «сумма», то можно использовать индекс для проверки условия, а затем извлекать найденные кортежи, используя адрес в индексе. Таким образом, недостаточно оттранслировать запрос в операторы реляционной алгебры, необходимо еще определить, как будет выполняться каждый из этих операторов. Инструкция для выполнения оператора реляционной алгебры называется вычислительным примитивом. Последовательность примитивов, которая будет использована для выполнения запроса, называется планом выполнения запроса. Пример такого плана
pсумма ------ sсумма<2500; используя индекс 1 ------- отношение счет
/* Рисовать деревом сверху вниз (вычисляться будет снизу вверх ) */
В общем случае работа оптимизатора состоит из двух частей. Первая выбор выражений, эквивалентных полученным в результате трансляции, но выполняемых быстрее. Второй выбор стратегии выполнения запроса, а именно выбора последовательности выполнения операторов или применения индексов. Выбор стратегии осуществляется на основе сравнения цены выполнения. Основным параметром в этом случае является число обращений к диску. Для определения этого параметра оптимизатор использует статистику БД. Такая статистика включает информацию о размерах отношений и индексов.
3 На третьем шаге используя выбранный план осуществляется выбор данных.
Обработка распределённых запросов. Суть в том, что для запроса может потребоваться обращение к нескольким узлам. В такой системе может быть много возможных способов пересылки данных, позволяющих выполнить рассматриваемый запрос.