Слайд 1Функции защиты данных
Транзакции и параллелизм. Журнализация.
Безопасность и целостность БД.
Слайд 21. Транзакции и параллелизм. Журнализация.
Транзакцией называется некоторая неделимая
последовательность опе-раций над данными БД, которая отслеживается СУБД от начала
до завершения.
Если по каким-либо причинам (сбои и отказы в оборудовании, ошибки в ПО) транзакция остается незавершенной, то она отменяется.
Слайд 3Основные свойства транзакции
Атомарность – выполняются все входящие в транзакцию операции
или не выполняется ни одна операция.
Сериализуемость (или изоляция)– от-сутствует взаимное
влияние выполня-емых в одно и то же время транзакций.
Долговечность – даже «крах» систе-мы не приводит к утрате результатов зафиксированной транзакции.
Слайд 4Пример транзакции
Пусть требуется осуществить опера-цию перевода денег с
одного банков-ского счета на другой. При выполнении этой операции необходим,
по крайней мере, двухшаговый процесс: сначала снимают деньги с одного счета, затем добавляют их к другому счету. Если хотя бы одно из этих действий не выполняется успешно, результат опе-рации окажется неверным и будет нарушен баланс между счетами.
Слайд 5Контроль транзакций в многопользовательских СУБД
В многопользовательских СУБД тран-закции
могут быть запущены парал-лельно. Под сериализацией парал-лельно выполняемых транзакций по-нимают
составление такого плана их выполнения (сериального плана), при котором суммарный эффект реализа-ции транзакций эквивалентен эффекту их последовательного выполнения.
Слайд 6 При параллельном выполнении смеси транзакций возможно воз-никновение конфликтов
(блоки-ровок), разрешение которых яв-ляется функцией СУБД.
При обнаружении таких
случаев обычно производится так назы-ваемый «откат» путем отмены изменений, произведенных одной или несколькими транзакциями.
Слайд 7Команды языка SQL для выполнения транзакций
В СУБД транзакция
начинается с оператора BEGIN. При этом если транзакция завершается опера-тором
COMMIT, то результаты фиксируются во внешней памяти; при завершении транзакции опера-тором ROLLBACK результаты от-сутствуют во внешней памяти.
Слайд 8Протокол доступа к данным
В СУБД используют протокол доступа
к данным, позволяющий избежать проблем параллелизма. Его суть за-ключается в
следующем:
транзакция, результатом действий которой на кортеж является его извлечение, обязана наложить блокировку записи на этот кортеж;
Слайд 9транзакция, предназначенная для моди-фикации кортежа, обязана наложить блокировку записи на
этот кортеж;
в случае, если запрашиваемая блокировка на кортеж отвергается из-за
того, что на кортеж уже наложена блокировка, то транзакция переводится в режим ожидания до тех пор, пока блокировка не будет снята;
блокировка записей сохраняется вплоть до конца выполнения транзакции, то есть до выполнения операторов COMMIT или ROLLBACK.
Слайд 10Ведение журнала изменений в БД
Ведение журнала изменений в
БД (журнализация изменений) выполняет-ся СУБД для обеспечения надежности хранения данных
в базе при наличии аппаратных сбоев и отказов, а также ошибок в ПО.
Журнал СУБД – это особая БД или часть основной БД, непосредственно недоступная пользователю, и исполь-зуемая для записи информации обо всех изменениях БД.
Слайд 11 В различных СУБД в журнал могут вноситься записи, соответствующие
изменениям и в самой СУБД.
Для эффективной
реализации функ-ции ведения журнала изменений в БД необходимо обеспечить повышенную надежность хранения и поддержания в рабочем состоянии самого журнала. Иногда для этой цели в СУБД хранят несколько копий журнала.
Слайд 122. Безопасность и целостность БД
Под безопасностью БД понимают
защиту БД от несанкционированного разрушения, изменения и модифика-ции. Систему можно
считать без-опасной только в том случае, если пользователю допускается выполнять только разрешенные действия. Целостность БД как раз связана с корректным выполнением этих дейст-вий.
Слайд 13Основные методы обеспечения безопасности БД
Шифрование прикладных программ и дан-ных.
Защита паролем.
Поддержка
уровней доступа к БД и к отдельным ее элементам (таблицам,
формам, отчетам и т.д.).
Ведение журнала (протокола) изменений выполняемых операций с целью восста-новления данных и выявления когда, каким образом и кем были осуществлены несанкционированные действия над БД.
Слайд 14Понятие целостности БД
Целостность БД – это свойство БД,
означающее, что в ней содержится полная, непротиворечивая и адек-ватно отражающая
предметную область информация.
Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаруже-ния противоречий в БД.
Слайд 15Ограничения целостности
Целостное состояние БД описывается с помощью ограничений
целостности в виде условий, которым должны удовлетворять хранимые данные в
БД. Примерами таких условий может служить ограничение диапазонов возможных значений атри-бутов объектов, сведения о которых хра-нятся в БД, отсутствие повторяющихся кортежей в таблицах и др.
Рассмотрим четыре основные типа огра-ничений целостности.
Слайд 161. Ограничение целостности домена
Этим ограничением определяется мно-жество
значений, из которых состоит домен. Особенности ограничений такого рода заключаются
в том, что имя этого ограничения должно совпадать с име-нем домена. Кроме того, поскольку до-мены сами по себе не обновляются, то отпадает необходимость предусматри-вать реакцию на нарушение ограни-чения. Более того, эти ограничения мож-но устранить за счет устранения самого домена.
Слайд 172. Ограничение целостности атрибута
Это фактически определение домена, из
которого берутся значения для дан-ного атрибута. Имя такого ограничения должно
совпадать с именем домена. Проверка осуществляется немедленно, и попытка выполнить действие, нару-шающее ограничение, будет отвергнута сразу же. Наконец, ограничения целост-ности атрибута снимаются с помощью устранения самого атрибута.
Слайд 183. Ограничение целостности отношения
Данное ограничение представляет со-бой правило,
которое задается только для одного отношения БД. Ограничение целостности отношения
всегда прове-ряется немедленно, то есть при любой попытке модификации отношения осу-ществляется контроль всех заданных условий.
Слайд 194. Ограничение целостности БД
Это ограничение задается для двух
или более связанных между собой отно-шений. В отличие от других
ограни-чений эта их разновидность помимо традиционных частей обязательно дол-жна содержать, по крайней мере, одно условие соединения отношений. Обыч-но это условие содержит две связанные переменные, определенные в двух раз-ных отношениях.
Слайд 20 Следовательно, ограничение при-водит к тому, что отношения будут связаны
между собой.
Ограничения целостности БД не проверяются немедленно, а
их вы-полнение откладывается до конца выполнения транзакции.
Слайд 21В SQL:1999 имеются специальные опе-раторы для явного образования тран-закции (START
TRANSACTION), уста-новки характеристик транзакции таких как уровень изоляции (isolation_level), ре-жим
доступа (access_mode) и размер об-ласти диагностики (diagnostics_size) с по-мощью оператора SET TRANSACTION.
В данной версии языка SQL имеются также средства для различных огра-ничений целостности.