Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры бд.docx
Скачиваний:
114
Добавлен:
17.06.2021
Размер:
4.93 Mб
Скачать
  1. Обеспечение целостности данных в субд.

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

Обеспечение целостности данных основано на использовании механизма транзакций при выполнении различных операции с объектами БД.

Транзакция - последовательность выполнения операций в БД, которая рассматривается как некоторое неделимое действие, осмысленное с т. зр. пользователя.

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

Если все операции, составляющие транзакцию, успешно выполняются, то СУБД фиксирует в БД изменения, произведенные этой транзакцией.

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

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

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

  1. Управление многопользовательским доступом к данным в субд.

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

В основе этого лежат механизмы транзакции и блокировки.

Транзакция - последовательность выполнения операций в БД, которая рассматривается как некоторое неделимое действие, осмысленное с т. зр. пользователя.

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

Транзакции и блокировки тесно связаны друг с другом.

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

Эти задержки можно снизить, снизив размеры фрагментов данных, захватываемые транзакцией.

В частности, можно блокировать сразу всю БД (неприемлемый вариант), таблицу, часть таблицы (страницу), отдельную строку. Все эти варианты известны под названием «уровни блокировки».

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

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