Зміст:
Визначення - Що означає ізоляція?
Ізоляція в контексті баз даних визначає, коли і як зміни, здійснені в операції, стають видимими для інших паралельних операцій. Ізоляція транзакцій є важливою частиною будь-якої транзакційної системи. Він стосується послідовності та повноти даних, отриманих за допомогою запитів, які не впливають на дані користувача іншими діями користувача. База даних отримує блокування даних для підтримки високого рівня ізоляції.
Техопедія пояснює Ізоляцію
Для контролю ступеня блокування даних визначено ряд рівнів ізоляції. Високий рівень ізоляції може призвести до блокування накладних витрат системи, що створює тупики. Чотири основні рівні ізоляції: Read Uncommitted: Цей рівень стосується брудних зчитувань, коли прочитані дані не узгоджуються з іншими частинами таблиці чи запиту і не виконуються. Тут дані зчитуються безпосередньо з блоків таблиць без будь-якої перевірки, перевірки та обробки. Отже, дані є такими ж брудними, як і можуть бути. Прочитано Виконано: У цьому випадку рядки, які повертає запит, це рядки, які вже були заповнені, коли запит почався. Коли фіксація завершена до початку запиту, результат не відображається у вихідному запиті. Повторне читання: рядки, повернені запитом у цьому випадку, здійснюються під час запуску транзакції. Внесені зміни відсутні в транзакції, а отже, не відображаються в результатах запиту. Серіалізалізація: На цьому рівні транзакції відбуваються абсолютно ізольовано, послідовно одна за одною. Бази даних, такі як Oracle і Postgre SQL, іноді не гарантують послідовне впорядкування транзакцій, але підтримують ізоляцію знімків, коли всі зчитування в транзакції є послідовними знімками бази даних, а транзакції здійснюються лише в тому випадку, якщо жодні оновлення не створюють конфлікту з іншими одночасними оновленнями, зробленими з моменту зйомки. Аномалії, дозволені ізоляцією знімків, можуть призвести до порушення узгодженості даних шляхом перемежування транзакцій, які підтримують послідовність. Ці аномалії можна усунути, ввівши конфлікти оновлення або штучне блокування. Усі бази даних дозволяють користувачам встановлювати свої рівні ізоляції за замовчуванням. Вибраний ідеальний рівень ізоляції заважає програмам вводити помилки, такі як брудні читання, повторювані читання та фантомні зчитування. Коли перша транзакція зчитує невідомі зміни, внесені другою транзакцією, вона спричиняє брудні читання. Якщо зчитування даних залишається незмінним, якщо читати повторно під час тієї ж транзакції, це повторне читання. Фантомні читання відбуваються, коли нові записи додаються до транзакцій перед вставкою. Розглядаються різні рівні ізоляції блокувань баз даних: Блокування читання: Блокування читання запобігає зміні даних, прочитаних під час транзакції, до завершення транзакції, усунення випадків повторного зчитування. Інші транзакції можуть читати ці дані, але доступ до запису чи зміни не надається. Блокування записів: Блокування записів не дозволяє іншим транзакціям змінювати дані до завершення транзакції. Ексклюзивні блокування запису: Ексклюзивне блокування запису не дозволяє іншим транзакціям читати чи змінювати дані до завершення поточної транзакції. Знімки: знімок - це заморожений перегляд даних під час запуску транзакції. Це запобігає брудному читанню, неповторному читанню та фантомному читанню. Це визначення було написане в контексті Баз даних