Що означає ізольованість (Isolation)?
Ізольованість (Isolation) - це властивість транзакцій, що гарантує: паралельні транзакції не бачать незавершених змін одна одної й не заважають виконанню одна одної. Кожна транзакція має відчувати себе "єдиною в системі", навіть якщо насправді їх десятки.
Що це означає на практиці
- транзакція не бачить проміжних, "брудних" даних з інших транзакцій
- паралельні операції не призводять до суперечливих результатів
- підсумковий ефект має виглядати так, ніби транзакції виконувалися по черзі
Типові проблеми без Isolation
| Проблема | Що відбувається |
|---|---|
| Dirty Read | читання даних транзакції, яка ще не зафіксована |
| Non-repeatable Read | повторне читання того самого поля дає різні результати, бо його змінили паралельно |
| Phantom Read | при повторному запиті з'являється новий набір рядків, доданих іншою транзакцією |
Isolation захищає саме від таких ситуацій - залежно від рівня ізоляції.
Рівні ізоляції (ідея, коротко)
У системах транзакцій є різні рівні - від швидших, але менш строгих, до максимальних, наприклад:
Read CommittedRepeatable ReadSerializable(найстроgіший)
Чим вищий рівень - тим менше паралельності, але більше гарантій цілісності.
В одному реченні
Isolation = кожна транзакція виконується так, ніби вона єдина, і не бачить незавершених змін інших.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.