Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ Ч.1 _2016.docx
Скачиваний:
2
Добавлен:
31.01.2024
Размер:
2.97 Mб
Скачать

1.4 Структурная схема субд и основные функции

Типовая структурная схема СУБД [3] представлена на рис.3.

Рис. 3 Структурная схема СУБД

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

Перечислим основные программные компоненты, входящие в состав контроллера БД.

  1. Модуль прав доступа проверяет наличие у пользователя полномочий для выполнения затребованной операции.

  2. Процессор команд получает после проверки полномочий пользователя управление для непосредственного выполнения операции.

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

  4. Оптимизатор запросов определяет оптимальную по скорости или затрате других ресурсов стратегию выполнения запроса.

  5. Контроллер транзакций осуществляет требуемую обработку операций, поступающих в процессе выполнения транзакций.

  6. Планировщик отвечает за бесконфликтное выполнение параллельных операций с БД. Он управляет относительным порядком выполнения операций, затребованных в отдельных транзакциях.

  7. Контроллер восстановления гарантирует восстановление БД до непротиворечивого состояния при возникновении сбоев. В частности, отвечает за фиксацию и отмену результатов выполнения транзакций.

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

Процессор запросов преобразует SQL запросы в последовательность низкоуровневых инструкций для контроллера БД.

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

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

Компилятор DDL преобразует DDL-команды в набор таблиц, содержащих метаданные. Затем эти таблицы сохраняются в системном каталоге, а управляющая информация - в заголовках файлов с данными.

Контроллер системного каталога (словаря данных) управляет доступом к системному каталогу и обеспечивает работу с ним.

Перечислим и опишем основные функции современных СУБД:

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

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

Основными преимуществами ведения системного каталога являются:

  • контроль доступа к его данным, как к любому другому ресурсу БД;

  • определение смысла хранимых данных, что помогает другим пользователям понять их назначение;

  • легкое обнаружение избыточности и противоречивости описания отдельных элементов данных;

  • протоколирование внесенных в БД изменений;

  • дополнительное усиление мер обеспечения безопасности;

  • новые возможности организации поддержки целостности данных;

  • аудит сохраняемой информации.

  1. Поддержка транзакций. СУБД должна иметь механизм, который гарантирует выполнение либо всех операций данной транзакции, либо ни одной из них. Примерами простых транзакций могут служить операции добавления, удаления или обновления строк в БД. Если во время выполнения транзакции произойдет сбой, БД попадает в противоречивое состояние, поскольку некоторые изменения уже будут внесены, а остальные - еще нет. Поэтому все частичные изменения должны быть отменены для возвращения БД в прежнее, непротиворечивое состояние.

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

  3. Сервисы восстановления. При обсуждении поддержки транзакций упоминалось, что при сбое транзакции БД должна быть возвращена в непротиворечивое состояние, что должно гарантироваться возможностями СУБД, в частности, ведением журнала транзакций.

  4. Сервисы контроля доступа к данным. СУБД должна иметь механизм, гарантирующий возможность доступа к БД только санкционированных пользователей. Термин "безопасность" относится к защите БД от преднамеренного или случайного несанкционированного доступа.

  5. Поддержка обмена данными. СУБД должна обладать способностью к интеграции с коммуникационным программным обеспечением с целью организации доступа удаленных пользователей к централизованной БД (в рамках системы распределенной обработки).

  6. Службы поддержки целостности данных. СУБД должна обладать инструментами контроля того, чтобы данные и их изменения соответствовали заданным правилам. Целостность базы данных означает корректность и непротиворечивость хранимых данных и выражается в виде ограничений или правил сохранения непротиворечивости данных, которые не должны нарушаться в базе.

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

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

    • утилиты импортирования и экспортирования, предназначенные для загрузки и выгрузки БД в плоские файлы;

    • средства мониторинга, предназначенные для отслеживания характеристик функционирования и использования БД;

    • программы статистического анализа, позволяющие оценить производительность или степень использования БД;

    • инструменты реорганизации индексов, предназначенные для перестройки индексов и обработки случаев их переполнения;

  • инструменты сбора мусора и перераспределения памяти для физического устранения удаленных записей с запоминающих устройств, объединения освобожденного пространства и перераспределения памяти в случае необходимости.

Соседние файлы в предмете Информационное обеспечение систем управления