ACID refers to four key principles that ensure reliable database transactions.
Atomicity means a transaction is treated as a single unit, it either fully succeeds or fully fails. If any step fails, the entire transaction is rolled back.
Consistency guarantees that a transaction moves the database from one valid state to another, ensuring that all rules and constraints are preserved.
Isolation ensures that concurrent transactions do not interfere with each other. Even when multiple operations occur simultaneously, each transaction behaves as if it were running alone.
Durability guarantees that once a transaction is committed, the data is permanently saved - even in the event of a crash or system failure.
Most traditional SQL databases such as PostgreSQL and MySQL are fully ACID-compliant. Some NoSQL databases (e.g., MongoDB, DynamoDB) may relax certain ACID guarantees to achieve higher scalability and availability, often following BASE principles instead.
Veritabanı işlemlerinin güvenilir ve tutarlı bir şekilde gerçekleşmesini sağlayan dört temel prensip var: ACID.
Atomicity Bir işlemin (transaction), tek bir bütün olarak ele alınması, ya tamamen başarılı olur ya da tamamen geri alınır(Rollback).
Consistency Bu ilke, her işlemin veritabanını geçerli bir durumdan başka bir geçerli duruma taşımasını garantiler. Yani işlem sonunda sistemde tanımlı kurallar (örneğin: veri tipleri, kısıtlamalar, ilişkiler) hâlâ geçerli olmalı. Aksi takdirde veritabanı tutarsız bir hale gelir ve uygulamanızın davranışı öngörülemez olabilir.
Isolation Aynı anda birden fazla işlem gerçekleşebilir. İzolasyon prensibi, bu işlemlerin birbirini etkilemeden çalışmasını sağlar. Her işlem, sanki sistemde tek başına çalışıyormuş gibi davranır. Bu, özellikle çok kullanıcılı ve yüksek trafikli uygulamalarda oldukça kritik.
Durability Bir işlem başarılı bir şekilde tamamlandıysa (commit edildiyse), o veriler artık kalıcıdır. Sistem çökse bile, yazılan veriler kaybolmaz. Bu ilke, veritabanlarının güvenilirliğini sağlayan önemli yapı taşı.
PostgreSQL, MySQL gibi geleneksel SQL veritabanları tam ACID uyumlu. Ancak bazı NoSQL veritabanları (örneğin: MongoDB, DynamoDB), daha fazla ölçeklenebilirlik ve erişilebilirlik sunabilmek adına bazı ACID garantilerinden ödün verebilir. Bu sistemler genellikle BASE (Basically Available, Soft State, Eventually Consistent) modelini tercih eder.