доступна полная блокировка (монопольный доступ), т.е. как только
остальные пользователи заканчивают работу с БД.
Рассмотрим ситуацию, потенциально приводящую к конфликту:
1. Пользователь А и Б открыл базу;
2. Пользователь А начал редактирование 2го поля в 3ем кортеже
отношения R1;
3. Пользователь Б начал редактирование 2го поля в 3ем кортеже
отношения R1;
4. Пользователь А закончил редактирование;
5. Пользователь Б закончил редактирование.
В результате, изменения вносимые пользователем А просуществовали до
завершения редактирования пользователем Б.
Более того, пользователь Б
затер изменения пользователя А даже не подозревая об этом. Потенциально
такая ситуация может приводить к нарушению логики функционирования
приложения, использующего БД. Поэтому в MS Access при возникновении
рассмотренной ситуации, когда пользователь Б пытается закончить
редактирование (п. 5), ему
выдается предупреждение о том, что запись уже
была изменена, а также предлагается выбрать один из вариантов: закончить
редактирование, скопировать внесенные им изменения в буфер и
просмотреть измененные (пользователем А) значения полей, отменить
редактирование.
В
этом случае ответственность за правильное внесение данных
перекладывается на пользователей БД и
прикладных программных средств,
использующих БД.
Кроме того, имеется возможность указать степень детализации
блокировки, которую использует Microsoft Access в общей базе данных. Если
применяется блокировка на уровне страниц, Microsoft Access блокирует
страницу с размером 4K (область памяти, в которой находится запись). При
этом изменение записи может привести к блокировке других записей на этой
странице. Однако блокировка на уровне страниц обычно обеспечивает более
высокое быстродействие.
Достарыңызбен бөлісу: