# Transaction (Veritabanı İşlemi)

Adres: https://softwaredictionary.org/tr/terimler/transaction
Kategori: Veritabanları
Son güncelleme: 2026-09-29
Türkçe karşılığı: işlem
Okunuşu: trenzekşın

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.

## Önemli noktalar

- Transaction, işlemleri hep ya da hiç şeklinde tek bir birimde toplar.
- `COMMIT` değişiklikleri kaydeder; `ROLLBACK` geri 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: Transaction içinde bir banka havalesi

```sql
-- 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 applied
```

## Sı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.

## Kaynaklar

- [PostgreSQL documentation: Transactions](https://www.postgresql.org/docs/current/tutorial-transactions.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
