Ведение системного журнала.
Ограничение обработки данных.
Может быть на уровне пользователя и на уровне данных.
Ограничение на уровне пользователя предполагает наделение пользователя совокупностью прав на обработку данных:
- Чтение
- Запись/модификация
- Удаление
- Передача прав другим пользователям (только администратор)
Ограничение прав на уровне данных предполагает определение для каждых данных множества операций, которые допустимо выполнять над данными:
- Данные только для чтения
- Те данные, которые можно изменять
- Те данные, которые можно удалять
Системный журнал - набор данных, в которых автоматически вводятся записи обо всех изменениях в базе данных.
Системный журнал необходим для того, чтобы в случае сбоя можно было восстановить согласованное состояние базы данных.
Транзакция - набор операций над данными, выполняемый атомарно. На внешний носитель записываются только результаты завершенных транзакций.
BEGIN TRANSACTION начать транзакцию
READ A прочитать какие-то данные
|
|
A=A+1 совершить с данными какие-то операции
…
…
COMMIT зафиксировать результат транзакции
(ROLLBACK) (откат) необходимо отменить результат транзакции.
Каждая операции транзакции заносится в буфер системного журнала. При получении ROLLBACK начинается выполнение операций обратных тем, что были в транзакции. При получении COMMIT на внешнем носителе сохраняются результаты транзакции, а в системном журнале отмечается факт выполнения трнзакции.
Недостаток журнала- большие затраты памяти. Для сокращения затрат на буфер внутри транзакции организуются контрольные точки.
откат