Məzmuna keç

ACID

Vikipediya, azad ensiklopediya

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ə | vikimətni 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. sentyabr 1981. 144–154. 13 noyabr 2008 tarixində arxivləşdirilib (PDF). İstifadə tarixi: 27 mart 2015.
  4. "Atomic operation". webopedia.com. Webopedia. 25 noyabr 2003. 27 noyabr 2020 tarixində arxivləşdirilib. İstifadə tarixi: 23 mart 2011. 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). 4 oktyabr 2012. 12 sentyabr 2023 tarixində arxivləşdirilib. İstifadə tarixi: 14 iyul 2023.
  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. 25 sentyabr 2022 tarixində arxivləşdirilib. İstifadə tarixi: 22 oktyabr 2024.
  8. "Atomicity". docs.oracle.com. 21 dekabr 2016 tarixində arxivləşdirilib. İstifadə tarixi: 13 dekabr 2016.
  9. Amsterdam, Jonathan. "Atomic File Transactions, Part 1". O'Reilly. 3 mart 2016 tarixində orijinalından arxivləşdirilib. İstifadə tarixi: 28 fevral 2016.
  10. Bernstein, Philip A.; Newcomer, Eric. Chapter 8 // Principles of Transaction Processing (2nd). Morgan Kaufmann (Elsevier). 2009. ISBN 978-1-55860-623-4. 7 avqust 2010 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. 25 sentyabr 2022 tarixində arxivləşdirilib. İstifadə tarixi: 22 oktyabr 2024.