Согласованность (системы баз данных)
В системах баз данных согласованность ( или корректность ) относится к требованию, чтобы любая данная транзакция базы данных изменяла затронутые данные только разрешенными способами. Любые данные, записываемые в базу данных, должны быть действительными в соответствии со всеми определенными правилами, включая ограничения , каскады , триггеры и любую их комбинацию. Это не гарантирует корректность транзакции во всех отношениях, которые мог бы захотеть программист приложения (за это отвечает код уровня приложения), а лишь то, что любые ошибки программирования не могут привести к нарушению каких-либо определенных ограничений базы данных. [1]
Под согласованностью также можно понимать то, что после успешной записи, обновления или удаления записи любой запрос на чтение немедленно получает самое последнее значение записи.
В качестве гарантии ACID
[ редактировать ]Согласованность — одна из четырех гарантий, определяющих ACID транзакции ; однако существует значительная неясность относительно характера этой гарантии. Его определяют по-разному:
- Гарантия того, что ограничения базы данных не будут нарушены, особенно после фиксации транзакции. [2] [3] [4] [5] [6]
- Гарантия того, что любые транзакции, начатые в будущем, обязательно увидят последствия других транзакций, совершенных в прошлом. [7] [8]
Поскольку эти различные определения не являются взаимоисключающими, можно разработать систему, гарантирующую «согласованность» во всех смыслах этого слова, как, систем управления реляционными базами данных возможно, и делает большинство широко используемых сегодня .
Как компромисс CAP
[ редактировать ]Теорема CAP основана на трех компромиссах, одним из которых является «атомарная согласованность» (сокращенно от «согласованности» аббревиатуры), о которой авторы отмечают: «Обсуждение атомарной согласованности несколько отличается от разговора о базе данных ACID. поскольку согласованность базы данных относится к транзакциям, тогда как атомарная согласованность относится только к свойству одной последовательности операций запроса/ответа. И она имеет другое значение, чем атомарное в ACID, поскольку оно включает в себя понятия как атомарной, так и согласованной базы данных. [7] В теореме CAP вы можете иметь только два из следующих трех свойств: согласованность, доступность или устойчивость к разделению. Поэтому в некоторых системах баз данных, возможно, придется пожертвовать согласованностью.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ CJ Date, «SQL и реляционная теория: как написать точный код SQL, 2-е издание», O'reilly Media, Inc. , 2012, стр. 180.
- ^ Хердер, Т; Рейтер, А. (декабрь 1983 г.). «Принципы транзакционно-ориентированного восстановления баз данных» (PDF) . Вычислительные опросы . 15 (4): 287–317. дои : 10.1145/289.291 . S2CID 207235758 . Архивировано из оригинала (PDF) 7 сентября 2017 г.
- ^ Майк Чаппл. «Модель КИСЛОТЫ» . О . Архивировано из оригинала 29 декабря 2016 г. Проверено 23 июля 2014 г.
- ^ «Свойства КИСЛОТЫ» .
- ^ Кори Янссен. «Что такое ACID в базах данных? — Определение из Techopedia» . Techopedia.com .
- ^ «ISO/IEC 10026-1:1998. Информационные технологии. Взаимосвязь открытых систем. Распределенная обработка транзакций. Часть 1. Модель OSI TP» .
- ^ Jump up to: а б «Гипотеза Брюера и возможность создания согласованных, доступных, устойчивых к разделению веб-сервисов» (PDF) . Архивировано из оригинала (PDF) 29 июня 2019 г.
- ^ Порты, ДРК; Клементс, AT; Чжан, И.; Мэдден, С.; Лисков, Б. «Транзакционная согласованность и автоматическое управление в кэше данных приложения» (PDF) . Мит Цсаил .