EBP 242 Veri Tabanı II
TRANSACTION İŞLEMLERİNİN GENEL YAPISI
ÖĞR. GÖR. DR. YUNUS KÖKVER
Transaction İşlemlerinin Genel Yapısı
TRANSACTION
BAŞLA
SQL
İfadeleri
ROLLBACK
COMMIT
Hata Varsa
Hata Yoksa
SAVEPOINT
Uzun transaction işlemleri için transaction kendi içerisinde savepoint adı verilen küçük bölümlere
ayrılabilir. Her bir bölüm commitile veritabanına transfer edilebilir veya rollbackile yapılan
değişiklik geri alınabilir.
MSSQL içinSAVE TRANSACTION savepoint_ismi
ORACLE içinSAVEPOINT savepoint_ismi
MySQLiçinSAVEPOINT savepoint_ismi
Oluşturulan Savepoint’inKullanımı
Oluşturulan savepointlerikullanmak için COMMIT ve ROLLBACK ifadeleri kullanılır.
Oluşturulan savepoint veritabanına aktarılacaksa COMMIT ile, geri alınacaksa ROLLBACK ile
birlikte kullanılır.
MSSQL Server için;
COMMIT TRANSACTION savepoint_ismi
ROLLBACK TRANSACTION savepoint_ismi
Oracleve MySQLiçin;
COMMIT savepoint_ismi
ROLLBACK TO savepoint_ismi
Transaction ve Savepoint İşleminin Örnek Çalışma Şekli
TRANSACTION BAŞLA
SQL
İfadeleri
Hata Varsa
HataYoksa
SAVEPOINT A
ROLLBACK A
SAVEPOINT B
SQL
İfadeleri
HataYoksa
COMMIT
Hata Varsa
ROLLBACK B
Transactionişlemibaşladığındaherhangibirdeğişiklik
yapmadanöncekidurumuAnoktasıolarakbelirlenmiştir.
DahasonraistenilenSQLifadelerikullanılırveherhangibirhata
oluşursaverilerAnoktasındakidurumageridöner,hata
oluşmazsayapılanilkdeğişikliklerideiçerenveridurumuB
noktasıolarakbelirlenir.
İkincibölümdekiSQLifadelerikullanılırveherhangibirhata
oluşursabundanöncekidurumolanBnoktasınageridönülür.
Yaniilkbölümdeyapılandeğişikliklergeçerliliğinikorumuşolur.
Eğerhataolmazsayapılandeğişikliklerintamamıveritabanına
aktarılır.
Örnek
KITAPLARtablosuiçinörnekbirtransactionişlemiverilmiştir.Verilenkodlariçerisindeki
ROLLBACKveROLLBACKsavepointişlemlerihatadenetimiyapılmadangerçekleştirilmiştir.
İlerleyenkonulardahatadenetimliörneklerverilecektir.
BEGIN TRANSACTION
SAVE TRANSACTION deneme
UPDATE kitaplar SET s_sayisi=0
SELECT * FROM KİTAPLAR
ROLLBACK TRANSACTION deneme
SELECT * FROM KİTAPLAR
UPDATE KİTAPLAR SET kitapadi='Deneme'
SELECT * FROM KİTAPLAR
ROLLBACK
SELECT * FROM KİTAPLAR
Tablonun İlk Durumu
1. SELECT İfadesinin Sonucu
2.SELECT ifadesinin sonucu
3.SELECT ifadesinin sonucu
4.SELECT ifadesinin sonucu(tablonun ilk durumu)
Transaction’larıntek başlarına kullanımı çok fazla avantaj sağlamamaktadır.
StoredProcedureprogramlama ifadeleri(T-SQL, PL/SQL) ile kullanılarak çok daha verimli hale
getirilebilir, hata denetimleri gerçekleştirilebilir.
İlerleyen slaytlarda transactionlarve hata denetimi ayrıca incelenecektir.
Ders Notu Hazırlanırken Kullanılan Kaynaklar
Ramakrishnan, R. and GehrkeJ., Database Management Systems (Third Edition), WCB/McGraw
Hill, ISBN: 0-07-232206-3
VeritabanıYönetim Sistemleri II (2019)., ÖZSEVEN TURGUT, Ekin Yayınevi, Sayfa Sayısı:
351, Türkçe(Ders Kitabı), (Yayın No: 32619)