İçeriğe geç
parazade

Transaction Ne Demek?

Yayın: · Son güncelleme:

Transaction Ne Demek? Kısaca

Transaction (işlem), veritabanında birlikte başarılı olması ya da birlikte geri alınması gereken komutlar bütünüdür. Adımlardan biri başarısız olursa tüm işlem geri alınır ve veri yarım kalmaz.

Transaction nedir?
İçindekiler
  1. Transaction ne demek?
  2. Nasıl çalışır?
  3. Neden önemli?
  4. Nelere dikkat etmeli?

Transaction ne demek?

Transaction, Türkçede "işlem" anlamına gelir. Veritabanında ise birbirine bağlı birkaç komutun tek bir bütün olarak ele alınmasıdır. Kural basittir: ya hepsi uygulanır ya hiçbiri uygulanmaz.

Bankacılıktaki para transferi en bilinen örnektir. Bir hesaptan para düşülüp diğerine eklenmeden sistem çökerse, para kaybolmamalıdır.

Nasıl çalışır?

Bir transaction üç temel komutla yönetilir. BEGIN işlemi başlatır, COMMIT değişiklikleri kalıcı hâle getirir, ROLLBACK ise tüm adımları geri alır. Varsayımsal 500 TL'lik bir transfer şöyle yazılır:

BEGIN;
UPDATE hesaplar SET bakiye = bakiye - 500 WHERE id = 1;
UPDATE hesaplar SET bakiye = bakiye + 500 WHERE id = 2;
COMMIT;

İkinci UPDATE sırasında hata çıkarsa ROLLBACK çalıştırılır ve birinci hesaptan düşülen 500 TL de geri yüklenir. Diğer kullanıcılar ise işlem tamamlanana kadar yarım kalmış bakiyeyi görmez.

Neden önemli?

Transaction'lar, ilişkisel veritabanlarının ACID garantisinin temelidir. Stok düşme, sipariş kaydı ve ödeme gibi adımların birlikte yürümesi gereken her yerde kullanılır. Bu yapı olmasaydı elektrik kesintisi ya da ağ kopması, tutarsız kayıtlar bırakırdı.

Nelere dikkat etmeli?

Transaction'ı gereğinden uzun açık tutmayın. Açık bir işlem ilgili satırları kilitleyebilir ve diğer kullanıcıların beklemesine, en kötü durumda kilitlenmeye (deadlock) yol açabilir. Kullanıcının ödeme ekranında bir şey seçmesini beklerken transaction'ı açık bırakmak sık görülen bir tasarım hatasıdır.

Birden fazla servis ya da veritabanına yayılan işlemler tek bir transaction ile yönetilemeyebilir. Mikroservis mimarilerinde bu durum için saga gibi ayrı desenler kullanılır.

Sıkça Sorulan Sorular

Transaction nedir, finansal işlemle aynı şey mi?

Veritabanında transaction, birlikte uygulanan komutlar bütünüdür ve para içermek zorunda değildir. Bir blog yazısını etiketleriyle birlikte kaydetmek de bir transaction olabilir.

ROLLBACK otomatik mi çalışır?

Bağlantı koparsa ya da veritabanı çökerse tamamlanmamış işlemler genellikle otomatik geri alınır. Uygulama kodunda ise hata yakalandığında ROLLBACK'i açıkça çağırmak ya da bunu yapan bir ORM kullanmak gerekir.

İlgili terimler