ACID

ACID (ing. Atomicity, Consistency, Isolation, Durability) — məlumat bazası əməliyyatlarının etibarlılığını və düzgünlüyünü təmin edən dörd əsas xüsusiyyəti ifadə edir.[1] ACID xüsusiyyətləri verilənlər bazasının işləmə prinsiplərini müəyyən edir və məlumatın bütövlüyünü qorumaq üçün əməliyyatların müəyyən tələblərə cavab verməsini təmin edir.[2]

ACID xüsusiyyətləri, xüsusilə əlaqəli (ing. relational) verilənlər bazalarında əhəmiyyətlidir.

Atomluq, bir əməliyyatın ya tam olaraq həyata keçirilməsini, ya da heç bir hissəsinin həyata keçirilməməsini təmin edir. Yəni əməliyyat ya bütöv şəkildə tamamlanmalıdır, ya da baş verməyən kimi geri qaytarılmalıdır (ing. rollback).[3] Əgər hər hansı bir əməliyyatın bir hissəsi uğursuz olarsa, heç bir hissəsi icra olunmamış sayılır və məlumat bazası əvvəlki vəziyyətinə qaytarılır.

Məsələn, bir bank köçürməsi zamanı, pulun bir hesaba çıxılması və digər hesaba daxil edilməsi bir əməliyyatın tərkib hissəsidir. Əgər bu əməliyyatın yalnız bir hissəsi yerinə yetirilərsə (pul çıxılar, amma daxil edilməzsə), məlumatın pozulması baş verər. Atomluq buna mane olur.[4]

Ardıcıllıq, verilənlər bazasının hər bir əməliyyatın əvvəl və sonra müəyyən edilmiş qaydalara uyğun olaraq etibarlı və düzgün vəziyyətdə olmasını təmin edir.[5] Bir əməliyyat verilənlər bazasında müəyyən edilmiş məhdudiyyətlərə, qaydalara və tamlıq şərtlərinə zidd olmamalıdır.

Məsələn, bir bank sistemində balans həmişə müsbət olmalıdır. Hər hansı bir əməliyyat bu qaydanı pozmamalıdır. Əgər bir əməliyyat məhdudiyyətləri pozarsa, bu əməliyyatın həyata keçirilməsinə icazə verilməz.[6]

İzolyasiya, verilənlər bazasında paralel əməliyyatların bir-birindən müstəqil şəkildə yerinə yetirilməsini təmin edir. Bir əməliyyat başa çatmamış, digər əməliyyatlar bu prosesin nəticələrinə daxil ola bilməz.[7] İzolyasiya, əməliyyatların bir-birinə təsir etmədən həyata keçirilməsini təmin edir ki, bu da eyni anda bir neçə istifadəçinin bazadan istifadə etməsi zamanı kritik əhəmiyyət daşıyır.

Məsələn, əgər iki istifadəçi eyni vaxtda eyni hesaba pul köçürmək istəyirsə, izolyasiya onların bir-birinə təsir etməməsi və hər iki əməliyyatın düzgün aparılmasını təmin edir.[8]

Davamlılıq, bir əməliyyat uğurla başa çatdıqdan sonra bu əməliyyatın nəticələrinin sistemdə qalacağını və hər hansısa texniki nasazlıqdan sonra belə itirilməyəcəyini təmin edir. Verilənlər bazasına yazılan məlumatlar sistem nasazlığı, elektrik kəsilməsi və digər gözlənilməz hallarda belə qalıcı olur.[9]

Məsələn, əgər bank sistemində bir əməliyyat tamamlanıbsa və sonra sistem nasazlığı baş verərsə, tamamlanmış əməliyyatın nəticəsi itməyəcək və saxlanılacaq.[10]

Xüsusiyyətlərinin əhəmiyyəti

[redaktə | mənbəni redaktə et]

ACID xüsusiyyətləri verilənlər bazalarının işləməsinin əsas qaydalarını müəyyən edir və məlumatın etibarlı şəkildə idarə olunmasını təmin edir.[11] Xüsusilə əlaqəli verilənlər bazalarında, böyük şirkətlərdə və maliyyə sistemlərində bu qaydalar məlumatların düzgünlüyünün qorunması üçün həyati əhəmiyyət kəsb edir.

  1. Gray, Jim; Reuter, Andreas. Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann. 1993. ISBN 1-55860-190-2.
  2. Haerder, T.; Reuter, A. "Principles of transaction-oriented database recovery". ACM Computing Surveys. 15 (4). 1983: 287. doi:10.1145/289.291.
  3. Gray, Jim. The Transaction Concept: Virtues and Limitations (PDF) // Proceedings of the 7th International Conference on Very Large Databases. Cupertino, California: Tandem Computers. September 1981. 144–154. November 13, 2008 tarixində arxivləşdirilib (PDF). İstifadə tarixi: March 27, 2015.
  4. "Atomic operation". webopedia.com. Webopedia. 25 November 2003. 2020-11-27 tarixində arxivləşdirilib. İstifadə tarixi: 2011-03-23. An operation during which a processor can simultaneously read a location and write it in the same bus operation. This prevents any other processor or I/O device from writing or reading memory until the operation is complete.
  5. C. J. Date, "SQL and Relational Theory: How to Write Accurate SQL Code 2nd edition", O'reilly Media, Inc., 2012, p. 180.
  6. Archiveddocs. "Isolation Levels in the Database Engine". learn.microsoft.com (ingilis). 2012-10-04. 2023-09-12 tarixində arxivləşdirilib. İstifadə tarixi: 2023-07-14.
  7. Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. Transactions // Database system concepts (6th). New York: McGraw-Hill. 2011. səh. 631. ISBN 978-0-07-352332-3. OCLC 436031093. 2022-09-25 tarixində arxivləşdirilib. İstifadə tarixi: 2024-10-22.
  8. "Atomicity". docs.oracle.com. 2016-12-21 tarixində arxivləşdirilib. İstifadə tarixi: 2016-12-13.
  9. Amsterdam, Jonathan. "Atomic File Transactions, Part 1". O'Reilly. 2016-03-03 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 2016-02-28.
  10. Bernstein, Philip A.; Newcomer, Eric. Chapter 8 // Principles of Transaction Processing (2nd). Morgan Kaufmann (Elsevier). 2009. ISBN 978-1-55860-623-4. 2010-08-07 tarixində arxivləşdirilib.
  11. Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. Advanced Application Development // Database system concepts (6th). New York: McGraw-Hill. 2011. səh. 1042. ISBN 978-0-07-352332-3. OCLC 436031093. 2022-09-25 tarixində arxivləşdirilib. İstifadə tarixi: 2024-10-22.