Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие/Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 42]

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

Жесткий сбой системы (аварийный отказ аппаратуры).
Жесткий сбой характеризуется повреждением внешних носителей памяти.
Жесткий сбой может произойти, например, в результате поломки головок дисковых накопителей.
Во всех трех случаях основой восстановления является избыточность данных, обеспечиваемая журналом транзакций
[32, 33].
Как и страницы базы данных, данные из журнала транзакций не записываются сразу на диск, а предварительно буферизируются в оперативной памяти.
Таким образом, система поддерживает два вида буферов буферы страниц базы данных и буферы журнала транзакций.
Страницы базы данных, содержимое которых в буфере (в оперативной памяти) отличается от содержимого на диске, называются "грязными" (dirty) страницами.
Система постоянно поддерживает список "грязных" страниц dirty-список.
Запись "грязных" страниц из буфера на диск называется выталкиванием страниц во внешнюю память.
Очевидно, необходимо предусмотреть такие правила выталкивания буферов базы данных и буферов журнала транзакций, которые обеспечивали бы два требования: 1.
Максимальную скорость выполнения транзакций.
Для этого необходимо выталкивать страницы как можно реже.
В идеале, если оперативная память была бы бесконечной, и сбои никогда бы не происходили, наилучшим выходом была бы загрузка всей базы данных в оперативную память, работа с данными только в оперативной памяти, и запись измененных страниц на диск только в момент завершения работы всей системы.

42
[стр. 174]

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

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

Как и страницы базы данных, данные из журнала транзакций не записываются сразу на диск, а предварительно буферизируются в оперативной памяти.
Таким образом, система поддерживает два вида буферов буферы страниц базы данных и буферы журнала транзакций.
Страницы базы данных, содержимое которых в буфере (в оперативной памяти) отличается от содержимого на диске, называются "грязными" (dirty) страницами.
Система постоянно поддерживает список "грязных" страниц dirty-список.
Запись "грязных" страниц из буфера на диск называется выталкиванием страниц во внешнюю память.
Очевидно, необходимо предусмотреть такие правила выталкивания буферов базы данных и буферов журнала транзакций, которые обеспечивали бы два требования: 1.
Максимальную скорость выполнения транзакций.
Для этого необходимо выталкивать страницы как можно реже.
В идеале, если оперативная память была бы бесконечной, и сбои никогда бы не происходили, наилучшим выходом была бы загрузка всей базы данных в оперативную память, работа с данными только в оперативной памяти, и запись измененных страниц на диск только в момент завершения работы всей системы.

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

[Back]