Проблемы параллельного доступа с использованием транзакций

При параллельном выполнении транзакций возможны следующие проблемы:

· потерянное обновление (англ. lost update) — при одновременном изменении одного блока данных разными транзакциями, одно из изменений теряется;

· «грязное» чтение (англ. dirty read) — чтение данных, добавленных или изменённых транзакцией, которая впоследствии не подтвердится (откатится);

· неповторяющееся чтение (англ. non-repeatable read) — при повторном чтении в рамках одной транзакции, ранее прочитанные данные оказываются изменёнными или удалёнными;

· фантомное чтение (англ. phantom reads) — при повторном чтении в рамках одной транзакции прочитаны данные(новые "фантомные" строки), которых при предыдущих чтениях не было, хотя они удовлетворяли условиям отбора предыдущего чтения.

 

25)Блокировки.

· Блокиривка на уровне Базы Данных осуществляется присвоением свойству exclusive, при открытии БД, значения true. При использовании вами элемента управления data, в его свойствах установите exclusive = true . Если же вы используете объект dao, то при присвоении значения объекту db установите в true значение второго параметра метода opendatabase:


· set db = dbengine.opendatabase(“c:biblio.mdb”, true)

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


· “couldn’t use ‘c:biblio.mdb’; file already in use.”· “Невозможно использовать ‘c:biblio.mdb’; файл уже используется”

лассификации блокировок

· По области действия блокировки классифицируются на строчные, гранулярные и предикатные. По строгости блокировки разделяются на совместные (англ. shared) и исключительные (эксклюзивные, англ. exclusive). По логике реализации блокировки делятся на оптимистические и пессимистические.

Править]По области действия

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

· Гранулярная блокировка — действует на всю таблицу или всю страницу и все строки. Блокировка, ограничивающая манипуляции со страницей данных в таблице (набор строк, объединённый признаком совместного хранения) иногда называется страничной (англ. page locking).

· Предикатные блокировки действуют на область, ограниченную предикатами[уточнить].

Править]По строгости

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

· Исключительная блокировка накладывается транзакцией на объект в случае, если выполняемая ей операция изменяет данные. Только одна транзакция может выполнять подобную операцию над объектом, если на него наложена эксклюзивная блокировка. Блокировка не может быть наложена на объект, если на него уже наложена совместная блокировка.

 

 

26)Защита информации. Восстановление информации.

Средства защиты БД в различных СУБД несколько отличаются друг от друга. Но условно их можно разделить на две группы: основные и дополнительные.

К основным средствам защиты информации можно отнести следу­ющие средства:

¡ парольной защиты;

¡ шифрования данных и программ;

¡ установления прав доступа к объектам БД;

¡ защиты полей и записей таблиц БД.

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

Шифрование данных (всей базы или отдельных таблиц) применяют для того, чтобы другие программы, «знающие формат БД этой СУБД», не могли прочитать данные. Такое шифрование (применяемое в Мicrosoft Ассess), по-видимому, даст немного, поскольку расшифровать БД может любой с гюмощью -«родной» СУБД

Шифрование исходных текстов программ позволяет скрыть от несанкционированного пользователя описание соответствующих алгоритмов.

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

По отношению к таблицам в общем случае могут предусматриваться следующие права доступа:

¡ просмотр (чтение) данных;

¡ изменение (редактирование) данных;

¡ добавление новых записей;

¡ добавление и удаление данных;

¡ все операции, в том числе изменение структуры таблицы.

Применительно к защите данных в полях таблиц можно выделить следу­ющие уровни прав доступа;

· полный запрет доступа;

· только чтение;

· разрешение всех операций (просмотр, ввод новых значений, удаление и изменение).

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

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

¡ встроенные средства контроля значений данных в соответствии с типами;

¡ повышения достоверности вводимых данных;

¡ обеспечения целостности связей таблиц;

¡ организации совместного использования объектов БД в сети.