Транзакции в NoSQL
NoSQL, первоначально относящийся к не-SQL или нереляционной базе данных, представляет собой базу данных, которая предоставляет механизм для хранения и извлечения данных. В этой статье мы увидим транзакции NoSQL. Есть некоторые особенности NoSQL:
- Он имеет функцию горизонтального масштабирования.
- Основное преимущество использования NoSQL заключается в том, что его легко использовать разработчикам.
- NoSQL имеет очень гибкие схемы.
Типы баз данных NoSQL:
- Базы данных «ключ-значение»: они содержат только ключи и значения, поэтому их называют более простыми типами баз данных.
- База данных документов: в этих базах данных они содержат поля и значения, и они всегда хранят документ, аналогичный JSON.
- Хранилища широких столбцов: это специальные базы данных NoSQL, поскольку они хранят данные в виде таблиц, строк и столбцов.
- Базы данных графов: здесь присутствуют узлы и ребра, где узлы используются для хранения информации о местах, вещах и людях. в то время как ребра используются для хранения информации об отношениях между узлами.
Транзакции в NoSQL:
Здесь транзакционная семантика описывается в терминах свойств ACID:
- Атомарность: это означает, что транзакция может быть либо завершена, либо полностью провалена. В нем нет частичного завершения сделки.
- Непротиворечивость: база данных всегда находится в согласованном состоянии, в то время как транзакции находятся в начале и в конце. Данные должны быть согласованными, когда транзакция начинается и заканчивается.
- Изоляция: Изоляция является основным свойством, поскольку это означает, что когда две транзакции проводятся одновременно, мы получаем один и тот же результат, когда транзакция выполняется последовательно или транзакция выполняется параллельно.
- Долговечность: когда транзакция завершается, ее нельзя отменить, как указано в этом свойстве транзакции. В нем также говорится, что любые изменения в транзакциях должны быть сохранены.
База данных NoSQL поддерживает все эти свойства. Здесь, в базе данных согласованности, предусмотрены различные политики согласованности. С одной стороны, приложение может указать абсолютную согласованность, которая фактически гарантирует, что все операции чтения возвращают самое последнее записанное значение для данного назначенного ключа. везде, где на другом конце приложение имеет возможность допускать противоречивые данные и может указать слабую согласованность.
Основная цель изоляции — гарантировать, что операция не зависит от других параллельных операций и даже имеет возможность оптимистичной/пессимистической блокировки.
Долговечность в основном говорит нам о том, что данные сохраняются на случай сбоя системы. По долговечности данные достаточно долговечны, если диск выходит из строя, данные могут быть сохранены в любой другой памяти, даже память иногда может выйти из строя, но если данные долговечны, данные могут быть сохранены где угодно и могут быть извлечены, когда они должны быть использованы.
Важность ACID-транзакций:
Все эти кислотные транзакции, о которых мы читали выше, должны обеспечивать максимальную надежность и целостность данных. Эти кислотные транзакции гарантируют, что наши данные никогда не попадут в несогласованное состояние, потому что операция или задача завершена лишь частично или не может быть завершена. Свойства ACID обеспечивают корректность и согласованность нашей базы данных.
Работа ACID-транзакций:
Мы обсудим работу транзакций ACID на примере:
Мы должны отправить 50 из S1 в S2, поэтому мы должны знать, как транзакция ACID работает в такой операции:
1. Атомарность: Атомарность гарантирует, что вся операция выполняется или прерывается. Это гарантирует, что обе операции имеют место или ни одна из них не может быть выполнена.
- Первая операция S1 : А – 50;
- Вторая операция S2: B + 50;
2. Непротиворечивость. Свойство непротиворечивости гарантирует, что целостность транзакций поддерживается должным образом. Такие как:
- Перед транзакцией S1: A + B = 150 (A = 100, B = 50).
- После транзакции: S2: A + B = 150. (A = 50, B = 100).
3. Изоляция. Изоляция гарантирует, что, если две транзакции выполняются, никакая другая транзакция не может быть доступна между ними. Это означает, что две операции могут выполняться одновременно, и никакая другая операция или задача не могут мешать им.
Например, если две операции, такие как A - 50 и B + 50, работают, никакая третья транзакция не может им помешать.
4. Долговечность: как мы обсуждали выше, после завершения операции ее нельзя отменить. Если все транзакции завершены, он не может вернуться к предыдущим шагам.