Transaction Yönetim İlkeleri Nelerdir?

Canandemirci
Akbank Teknoloji
Published in
3 min readFeb 22, 2024

Veri tabanı üzerinde yapılan işlemlerin her biri transaction olarak isimlendirilir. Bu transaction’lar birbirlerinden bağımsız olabileceği gibi aynı veri seti üzerinde çalışan ilişkili işlemlerde olabilir. Bu tür bağlantılı transaction’lar ve veri bütünlüğünün korunması tutarlılığı ancak transaction yönetimi ilkeleri ile sağlanabilir.

Hayatımızın birçok noktasında kullandığımız uygulamalar transaction bütünlüğünü koruyacak şekilde kurgulanmıştır. Örneğin; fatura ödeme, E-ticaret siteleri, online mesajlaşma uygulamaları, yiyecek içecek otomatları ve günlük rutinlerimizde kullanılan diğer birçok uygulamada transaction yöntemi ile işlemlerimiz hatasız ve tutarlı şekilde gerçekleştirilir. Teknolojinin insan hayatını kolaylaştırmasının yanı sıra hatalı iş süreçleri bir o kadar büyük sorunlara yol açabilir.

Hangi durumlarda transaction bütünlüğünün korunması gerektiğinin tespit edilmesi, işlemlerin doğru şekilde gerçekleşmesi açısından önemlidir. Örneğin; bir müşterinin pos cihazı ile ödeme yapması senaryosunu inceleyelim. Ekranda yazılan tutarın müşteri hesabından tahsil edilmesi ile aynı miktarda tutarın satıcının hesabına tanımlanması tek transaction içinde kurgulanmalıdır. Böylece müşterinin hesabından para tahsil edildikten sonra satıcı hesabına ilgili tutar henüz yansımadan pos cihazında arıza, güç kesintisi veya farklı bir durum yaşanması halinde, transaction içindeki tüm işlemler geri alınarak müşteri hesabından herhangi bir kesinti veya kayıp yaşanması engellenmiş olur. Böylece işlem bütünlüğü uçtan uca korunarak, veri tutarlığı sağlanır.

Transaction Yönetimi için dört temel ilke vardır. Bunlar, Atomicity, Consistency, Isolation ve Durability prensipleridir (ACID).

· Atomicity (Bütünlük): Aynı transaction içinde bulunan işlemler için, ya tüm işlemlerin başarılı şekilde tamamlanması (Commit) ya da bir işlemde hata olması durumunda, tümünün iptal edilmesi (Rollback) ilkesidir.

· Consistency (Tutarlılık): Bir transaction’da bir kayıt üzerinde işlem yapılıyorken, transaction başarılı şekilde sonuçlanana kadar, sonradan gelen istekler için istemcilere verinin bir önceki halinin sunulmasını temel alan prensiptir. Transaction başarılı şekilde sonuçlandıktan sonra verinin güncel hali sunulmaktadır.

· Isolation (Yalıtım): Bir transaction çalışmaya başladıktan sonra, aynı verilere erişmek isteyen başka işlemler geldiğinde, ilk transaction tamamlanana kadar ilgili veri setinin kitlenmesidir. İlk transaction sonuçlandıktan sonra, gelen diğer transaction işlemi çalıştırılabilir. Bu senaryodaki bağlılıklar ve kilitlenmeleri dikkatli şekilde yönetmek deadlock durumunun oluşmasını önlemek açısından önemlidir.

· Durability (Dayanıklılık): Bir transaction tamamlandıktan sonra, sistemde yaşanabilecek güç kesintisi, çökme veya arıza gibi durumlarda verinin kalıcı olarak; kararlı, dayanıklı ve sürekliliği olan sabit disk gibi bir ortamda saklanması transaction bütünlüğünü korumak için gerekli ilkelerden biridir.

Bu ilkelere bağlı kalınarak geliştirilen sistemlerdeki beklenmeyen hata durumlarında, yarıda kalan işlemler transaction’ın başından itibaren geri alınarak, verinin tutarlı versiyona döndürülmesi sağlanabilir. Aynı veri seti üzerinde çalışan birden çok transaction için işlemler doğru öncelik sırası ile yapılabilir.

Böylece büyük ve birden çok istemciye hizmet veren sistemlerde anlık yaşanabilecek kesinti, arıza vb. sorunlarda şirketlerin ve müşterilerin yaşayacağı veri kaybı, itibar kaybı, finansal kayıplar gibi sayısız problemlerin de önüne geçilmiş olur.

Veri bütünlüğünü korumak ve kayıpları minimize etmek için Transaction Yönetim İlkelerine bağlı süreçler geliştirilmedir. İyi kurgulanmış bir transaction yapısı veriler için bir nevi güvenlik sigortasıdır denilebilir.

Bir sonraki yazıda görüşmek üzere…

Kaynakça:

1) https://learn.microsoft.com/en-us/windows/win32/ktm/what-is-a-transaction

2) https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/transactions.html#GUID-B97790CB-DF82-442D-B9D5-50CCE6BF9FBD

3) https://acikders.ankara.edu.tr/pluginfile.php/166562/mod_resource/content/0/VT2-Hafta-1.pdf#:~:text=Transaction%20her%20iki%20i%C5%9Flemi%20de,kal%C4%B1c%C4%B1(commit)%20hale%20getirecektir.

4) https://en.wikipedia.org/wiki/Durability_(database_systems)

5) https://medium.com/devopsturkiye/microservice-mimarilerde-transaction-y%C3%B6netimi-nas%C4%B1l-yap%C4%B1l%C4%B1r-228317e248ed

6) https://learn.microsoft.com/en-us/sql/t-sql/language-elements/begin-transaction-transact-sql?view=sql-server-ver16

7) https://learn.microsoft.com/en-us/sql/t-sql/language-elements/rollback-work-transact-sql?view=sql-server-ver16

--

--