Узгодженість (системи бази даних)
Узгодженість (або коректність) у системах баз даних відноситься до вимоги, що будь-яка дана транзакція бази даних повинна змінювати дані, що впливають, лише дозволеними способами. Будь-які дані, записані в базу даних, мають бути дійсними відповідно до всіх визначених правил, включаючи обмеження, каскади, тригери та будь-яку їх комбінацію. Це не гарантує коректність транзакції всіма способами, які хотів програміст прикладних програм (це відповідальність коду на рівні програми), а лише те, що будь-які помилки програмування не можуть призвести до порушення будь-яких визначених обмежень бази даних. [1]
Як гарантія ACID
Узгодженість є однією з чотирьох гарантій, які визначаються властивостями транзакцій ACID; однак існує значна неясність щодо природи цієї гарантії. Її по-різному визначають як:
- Гарантія того, що будь-які транзакції, розпочаті в майбутньому, обов'язково будуть мати наслідки інших транзакцій, здійснених у минулому [2] [3]
- Гарантія того, що обмеження бази даних не порушуються, особливо після здійснення транзакції [4] [5] [6] [7]
- Гарантія того, що операції в транзакціях виконуються точно, коректно та валідно, що стосується семантики програми [8]
Оскільки ці різні визначення не є взаємовиключними, можна розробити систему, яка гарантує «послідовність» у кожному сенсі цього слова, як це, можливо, робить більшість систем керування реляційними базами даних, які широко використовуються сьогодні.
Як компроміс CAP
Теорема CAP заснована на трьох компромісах, одним з яких є «атомарна узгодженість» (скорочено до «узгодженість» для абревіатури), про що автори відзначають: «Обговорення атомарної узгодженості дещо відрізняється від розмови про базу даних ACID, оскільки узгодженість бази даних відноситься до транзакцій, тоді як атомарна узгодженість відноситься лише до властивості однієї послідовності операцій запиту/відповіді. І воно має інше значення, ніж атомарність в ACID, оскільки включає обидва поняття бази даних: атомарність і узгодженість» [2] У теоремі CAP ви можете мати лише дві з наступних трьох властивостей: узгодженість, доступність або стійкість до поділу. Таким чином, у деяких системах баз даних, можливо, доведеться замінити узгодженість.
Див. також
- Модель узгодженості
- Теорема CAP
- Цілісність посилання
- Кінцева консистенція
Посилання
- C. J. Date, "SQL and Relational Theory: How to Write Accurate SQL Code 2nd edition", O'reilly Media, Inc., 2012, pg. 180.
- Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. Архів оригіналу за 29 червня 2019.
- Ports, D.R.K.; Clements, A.T.; Zhang, I.; Madden, S.; Liskov, B. Transactional Consistency and Automatic Management in an Application Data Cache. Mit Csail.
- Haerder, T; Reuter, A. (December 1983). Principles of Transaction-Oriented Database Recovery. Computing Surveys 15 (4): 287–317. doi:10.1145/289.291.
- Mike Chapple. The ACID Model. About.
- ACID properties.
- Cory Janssen. What is ACID in Databases? - Definition from Techopedia. Techopedia.com.
- ISO/IEC 10026-1:1998 - Information technology -- Open Systems Interconnection -- Distributed Transaction Processing -- Part 1: OSI TP Model.