Коллизия (базы данных)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Суть явления[править | править вики-текст]

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

Блокировки[править | править вики-текст]

Решение проблемы возникновения коллизий обеспечивается механизмом блокировок, то есть передачей во временное эксклюзивное пользование одному пользователю или процессу объекта или фрагмента базы данных для выполнения транзакции. Объектом блокировки может быть база данных целиком, отдельная таблица, фрагмент таблицы, запись (строка) или ячейка. Блокирование может быть полным (запрещены все виды транзакций) или READONLY (разрешена выборка данных по запросу с помощью оператора SELECT).

См. также[править | править вики-текст]