17 Ocak 2017 Salı

Transaction - Temel Bilgiler



Önce transaction bloğu çalıştırılır. Transaction bloğunun çalıştırılması ile bütün işlemlerin bir bütünlük arz ettiği ve her an tamamının geçersiz sayılabileceği tanımlanmış olur.
Bütün işlemler transaction log’ ların da tutulur ve herhangi bir problemde bu log’ lar dikkate alınır. 
Transaction bloğu SQL Server tarafından otomatik olarak veya kullanıcı tarafından «BEGIN TRANSACTION» komutu ile başlatılabilir.
BEGIN TRANSACTION yerine BEGIN TRAN komutu da kullanılabilmektedir.


Transaction bloğunda yapılan her işlemin başarılı olup olmadığı, her biten işlem sonunda kontrol edilir. Eğer başarılı olunmadıysa yapılan işlem geri alınır.
Geri alma işlemi «ROLLBACK» komutu ile gerçekleştirilir.
Başarılı olunduysa bir sonraki işleme geçilir.
Bu işlemler kullanıcı tarafından ve SQL Server tarafından gerçekleştirilebilir.

Tüm işlemler tamamlandığında «COMMIT» işlemi ile tüm veriler yeni hali ile veritabanına kaydedilir.
Eğer işlem başarısız olursa «ROLLBACK» komutu ile bütün işlemler tekrar en başa alınır ve yapılacak olan işlem veritabanına yansıtılmaz.

Örnek: Transaction

Bir banka sistemini ele alarak bir havale işlemini gerçekleştirelim.
A kullanıcısı B kullanıcısına havale yaptığında;
A kullanıcısının hesabından havale edilecek olan miktar düşülür. Ardından B kullanıcısının hesabına bu havale miktarı eklenir ve havale işlemi gerçekleşmiş olur.
Ancak her zaman bu şartlar sağlanamamış olabilmektedir. Örneğin, A kullanıcısı para havale ettiğinde elektrikler kesilebilir yada programda bir hata meydana gelebilir. Bu gibi bir durumda neler olabilir?