Узгодженість (системи бази даних)

Узгодженість (або коректність) у системах баз даних відноситься до вимоги, що будь-яка дана транзакція бази даних повинна змінювати дані, що впливають, лише дозволеними способами. Будь-які дані, записані в базу даних, мають бути дійсними відповідно до всіх визначених правил, включаючи обмеження, каскади, тригери та будь-яку їх комбінацію. Це не гарантує коректність транзакції всіма способами, які хотів програміст прикладних програм (це відповідальність коду на рівні програми), а лише те, що будь-які помилки програмування не можуть призвести до порушення будь-яких визначених обмежень бази даних. [1]

Як гарантія ACID

Узгодженість є однією з чотирьох гарантій, які визначаються властивостями транзакцій ACID; однак існує значна неясність щодо природи цієї гарантії. Її по-різному визначають як:

  • Гарантія того, що будь-які транзакції, розпочаті в майбутньому, обов'язково будуть мати наслідки інших транзакцій, здійснених у минулому [2] [3]
  • Гарантія того, що обмеження бази даних не порушуються, особливо після здійснення транзакції [4] [5] [6] [7]
  • Гарантія того, що операції в транзакціях виконуються точно, коректно та валідно, що стосується семантики програми [8]

Оскільки ці різні визначення не є взаємовиключними, можна розробити систему, яка гарантує «послідовність» у кожному сенсі цього слова, як це, можливо, робить більшість систем керування реляційними базами даних, які широко використовуються сьогодні.

Як компроміс CAP

Теорема CAP заснована на трьох компромісах, одним з яких є «атомарна узгодженість» (скорочено до «узгодженість» для абревіатури), про що автори відзначають: «Обговорення атомарної узгодженості дещо відрізняється від розмови про базу даних ACID, оскільки узгодженість бази даних відноситься до транзакцій, тоді як атомарна узгодженість відноситься лише до властивості однієї послідовності операцій запиту/відповіді. І воно має інше значення, ніж атомарність в ACID, оскільки включає обидва поняття бази даних: атомарність і узгодженість» [2] У теоремі CAP ви можете мати лише дві з наступних трьох властивостей: узгодженість, доступність або стійкість до поділу. Таким чином, у деяких системах баз даних, можливо, доведеться замінити узгодженість.

Див. також

Посилання

  1. C. J. Date, "SQL and Relational Theory: How to Write Accurate SQL Code 2nd edition", O'reilly Media, Inc., 2012, pg. 180.
  2. Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. Архів оригіналу за 29 червня 2019.
  3. 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.
  4. Haerder, T; Reuter, A. (December 1983). Principles of Transaction-Oriented Database Recovery. Computing Surveys 15 (4): 287–317. doi:10.1145/289.291.
  5. Mike Chapple. The ACID Model. About.
  6. ACID properties.
  7. Cory Janssen. What is ACID in Databases? - Definition from Techopedia. Techopedia.com.
  8. ISO/IEC 10026-1:1998 - Information technology -- Open Systems Interconnection -- Distributed Transaction Processing -- Part 1: OSI TP Model.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.