Изоляция собственности в базе данных

Изоляция контролирует, как и когда вносятся изменения в базу данных.

Изоляция – это свойство уровня базы данных, которое контролирует, как и когда вносятся изменения и становятся ли они видимыми друг для друга, пользователей и систем. Одна из целей изоляции состоит в том, чтобы позволить нескольким транзакциям происходить одновременно, не влияя на выполнение каждой из них.

Изоляция является неотъемлемой частью транзакционных свойств базы данных. Это третье свойство ACID (атомарность, согласованность, изоляция, долговечность), и эти свойства обеспечивают согласованность и точность данных.

Как работает изоляция

Вот пример: если Джо выполняет транзакцию для базы данных в то же время, когда Мэри выполняет другую транзакцию, обе транзакции должны работать в базе данных изолированно. База данных должна либо выполнить всю транзакцию Джо перед выполнением Мэри, либо наоборот. Это препятствует тому, чтобы транзакция Джо считывала промежуточные данные, полученные как побочный эффект части транзакции Мэри, которая в конечном итоге не будет передана в базу данных.

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

Уровни изоляции

Есть четыре уровня изоляции. Более высокая изоляция ограничивает возможность пользователей одновременно получать доступ к одним и тем же данным. Чем выше уровень изоляции, тем больше системных ресурсов требуется, и более вероятно, что транзакции базы данных будут блокировать друг друга.

Чем ниже уровень изоляции, тем больше вероятность того, что пользователи столкнутся с явлениями чтения, такими как незафиксированные зависимости, также известные как грязные чтения, которые приводят к чтению данных из строки, измененной другим пользователем, но еще не зафиксированной в базу данных.

  1. Сериализуемый – это самый высокий уровень, который означает, что транзакции будут завершены до того, как другая транзакция сможет начаться.
  2. Повторяемые чтения позволяют осуществлять доступ к транзакциям после того, как транзакция началась, даже если она еще не завершена.
  3. Чтение зафиксировано позволяет получить доступ к данным после их фиксации в базе данных, но не раньше.
  4. Чтение незафиксировано – это самый низкий уровень изоляции, позволяющий получить доступ к данным до внесения изменений.
Оцените статью
Solutics.ru
Добавить комментарий