Transaction (işlem), veritabanı yönetim sistemlerinde bir veya birden fazla veri manipülasyonunun (okuma, yazma, güncelleme veya silme) bir arada yürütüldüğü ve bir bütün olarak ele alındığı atomik bir işlem kümesidir. Bir transaction, ya tamamen başarıyla gerçekleştirilir ya da hiçbir değişiklik yapılmadan geri alınır (rollback). Bu işlem seti, veritabanı üzerinde tutarlılığı, bütünlüğü ve güvenliği sağlamak için önemlidir.
Transaction'lar, ACID ilkelerine uygun olarak çalışır. Bu ilkeler, veritabanı işlemlerinin güvenilirliğini ve doğruluğunu garanti eder.
Atomicity (Atomiklik): Bir transaction içindeki tüm işlemler ya tamamlanır ya da hiçbir şey yapılmamış gibi işlem geri alınır. Eğer herhangi bir işlem sırasında hata oluşursa, yapılan tüm değişiklikler geri alınır. Bu, transaction'ın "bölünemez" olduğunu ifade eder.
Consistency (Tutarlılık): Transaction baştan sona çalıştığında, veritabanı her zaman tutarlı bir durumda olmalıdır. Yani transaction, veritabanının kurallarına uygun olarak çalışmalı ve geçerli bir sonuca ulaşmalıdır. Başarılı bir transaction, veritabanını bir tutarlı durumdan diğer bir tutarlı duruma taşır.
Isolation (İzolasyon): Bir transaction, diğer transaction'lar tarafından etkilenmemelidir. Bir transaction devam ederken diğer transaction'ların yaptığı değişiklikler bu transaction tarafından görülmemeli, işlem bitene kadar izolasyon sağlanmalıdır.
Durability (Süreklilik): Bir transaction başarıyla tamamlandıktan sonra yapılan değişiklikler kalıcı hale gelir ve bu değişiklikler sistem çökse bile kaybolmaz. Yani transaction'dan sonra yapılan işlemler, bir disk, log ya da kalıcı bir bellekte saklanarak korunur.
Başlatma: Transaction başlatılır ve işlemler (veri okuma, yazma, güncelleme veya silme) yapılmaya başlanır.
Commit (Onaylama): Tüm işlemler başarıyla tamamlandıysa, yapılan değişiklikler kalıcı hale getirilir. Bu noktada transaction resmen tamamlanmış olur ve veritabanı üzerinde yapılan tüm değişiklikler geçerlidir.
Rollback (Geri Alma): Eğer transaction sırasında bir hata oluşursa veya transaction tamamlanamazsa, yapılan tüm değişiklikler geri alınır ve veritabanı transaction öncesi haline döner.
Bir banka uygulamasında iki hesap arasında para transferi gerçekleştiren bir senaryo düşünelim:
Bu iki işlem birlikte bir transaction olarak yürütülmelidir. Eğer Hesap A’dan para düşülür, ancak Hesap B’ye para eklenmeden sistemde bir hata oluşursa, transaction başarısız sayılır ve Hesap A’dan düşülen para geri alınır. Böylece her iki hesap da başlangıçtaki durumlarına döner. Eğer her iki işlem de başarıyla tamamlanırsa, transaction onaylanır (commit) ve işlemler kalıcı hale gelir.
Veritabanı sistemleri, transaction'ların yönetimini sağlamak için çeşitli komutlar ve yöntemler sunar:
Transaction'lar sırasında oluşabilecek veri tutarsızlıklarını önlemek için izolasyon seviyeleri kullanılır. İzolasyon seviyeleri, bir transaction'ın diğer transaction'larla ne kadar etkileşimde olacağını belirler. Veritabanlarında dört temel izolasyon seviyesi bulunur:
Veritabanı transaction'ları, veri tutarlılığını ve bütünlüğünü sağlamak için kritik bir mekanizmadır. ACID ilkelerine dayanan transaction'lar, uygulamaların güvenilir ve tutarlı bir şekilde çalışmasını sağlar. Bu yüzden özellikle finansal işlemler, stok yönetimi ve diğer kritik uygulamalar için vazgeçilmez bir yöntemdir.
*Bu gönderi chatGPT ile oluşturulmuştur.
Build
Versioning & Tagging (Versiyonlama ve Etiketleme)
Release