- •Лекция 8 (написать в журнале: Базы данных и субд. Функции субд) Типовая организация субд
- •Ядро субд
- •Процессор запросов
- •Утилиты
- •Менеджер памяти
- •Менеджер транзакций
- •Размеры блокируемых элементов
- •Блокировка
- •Регистрация
- •Завершение транзакции
- •Физическая и логическая независимость. (Архитектура базы данных.)
- •Процесс прохождения пользовательского запроса
- •Пользователи банков данных
- •Основные функции группы администратора бд
Процессор запросов
Следующий компонент называется процессором (менеджер) запроса. Название не совсем точное, поскольку этот элемент не только обрабатывает запросы, но и запрашивает изменения данных или метаданных. Его задача — найти лучший способ выполнения требуемой операции и дать соответствующие команды менеджеру памяти.
Основной функцией процессора запросов БД является компиляция операторов языка БД в некоторую выполняемую программу. Основной проблемой реляционных СУБД является то, что языки этих систем (а это, как правило, SQL) являются непроцедурными, т.е. в операторе такого языка специфицируется некоторое действие над БД, но эта спецификация не является процедурой, а лишь описывает в некоторой форме условия совершения желаемого действия. Поэтому компилятор должен решить, каким образом выполнять оператор языка прежде, чем произвести программу. Применяются достаточно сложные методы оптимизации операторов. Результатом компиляции является выполняемая программа, представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинно-независимом коде. В последнем случае реальное выполнение оператора производится с привлечением подсистемы поддержки (времени) выполнения, представляющей собой, по сути дела, интерпретатор этого внутреннего языка.
Задача процессора запросов — превращать запрос или действие с БД, которые могут быть выражены на очень высоком уровне (например, в виде запроса SQL), в последовательность запросов на хранимые данные типа отдельных кортежей отношения или частей индекса на отношении. Иногда самой трудной частью обработки запроса является его организация — выбор хорошего плана запроса или последовательности запросов к системе памяти, отвечающей на запрос.
Утилиты
В отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра.
Менеджер памяти
На схеме показан также менеджер памяти, задача которого получать требуемую информацию из хранилища данных и изменять в нем информацию по требованию расположенных выше уровней системы.
В простых системах БД менеджером памяти может быть просто система управления файлами базовой операционной системы. Однако для повышения эффективности СУБД обычно осуществляет прямой контроль памяти, по крайней мере, в определенных условиях. Менеджер памяти состоит из двух компонентов: менеджера буфера и менеджера файлов.
1. Менеджер файлов контролирует расположение файлов на диске и получает блок или блоки, содержащие файлы, по запросу менеджера буфера. (Напоминаем, что диск в общем случае делится на дисковые блоки — смежные области памяти, содержащие большое число байтов, возможно 502512 или 25 140 (от 4000 до 16 000 байт)).
2. Менеджер буфера управляет основной памятью. Он получает блоки данных с диска через менеджер файлов и выбирает страницу основной памяти для хранения конкретного блока. Он может временно сохранять дисковый блок в основной памяти, но возвращает его на диск, когда страница основной памяти нужна для другого блока. Страницы тоже возвращаются на диск по требованию менеджера транзакций.
