Одновременное выполнение транзакций базы данных в многопользовательской системе означает, что любое количество пользователей может одновременно использовать одну и ту же базу данных.Контроль параллелизма необходим во избежание несоответствий в базе данных.
Вот пример того, как этот сценарий может привести к несоответствию:
Предположим, у нас есть два пользователя, Алиса и Боб, у обоих есть доступ к одному банковскому счету.Алиса хочет внести 100 долларов, а Боб хочет снять 200 долларов.Если предположить, что на счете 500 долларов, то вот как может выполнить выполнение, если они одновременно выполняют свои действия:
- Алиса получает начальную сумму (х = 500 долларов)
- Боб получает начальную сумму (х = 500 долларов)
- Алиса вкладывает 100 долларов (х + 100) = 600
- Боб снимает 200 долларов (х - 200) = 300
- Алиса сохраняет новый баланс (600 долларов)
- Боб сохраняет новый баланс (300 долларов)
Новый баланс после обоих действий должен составлять 400 долларов.Теперь база данных находится в несогласованном состоянии.
Управление параллелизмом может предотвратить несоответствия, предоставив Алисе временную «блокировку» базы данных, пока она не выполнит свое действие.