Процессор запросов

Ядро СУБД

Продолжение номенклатуры

Итоговая запись о категориях и количестве дел, заведенных в ____________году в организации

По срокам хранения Всего В том числе:
переходящих С отметкой ЭПК
       
Постоянного Временного (свыше 10 лет) Временного (до 10 лет включительно) ИТОГО:      

Наименование должности

Руководителя службы ДОУ Подпись Расшифровка подписи

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

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

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

Задача процессора запросов — превращать запрос или действие с БД, которые могут быть выражены на очень высоком уровне (например, в виде запроса SQL), в последовательность запросов на хранимые данные типа отдельных кортежей отношения или частей индекса на отношении. Иногда самой трудной частью обработки запроса является его организация выбор хорошего плана запроса или последовательности запросов к системе памяти, отвечающей на запрос.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: