double arrow

Транзакции

Функции СУБД

СУБД.

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

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

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

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

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

5. Сервисы восстановления. СУБД должна предоставлять средства восстановления БД на случай какого-либо ее повреждения или разрушения.

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

7. Поддержка обмена данными. СУБД должна обладать способностью к интеграции с коммуникационным программным обеспечением.

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

9. Службы поддержки независимости от данных. СУБД должна обладать инструментами поддержки независимости программ от физической структуры БД.

10. Вспомогательные службы. СУБД должна предоставлять некоторый набор различных вспомогательных служб:

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

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

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

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

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

Под транзакцией (транзитное действие) понимается неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, вставки, удаления, модификации) такая, что возможны два итога:

- результаты всех операторов, входящих в транзакцию, соответствующим образом отображаются в БД;

- воздействие всех этих операторов полностью отсутствует.

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

Рассмотрим БД «Сессия». Добавим в таблицу «Кадровый состав» столбец НАГРУЗКА для решения дополнительной задачи – расчета общей годовой нагрузки преподавателей. Тогда любая операция по внесению изменений или по добавлению данных в столбец ПРЕПОДАВАТЕЛЬ таблицы «Учебный план» должна сопровождаться соответствующими изменениями данных в столбце НАГРУЗКА. Если после внесения изменений в столбец ПРЕПОДАВАТЕЛЬ произойдет сбой, то БД окажется в нецелостном состоянии.

Для обеспечения контроля целостности каждая транзакция должна начинаться при целостном состоянии БД и должна сохранить это состояние целостным после своего завершения.

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

Фиксация транзакции – это действие, обеспечивающее запись на диск изменений в БД, которые были сделаны в процессе выполнения транзакции.

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

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

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


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