Понятие и функции СУБД
Архитектура СУБД
Вопросы для самоконтроля
На рисунке 1.2 показаны основные компоненты СУБД.
Рисунок 1.2 - Архитектура СУБД
Задача менеджера памяти - получать информацию из хранилища данных и изменять в нем информацию по требованию расположенных выше уровней системы.
Задача процессора запросов - найти наилучший способ выполнения требуемой операции и дать соответствующие команды менеджеру памяти.
Менеджер транзакций отвечает за целостность системы. Он должен обеспечить одновременную обработку множества запросов, защиту данных на случай выхода системы из строя. Он взаимодействует с менеджером запросов, так как должен знать, на какие данные воздействуют текущие запросы (чтобы избежать конфликтных ситуаций), и может отложить определенные запросы или операции, чтобы избежать конфликтов. Он взаимодействует с менеджером памяти, так как схемы зашиты данных обычно включает в себя хранение файла регистрации изменений данных. При правильном порядке выполнения операций файл регистрации будет содержать запись изменений, поэтому можно заново выполнить даже те изменения, которые не достигли диска из-за сбоя в системе.
Часто система БД допускает параллельную поддержку множества транзакций (например, какие-то операции можгут происходить на нескольких банкоматах одновременно). Гарантировать правильное выполнение всех таких транзакций - задача компонента СУБД, называемого менеджером транзакций. Говоря точнее, "правильное" выполнение транзакций требует того, что часто называется ACID-свойствами (atomicity, consistency, isolation, durability - четырех основных требований к выполнению транзакций).
Атомарность. Требуется, чтобы были выполнены все транзакции или не была выполнена ни одна из них. Например, изъятие денег из банкомата и внесение соответствующего дебета в счет клиента должны быть единственной атомарной транзакцией. Отдельное выполнение одной из этих операций не допускается.
Непротиворечивость. Обычно БД характеризуется таким понятием, как непротиворечивое состояние, при котором данные соответствуют всем возможным ожиданиям. Например, условие непротиворечивости для БД авиационных линий состоит в том, что ни одно из мест в самолете не бронируется для двух клиентов. Хотя это условие может ненадолго нарушаться в процессе транзакции, когда люди размещаются по местам, менеджер транзакций должен гарантировать, что после завершения транзакции БД будет удовлетворять всем предполагаемым требованиям непротиворечивости.
Изоляция. При параллельном выполнении двух или более транзакций их результаты должны быть изолированы друг от друга. То есть, одновременное выполнение двух транзакций одновременно не должно привести к результату, которого не было бы, если бы они выполнялись последовательно. Например, когда агенты продают билеты на один и тот же рейс и остается единственное свободное место, запрос одного из них должен быть удовлетворен, а запрос другого отвергнут. Недопустимо, чтобы по причине параллельных операций одно место было продано дважды.
Долговременность. Если транзакция завершена, ее результат не должен быть утрачен в результате сбоя системы, даже если этот сбой происходит немедленно после завершения транзакции.
Слева изображены три типа обращения к СУБД.
1. Запросы - вопросы по поводу данных. Запросы могут генерироваться двумя способами:
-с помощью общего интерфейса запросов (например, SQL);
-с помощью интерфейсов прикладных программ.
2. Модификации - операции по изменению данных (генерируются также как и запросы).
3. Модификации схемы - команды по изменению структуры БД или по созданию новой БД. Обычно эту привилегию имеют администраторы БД.
Предыдущая страница | Следующая страница |