Лекция 7. Реализация многопользовательского режима. Транзакции.
Существуют два подхода решения проблем совместного доступа к общим данным: установка блокировок и управление параллельностью выполнения транзакций. В первом случае на время выполнения какой-либо операции в БД доступ к используемому объекту со стороны других пользователей временно запрещается или ограничивается. Во втором случае при одновременном доступе к одним и тем же данным операции манипулирования данными, заключенные в рамки транзакции, чередуются, и таким образом достигается их параллельное выполнение. Однако, несмотря на то, что каждая из транзакций сама по себе может быть выполнена вполне корректно, подобное чередование операций способно приводить к неверным результатам, из-за чего целостность и согласованность базы данных будет нарушена. В большинстве случаев эти два подхода применяются совместно. Различают оптимистический и пессимистический подходы в управлении параллельностью выполнения транзакций. Пессимистический подход обеспечивает более высокий уровень безопасности, поскольку откладывается выполнение любых транзакций, потенциально способных войти в конфликт с другими транзакциями. Оптимистический подход разрешает асинхронное выполнение транзакций в предположении, что вероятность конфликта невысока. Проверка на наличие конфликта откладывается до завершения транзакции и ее фиксации в БД.