Transaction

transaction (büyük resim için tıklayın)

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.

ACID İlkeleri

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.

Transaction Süreci

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.

Transaction Örneği

Bir banka uygulamasında iki hesap arasında para transferi gerçekleştiren bir senaryo düşünelim:

  • Hesap A’dan 100 TL düşülecek.
  • Hesap B’ye 100 TL eklenecek.

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.

Transaction Yönetimi

Veritabanı sistemleri, transaction'ların yönetimini sağlamak için çeşitli komutlar ve yöntemler sunar:

  1. BEGIN: Bir transaction başlatır.
  2. COMMIT: Tüm işlemler başarıyla tamamlandığında, veritabanına yapılan değişikliklerin kalıcı olmasını sağlar.
  3. ROLLBACK: İşlemler sırasında bir hata oluştuğunda veya işlemi iptal etmek istendiğinde, yapılan değişikliklerin geri alınmasını sağlar.

Transaction İzolasyon Seviyeleri

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:

  1. Read Uncommitted: Transaction'lar henüz commit edilmemiş verileri okuyabilir. Bu en düşük izolasyon seviyesidir ve kirli okuma sorunlarına neden olabilir.
  2. Read Committed: Transaction'lar sadece commit edilmiş verileri okuyabilir. Bu seviye, kirli okumaları engeller.
  3. Repeatable Read: Bir transaction aynı satırı birden fazla okursa, her seferinde aynı değeri okur. Ancak hayalet veri sorunlarına yol açabilir.
  4. Serializable: En yüksek izolasyon seviyesidir. Transaction'lar birbirinden tamamen izole edilir ve sıralı bir şekilde çalışır. Bu, tutarlılığı sağlar, ancak performansı etkileyebilir.

Transaction'ların Avantajları

  • Veri Tutarlılığı: ACID ilkeleri sayesinde veritabanı tutarlılığı korunur.
  • Hata Yönetimi: Transaction'lar hata durumunda geri alınarak veri kaybı önlenir.
  • Çoklu İşlemler: Birden fazla işlemin bir arada güvenli ve tutarlı bir şekilde gerçekleştirilmesini sağlar.
  • Güvenilirlik: Transaction'lar sayesinde sistem çökmeleri veya hatalar sonrasında yapılan işlemler korunur veya geri alınır.

Sonuç

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.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








temel-kavramlar Kategori

Build

Versioning & Tagging (Versiyonlama ve Etiketleme)

Release