Этапы обработки запроса в серверах баз данных

Введение

1. Обработка запроса

1.2 Этап разбора и трансляции запроса

1.3 Этап оптимизации запроса

1.4 Этап извлечения данных и результат запросов

Заключение

Список источников

Введение

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

База данных (БД) – это именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.

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

Система управления базами данных (СУБД) – это совокупность языковых и программных средств, предназначенных для создания, наполнения, обновления и удаления баз данных. В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. В специализированных системах разработки приложений типа клиент-сервер среда программирования, обычно дополнена коммуникационными средствами (установление и разъединение соединений с серверами БД, обнаружение и обработка возникающих в сети ошибок и. т. д.), средствами разработки пользовательских интерфейсов, средствами проектирования и отладки.

SQL (Structured Query Language, язык структурированных запросов) — это специальный язык, используемый для определения данных, доступа к данным и их обработки. Язык SQL относится к непроцедурным языкам — он лишь описывает нужные компоненты (например, таблицы) и желаемые результаты, не указывая, как именно эти результаты должны быть получены. Каждая реализация SQL является надстройкой над процессором базы данных, который интерпретирует операторы SQL и определяет порядок обращения к структурам БД для корректного и эффективного формирования желаемого результата.

1. Обработка запроса

Обработка запросов — это преобразование запросов высокого уровня в выражения низкого уровня. Это пошаговый процесс, который можно использовать на физическом уровне файловой системы, оптимизации запросов и фактического выполнения запроса для получения результата.

Для этого требуются базовые понятия реляционной алгебры и файловой структуры. Это относится к диапазону действий, которые участвуют в извлечении данных из базы данных. Он включает в себя преобразование запросов на языках баз данных высокого уровня в выражения, которые могут быть реализованы на физическом уровне файловой системы.

Схема обработки запроса

Общий план:

  • На вход приходит sql-запрос.
  • Отправляем его в разбор запросов. Он на выходе выдаст реляционную алгебру.
  • Затем оптимизация (планировка) запроса снабжает операции реляционной алгебры информацией о том, как он собирается их исполнять и в каком порядке.
  • Реляционная алгебра передается в план выполнения запроса, который ее исполняет. На основе выбранного запроса осуществляется непосредственное считывание данных из базы.

1.2 Этап разбора и трансляции запроса

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

Синтаксический анализатор — во время синтаксического анализа база данных выполняет такие проверки, как проверка синтаксиса, семантическая проверка и проверка общего пула, после преобразования запроса в реляционную алгебру.

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

1.3 Этап оптимизации запроса

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

Процедурным представлением или планом выполнения запроса называется такое его представление, в котором детализирован порядок выполнения операций доступа к базе данных физического уровня. До выполнения запроса необходимо сформировать процедурное представление запроса; однако, исходя из специфики языка SQL, выбор процедурного представления запроса является неоднозначным (могут существовать варианты решения), целесообразно найти вреди альтернативных вариантов лучший, определяемый построенной функцией оптимальности.

Критерием выбора плана выполнения запроса является минимизация функции стоимости. При обработке запроса на стадии, следующей за логической оптимизацией, решаются две задачи:

1) исходя из внутреннего представления запроса и информации, характеризующей управляющие структуры базы данных, выбрать набор потенциально возможных планов выполнения данного запроса;

2) оценить стоимость выполнения запроса для каждого альтернативного плана в соответствие с заданным набором критериев и выбрать план с наименьшей стоимостью.

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

Оптимизатор запросов SQL Server выбирает не только план выполнения с наименьшей стоимостью ресурсов; он выбирает план, который возвращает результаты пользователю с разумной стоимостью ресурсов и возвращает результаты быстрее всего. Например, параллельная обработка запроса обычно использует больше ресурсов, чем его последовательная обработка, но завершает выполнение запроса быстрее. Оптимизатор запросов SQL Server будет использовать план параллельного выполнения для возврата результатов, если нагрузка на сервер не окажет негативного влияния.

Оптимизатор запросов SQL Server полагается на статистику распределения, при оценке затрат на ресурсы для различных методов извлечения сведений из таблицы или индекса. Если статистика индекса не является текущей, оптимизатор запросов, возможно, не сделает лучший выбор для текущего состояния таблицы.

Оптимизатор запросов SQL Server очень важен, так как позволяет серверу базы данных динамически изменять конфигурацию в ответ на меняющиеся условия в базе данных без участия программиста или администратора базы данных. Это дает возможность программистам сосредоточиться на описании конечного результата запроса. Они могут положиться на то, что каждый раз при выполнении инструкции оптимизатор запросов SQL Server будет создавать эффективный план выполнения с учетом состояния базы данных.

1.4 Этап извлечения данных и результат запросов

Генерация источника строк − это программное обеспечение, которое получает оптимальный план выполнения от оптимизатора и создает итеративный план выполнения, который используется остальной частью базы данных. Итерационный план — это двоичная программа, которая при выполнении механизмом sql выдает набор результатов.

План принимает форму комбинации шагов. Каждый шаг возвращает набор строк. Следующим шагом является либо использование строк в этой коллекции, либо последний шаг — возврат строк в приложение, которое выпустило оператор SQL.

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

Генератор источников строк генерирует дерево источников строк, которое представляет собой набор источников строк. В исходном дереве строк отображается следующая информация:

  • Порядок таблицы, на которую ссылается оператор
  • Метод доступа для каждой таблицы, упомянутой в операторе
  • Метод соединения таблицы, затронутой операцией соединения в операторе
  • Манипулирование данными, например фильтрация, сортировка или агрегирование.

Во время выполнения механизм SQL выполняет каждый источник строки в дереве, сгенерированном генератором источника строки. Этот шаг является единственным обязательным этапом обработки DML.

Во время выполнения, если данные не находятся в памяти, база данных считывает данные с диска в память. База данных также извлекает любые блокировки и защелки, необходимые для обеспечения целостности данных, и записывает любые изменения, сделанные во время выполнения SQL.

Заключение

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

Основным достоинством баз данных является совместимость с самым популярным языком запросов SQL. С помощью единственного запроса на этом языке можно соединить несколько таблиц во временную таблицу и вырезать из нее требуемые строки и столбцы (селекция и проекция). Так как табличная структура реляционной базы данных интуитивно понятна пользователям, то и язык SQL является простым и легким для изучения.

Список источников

  1. Язык запросов SQL [Электронный ресурс]. — URL: https://www.webkursovik.ru/kartgotrab.asp?id=-77025
  2. Введение в базы данных [Электронный ресурс]. — URL: https://books.ifmo.ru/file/pdf/677.pdf
  3. What are the steps of SQL Query processing in DBMS? [Электронный ресурс]. — URL: https://translated.turbopages.org/proxy_u/en-ru.ru.71792cfb-63c6760f-d2505df1-74722d776562/https/www.tutorialspoint.com/what-are-the-steps-of-sql-query-processing-in-dbms
  4. Обработка запросов в СУБД [Электронный ресурс]. — URL: https://pandia.ru/text/78/022/10151.php
  5. Этапы обработки запроса. Перезапись запросов [Электронный ресурс]. — URL: https://neerc.ifmo.ru/wiki/index.php?title=Этапы_обработки_запроса._Перезапись_запросов#.D0.9E.D0.B1.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B0_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D0.B0_2

Leave a Comment

− 2 = 1