03 AĞUSTOS 2017
PERŞEMBE
11.32
Youtube
Youtube kanalım açıldı! Daha detaylı ve güncel konu anlatımları için takip etmeyi unutmayın.
Transaction Nedir?

SQL serverlarda iş birimi olarak bilinen Transaction, bir zamanda yapılan bir işi temsil etmektedir. Yani bir sorgu ifadesinde (örneğin Delete) tek türde işlem yapmaktadır. Fakat bunun yanında birtakım işlemleri ortak bir şekilde de yapmaya izin verir.

 

Peki nedir bu transaction?

Transaction ifadesi aslında tam anlamıyla şu demek: Veritabanında gerçekleştirilen bir işlemde herhangi bir hata çıkarsa, öncesinde yapılan tüm işlemler eski haline döner. Bu aslında inanılmaz yararlı bir özelliktir. Şöyle bir örnek üzerinden inceleyelim;

Elimizde bir tablomuz var ve tablomuz üzerinde 2 alanımız var. Ad ve Soyad alanları. Biz dışardan bu tablomuza SQL yardımı ile kişileri girmeye çalışıyoruz ve bu kişileri girerken bir sorgu oluşturuyoruz. Sorgumuz dosyadan kişi bilgileri alıyor ve sisteme ekliyor. Lakin sisteme eklerken bir problem çıkarsa tüm tablomuz çöp olabilir. İşte bu durumu engelleyen Transaction oluyor. Yani eğer bir problem çıkarsa sanki o sorgu hiç gerçekleşmemiş gibi eski haline dönüyor.

Olayı bir de klasik bir örnekle devam ettirelim. ATM üzerinde para çekme işlemi gerçekleştireceğiz. Öncelikle kartımızı ATM'ye taktık, işlemleri ilerlettik, miktarı seçip paramızı vermesini bekliyoruz. ATM'lerde artık kart unutulmasını engellemek adına önce kart sonra para mantığı ile kartı ilk gönderiyor ve akabinde paranızı iletiyor. Burada önemli bir detay var. Kartı iade ettiği için para karttan çekilmiş oluyor. Sonrasında uzatılan parayı hemen alamazsanız güvenlik sebebiyle para ATM tarafından geri alınıyor. Dolayısıyla para hesaptan düşüyor ama parayı siz alamıyorsunuz. Bu durumun önüne geçmek için kullanılan Transaction, eğer para alınmaz ise düşülen parayı karta tekrar yansıtıyor. Bu sayede paranız hiç çekilmemiş gibi işlem önceki haline dönmüş oluyor.

 

Transaction Çakışması

Eğer aynı anda birden fazla transaction işlemi gerçekleştirilirse çakışmadan kaynaklı hatalar oluşabilir. Bu durumun önüne geçmek için transaction kullanıldığında işlemler sıraya alınmaktadır. Yani seçili transaction işlemi sonlanana kadar diğer tüm tablolar kilitlenir.

BENZER YAZILAR
YORUMLAR 0
Bu konuya henüz kimse yorum yapmadı.
İlk yorumu sen yapmak ister misin?
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et