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