Transaction, daha küçük parçalara ayrılamayan en küçük işlem yığınına denir. Belirli bir grup işlemin arka arkaya gerçekleşmesine rağmen, işlemlerin toplu olarak değerlendirilmesini sağlar. “Transaction”, prensip olarak ya bütün işlemleri gerçekleştirir ya da hiçbirini gerçekleştirmez. İşlemlerden biri dahi başarısız olursa, bu prensip nedeniyle hiçbir işlem olmamış kabul edilir; ancak tüm işlemler başarılı olduğunda” transaction”, içinde gerçekleşen tüm veri değişikliklerini onaylamış demektir. Bu işlemlerin ardı arkasına gelince bir tanesinin bile gerçekleşmemesi veri kaybına neden olacağı anlamına gelmektedir. Bu işlemler sırasında veriler üzerindeki değişikliklerin de tutarlı olması, birbirlerini tamamlayıcı nitelik taşıması gerekir. Bu özellikleri sağlayabilmesi içintransaction kavramı ortaya atılır. Veri tabanı uygulamaları geliştirirken böyle bir hataya sebep olacakları da düşünerek transaction bloğunun içine alınarak işlemler yapılır. Böylece ya hepsi işlenir ya da bütün işlemler geri alınır.

Transaction bloğundaki işlemlerin hepsi başarılı olduğunda “Transaction” Commit (Onaylama)komutu çalışır ve değişiklikler veritabanında gerçekleşmiş olur. Eğer herhangi bir hata oluşursa bu işleyiş bozulur ve hepsi geri alınır o zamanda “transaction” Rollback (Geridönüş) komutu çalışır. Böylece tüm işlemler geri alınır ve en başa dönülür. Bunu yaparak veri kaybetme olasılığımız da sıfıra iner. Aşağıdaki şekilde transaction olayını özetleyerek daha da görsel boyuta taşımak istedik.

Şekilde görüldüğü gibi Commit komutunun çalıştırılabilmesi için tüm işlemlerin başarılı olması gerekmektedir. Başlıca transaction çeşitleri 4 tanedir.

  1. Begin Transaction
  2. Save transaction
  3. Rollback
  4. Commit

Şimdi bunları yakından ele alalım.

Begin Transaction komutu yeni bir transaction başlatır. İşlemleri onaylamak için veya iptal etmek için Commit veya Rollback komutunu beklemeye koyuluyor. Kullanım şekli ise aşağıdaki gibidir.

BEGIN TRANSACTION
SQL KOMUTLARI
SQL KOMUTLARI...

Rollback Transaction komutu Begin ile başlatılan işlemlerin hepsini iptal eder. Kullanım şekli ise aşağıdaki gibidir.

BEGIN TRANSACTION
SQL KOMUTLARI
SQL KOMUTLARI
SQL KOMUTLARI...(SQL exception) // !!!HATA!!!
ROLLBACK TRANSACTION

Commit Transaction komutu begin Transaction ile başlayan bütün işleri onaylar. Zaten bir transaction gerçekleşmişse ardından mutlaka Commit transaction gelmesi gerekir. Kullanım şekli ise aşağıdaki gibidir.

BEGIN TRANSACTION
SQL KOMUTLARI
SQL KOMUTLARI
SQL KOMUTLARI...
COMMIT TRANSACTION

Save Transaction komutu ise geri dönüşüm noktası belirler.

Bir sonraki yazımızda transaction ile örnekler geliştiriyor olacağız.

Kategoriler: SQL

Sümeyra Akbıyık

hakkımdaki her şeyi bu blogda bulabilirsin. Haydi sende bir göz gezdirmeye ne dersin?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir