Сообщения

Сообщения за декабрь, 2020

Реализация ACID в базах данных

Изображение
Обработка транзакции часто требует последовательности операций, которая может выйти из строя по ряду причин. Например, в системе может не осталось места на дисках или она израсходовала выделенное время ЦП. Существует два популярных семейства методов: ведение журнала с упреждающей записью и теневая подкачка. В обоих случаях необходимо установить блокировки для всей обновляемой информации и, в зависимости от уровня изоляции, возможно, для всех данных, которые также могут быть прочитаны. При ведении журнала с упреждающей записью надежность гарантируется путем копирования исходных (неизмененных) данных в журнал перед изменением базы данных. Это позволяет базе данных вернуться в согласованное состояние в случае сбоя. При теневом копировании обновления применяются к частичной копии базы данных, и новая копия активируется при фиксации транзакции. Блокировка и многоверсионность Многие базы данных полагаются на блокировку для обеспечения возможностей ACID. Блокировка означает, что транзакция

Примеры ACID в базах данных

Изображение
Следующие ниже примеры дополнительно иллюстрируют свойства ACID. В этих примерах таблица базы данных имеет два столбца, A и B. Ограничение целостности требует, чтобы сумма значения в A и значения в B равнялась 100. Следующий код SQL создает таблицу, как описано выше: CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100)); Атомарность Атомарность - это гарантия того, что серия операций с базой данных в атомарной транзакции либо будет выполнена (успешная операция), либо ничего не произойдет (неудачная операция). Серии операций нельзя разделить, выполняя только некоторые из них, что делает серию операций "неделимой". Гарантия атомарности предотвращает частичное обновление базы данных, что может вызвать более серьезные проблемы, чем полный отказ от всей серии. Другими словами, атомарность означает неделимость и несводимость. В качестве альтернативы мы можем сказать, что логическая транзакция может состоять из одной или нескольких физических транзакций или сост

ACID в базах данных

Изображение
В информатике ACID (atomicity, consistency, isolation, durability - атомарность, согласованность, изоляция, долговечность) - это набор свойств транзакций базы данных, предназначенный для гарантии достоверности данных, несмотря на ошибки, сбои питания и другие неполадки. В контексте баз данных последовательность операций с базой данных, удовлетворяющая свойствам ACID (которые могут восприниматься как единственная логическая операция над данными), называется транзакцией. Например, перевод средств с одного банковского счета на другой, даже если он включает в себя несколько изменений, таких как дебетование одного счета и зачисление другого, является одной транзакцией. В 1983 году Андреас Рейтер и Тео Хердер придумали аббревиатуру ACID, основываясь на более ранней работе Джима Грея, который при характеристике концепции транзакции назвал атомарность, согласованность и долговечность, но не изоляцию. Эти четыре свойства являются основными гарантиями парадигмы транзакций, которая повлияла на