Transaction
Veritabanı İşlemi
- Türkçe karşılığı
- işlem
- Okunuşu
- trenzekşın
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
Kısaca
Transaction, tek bir bütün olarak başarılı ya da başarısız olan veritabanı işlemleri grubudur; böylece veri asla yarım kalmış, tutarsız bir durumda bırakılmaz.
Veritabanı transaction'ı (işlemi) nedir?
Transaction, birkaç veritabanı işlemini bir araya getirir ve bunların hep ya da hiç şeklinde tek bir eylem olarak ele alınmasını sağlar. Tüm adımlar başarılı olursa değişiklikler COMMIT ile kaydedilir; bir şeyler ters giderse ROLLBACK hepsini, sanki transaction hiç olmamış gibi geri alır.
Klasik örnek banka havalesidir: bir hesaptan para düşülmesi ve diğerine eklenmesi ya ikisi birden gerçekleşmeli ya da hiçbiri. Transaction olmadan, iki adım arasındaki bir çökme paranın ortadan kaybolmasına yol açabilir. Transaction ile veritabanı, iki güncellemenin birlikte uygulanacağını garanti eder.
Güvenilir transaction'lar ACID özelliklerini izler. Atomiklik (atomicity) hep ya da hiç demektir; tutarlılık (consistency) verinin her zaman geçerli bir durumdan diğerine geçmesi demektir; yalıtım (isolation) eşzamanlı transaction'ların birbirlerinin bitmemiş işini görmemesi demektir; dayanıklılık (durability) ise onaylanmış değişikliklerin çökmelerden ve elektrik kesintilerinden sağ çıkması demektir. Veritabanları, katılığı performansla takas eden Read Committed ve Serializable gibi farklı yalıtım düzeyleri sunar.
Veritabanı transaction'ı, bir satın alma gibi iş süreci transaction'ından farklıdır; ancak biri çoğu zaman diğerini kaydetmek için kullanılır. Transaction'lar, tek bir işlemin birkaç veritabanına yayıldığı mikroservisler gibi dağıtık sistemlerde de zorlaşır; orada ekipler çoğu zaman tek bir ACID transaction yerine, telafi adımları içeren bir dizi yerel transaction olan saga gibi örüntüler kullanır.
Bir bakışta
Önemli noktalar
- Transaction, işlemleri hep ya da hiç şeklinde tek bir birimde toplar.
COMMITdeğişiklikleri kaydeder;ROLLBACKgeri alır.- ACID; atomiklik, tutarlılık, yalıtım ve dayanıklılığın kısaltmasıdır.
- Yalıtım düzeyleri, eşzamanlı transaction'ların birbirini nasıl etkileyeceğini belirler.
Örnek
-- Transfer $100 from account 1 to account 2
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
-- Save both changes together
COMMIT;
-- If something had failed, you would run ROLLBACK instead,
-- and neither update would be appliedSık sorulan sorular
Veritabanlarında ACID ne demektir?
ACID; atomiklik, tutarlılık, yalıtım ve dayanıklılığın kısaltmasıdır. Hatalar, çökmeler ya da çok sayıda eşzamanlı kullanıcı olsa bile veritabanı transaction'larını güvenilir tutan dört garantidir.
COMMIT ile ROLLBACK arasındaki fark nedir?
COMMIT, mevcut transaction'da yapılan tüm değişiklikleri kalıcı olarak kaydeder; ROLLBACK ise onları atar ve veriyi transaction başlamadan önceki haline döndürür.
NoSQL veritabanları transaction'ları destekler mi?
Birçoğu destekler. Örneğin MongoDB çok dokümanlı ACID transaction'ları destekler, ancak garantiler ve performans veritabanına göre değişir; bu yüzden kullandığınız sistemin belgelerine bakın.
İlgili sayfalar
- VeritabanıVeritabanları, s. 37Veritabanı, bilgisayarda düzenli biçimde saklanan ve uygulamaların verimlice kaydedip arayıp güncelleyebildiği, bir yazılımla yönetilen veri topluluğudur.
- SQLVeritabanları, s. 29SQL, ilişkisel veritabanlarıyla çalışmanın standart dilidir; tablo oluşturmak ve içindeki veriyi eklemek, sorgulamak, güncellemek ve silmek için kullanılır.
- NoSQLVeritabanları, s. 21NoSQL, veriyi ilişkisel tablolar yerine doküman, anahtar-değer çifti, geniş sütun ya da çizge gibi başka modellerde saklayan veritabanı ailesidir.
- Veritabanı İndeksiVeritabanları, s. 38Veritabanı indeksi, tüm tabloyu taramadan satırları hızla bulmayı sağlayan, bir kitabın sonundaki dizine benzeyen bir veri yapısıdır.
- MikroservislerYazılım Mimarisi, s. 24Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
- OLTPVeritabanları, s. 23OLTP (online transaction processing), sipariş vermek gibi günlük işlemlerin çok sayıda küçük, hızlı okuma ve yazması için kurulmuş veritabanlarını anlatır.
- Saga DeseniYazılım Mimarisi, s. 34Saga deseni, birkaç servise yayılan bir işlemi yerel adımlar dizisi olarak çalıştırır ve bir adım başarısız olursa tamamlananları telafi eylemleriyle geri alır.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin