Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
54-70 вопросы.doc
Скачиваний:
20
Добавлен:
14.08.2019
Размер:
311.3 Кб
Скачать
  1. Защита данных. Управление транзакциями.

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

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

Неуправляемый параллелизм. Как правило, в многопользовательской системе с базой данных одновременно работает несколько пользователей. Некоторые из них могут пытаться одновременно изменять состояние БД. Если они будут делать это независимо, то результирующее состояние БД может оказаться несогласованным.

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

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

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

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

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

Восстановление

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

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

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

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

Ключевые операторы: Commit – подтвердить изменения. Сигнализирует серверу БД (диспетчеру управления транзакциями), что все операторы успешно выполнены и можно подтвердить изменения. Roll back – отменить назад. Извещает, что произошел сбой и нужно все, что было сделано, отменить.

Среди операторов, которые можно отменять назад, есть операторы, которые внутри транзакции делать нельзя, поскольку сделать их откат назад нельзя: операторы создания новых объектов (таблиц, домена, индекса), процедур, триггеры (все операторы, начинающиеся на create (создать), alter (изменить), drop (удалить).

Модель транзакции: В стандарте ANSI\ISO принята модель: транзакция автоматически начинается с выполнения первого оператора обновления от пользователя и продолжается до тех пор, пока не появится Commit или Roll back,которые заканчивают транзакцию.

В некоторых СУБД (SyBase, SQL Server) принята другая модель транзакций: прежде, чем начать транзакцию, надо ввести команду Begin Transaction.Считается, что после этого любой оператор обновления входит в транзакцию. Если есть единичный оператор обновления за рамками команды Begin Transaction,то он считается оператором обновления с авто commit-ом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]