ACID Veritabanınızın Verilerini Korur
Veritabanı tasarımının ACID modeli, veritabanı teorisinin en eski ve en önemli kavramlarından biridir. Her veritabanı yönetim sisteminin başarmak için çabalaması gereken dört hedefi ortaya koymaktadır: atomiklik, tutarlılık, izolasyon ve dayanıklılık. Bu dört hedefin herhangi birini karşılayamayan ilişkisel bir veritabanı güvenilir olarak kabul edilemez. Bu özelliklere sahip bir veritabanı ACID uyumlu olarak kabul edilir.
ACID Tanımlı
Bu özelliklerin her birini ayrıntılı olarak incelemek için bir dakikanızı ayırın:
- Atomisite, veritabanı modifikasyonlarının “tamamen ya da hiçbir şey” kuralına uyması gerektiğini belirtir. Her işlemin “atomik” olduğu söylenir. İşlemin bir kısmı başarısız olursa, tüm işlem başarısız olur. Veritabanı yönetim sisteminin, herhangi bir DBMS'ye, işletim sistemine veya donanım hatasına rağmen işlemlerin atomik yapısını koruduğu önemlidir.
- Tutarlılık , veritabanına sadece geçerli verilerin yazılacağını belirtir. Herhangi bir nedenle, veritabanının tutarlılık kurallarını ihlal eden bir işlem yürütülürse, tüm işlem geri alınır ve veritabanı bu kurallarla tutarlı bir duruma geri yüklenir. Diğer taraftan, bir işlem başarılı bir şekilde yürütüldüğünde, veritabanını kurallarla tutarlı olan bir başka duruma kurallarla tutarlı bir durumdan alır.
- İzolasyon , aynı anda meydana gelen birden fazla işlemin, birbirlerinin icrasını etkilememesini gerektirir. Örneğin, eğer Joe bir veritabanına karşı bir işlem yaparsa, aynı zamanda Mary farklı bir işlem yaparsa, her iki işlem de veritabanında izole bir şekilde çalışmalıdır. Veri tabanı, ya Mary'nin icra edilmesinden önce ya da tam tersi olarak Joe'nun tüm işlemini gerçekleştirmelidir. Bu, Joe'nun işleminin, Mary'nin işleminin bir kısmının, sonuçta veritabanına bağlı olmayacak bir kısmının bir yan etkisi olarak üretilen ara verileri okumasını önler. İzolasyon özelliğinin ilk olarak hangi işlemin gerçekleştirileceğini sağlamadığını unutmayın - yalnızca işlemlerin birbiriyle etkileşime girmeyeceğini
- Dayanıklılık , veritabanına işlenen herhangi bir işlemin kaybolmayacağını garanti eder. Daha sonraki herhangi bir yazılım veya donanım hatası olmasına rağmen, taahhüt edilen işlemlerin geri yüklenmesini kolaylaştıran veritabanı yedeklerinin ve işlem günlüklerinin kullanılmasıyla dayanıklılık sağlanır.
ACID nasıl çalışır?
Veritabanı yöneticileri, ACID'yi zorlamak için çeşitli stratejiler kullanır.
Atomikliği ve dayanıklılığı zorlamak için kullanılan bir yöntem, herhangi bir işlem detayının ilk olarak hem yinelemeyi hem de geri almayı içeren bir günlüğe yazıldığı yazma öncesi kayıt (WAL) 'dir. Bu, herhangi bir veritabanında bir hata oluştuğunda veri tabanının kontrol edilebilmesini sağlar. günlüğü ve içeriğini veritabanının durumuyla karşılaştırır.
Atomikliği ve dayanıklılığı ele almak için kullanılan bir başka yöntem de, verilerin değiştirilmesi gerektiğinde bir gölge sayfasının oluşturulduğu gölgelendirme işlemidir. Sorgunun güncellemeleri, veritabanındaki gerçek verilere değil, gölge sayfasına yazılır. Veritabanının kendisi sadece düzenleme tamamlandığında değiştirilir.
Başka bir strateji, özellikle dağıtılmış veritabanı sistemlerinde yararlı olan iki fazlı işlem protokolü olarak adlandırılır. Bu protokol, verileri iki aşamaya dönüştürmek için bir istek ayırır: bir taahhüt-istek aşaması ve bir taahhüt aşaması. İstek aşamasında, bir ağdaki işlemden etkilenen tüm DBMS'lerin, bunları aldıklarını ve işlemi gerçekleştirebilecek kapasitede olduklarını doğrulamaları gerekir. İlgili tüm DBMS'lerden onay alındıktan sonra, verilerin gerçekten değiştirildiği taahhüt aşaması tamamlanır.