Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Transaction.

Benzer bir sunumlar


... konulu sunumlar: "Transaction."— Sunum transkripti:

1 Transaction

2 Transaction Bir veya daha fazla SQL ifadesinden meydana gelen tek bir işlemdir. SQL ifadelerin tamamı bir bütün olarak düşünülür ve daha küçük iş parçalarına ayrılamaz. Bir transaction içerdiği SQL ifadelerini tamamını gerçekleştirir veya hiçbirini gerçekleştirmez. İşlemlerin tamamı gerçekleşmediği sürece işlemlerin hiçbiri gerçekleşmemiş sayılır.

3 Örnek Bir banka örneği ile transaction yapısını açıklayalım. Bir müşteri kendi hesabından başka bir hesaba 1500 TL para transferi yapıyor. Bu işlemin iki adımı vardır. İlk adım kişinin hesabından transfer edilcek para, ikinci adım ise diğer kişinin hesabına transfer edilecek olan tutarın eklenmesidir. Bu işlemleri gerçekleştircek SQL ifadeleri: update hesaplar set bakiye=bakiye-1500 where hesap_no=1453 update hesaplar set bakiye=bakiye+1500 where hesap_no=1454

4 Örnek(Devamı) Bu işlemlerden birincisi gerçekleştikten sonra herhangi bir sorundan dolayı ikinci işlem gerçekleşmezse hesapla ilgili ciddi sorunlar yaşanabilir. Bu tür sorunları engellemek için transaction yapıları kullanılır.Transaction her iki işlemide tek bir işlem olarak ele alacağı için herhangi birisi gerçekleşmediği zaman diğer gerçekleşen işlemleride yok sayacaktır. Yani gerçekleşen işlem geri alınacaktır(Bu işlem rollback olarak adlandırılır.). Eğer işlemlerin tamamı sorunsuz bir şekilde gerçekleşirse tüm işlemleri kalıcı hale getirecektir. (Bu işlem commit olarak adlandırılır. )

5 Transaction Transaction yapıları transaction logları adı verilen yöntemi kullanılır. Bu yöntemle bir transaction başladıktan sonra SQL ifadeleri için kullanılan verileri tutan sayfalar diskten hafızaya aktarılır ve SQL ifadesiyle istenilen değişiklikler hafıza üzerindeki bilgilerde yapılır. Daha sonra yapılan değişikliklerin aynısını içeren transaction logları diske yazılır. Transaction işlemi başarılı ise COMMIT ifadesi ile değişiklikler kalıcı hale getirilir. Eğer işlemler esnasında bir sorun olmuşsa ROLLBACK ifadesi ile veriler ilk baştaki değişiklik yapılmış haline geri döner.

6 Transaction hazırlanırken dikkat edilcek hususlar :
Transaction içerisindeki SQL ifadeleri veriler üzerinde değişiklik yapabileceği için veritabanı yöneticisi kullanıcılar için gerekli izinleri vermelidir. Transaction işlemi veri veya veritabanı nesneleri üzerinde değişiklik yapacak SQL ifadeleri içerebilir. (INSERT, UPDATE, DELETE, CREATE, ALTER, DROP) Bir veritabanı yönetim sisteminin veri kurtarma mekanizması transaction'lara bağlıdır. Bir VTYS başarısızlık sonrasında verileri geri alacağı zaman tüm transaction'ların veritabanına aktarılıp aktarılmadığını tespit etmek için transaction loglarını kontrol eder.

7 Transaction hazırlanırken dikkat edilcek hususlar :
VTYS yedekleme ve geri yükleme işlemlerini transaction logları üzerinden gerçekleştirir. Çeşitli nedenlerden dolayı veritabanını ve ona ait transaction logları ayrı bir disk üzerinden tutulmalıdır.

8 Transaction Başlatma ve Bitirme
Transaction ya hep ya hiç mantığıyla çalıştığı için başlangıç ve bitiş noktaları belirlenmelidir. Transaction BEGIN TRANSACTION ifadesiyle başlar ve COMMIT veya ROLLBACK ifadesiyle son bulur.

9 Örnek: Kütüphane veritabanı içinde bulunan kitaplar tablosu için örnek bir transaction işlemi gerçekleştireceğiz. Update ifadesi kitapların tamamının sayfa sayısını sıfır(0) yapacaktır. Daha sonra SELECT ile tablonun son durumunu listeleyecektir. Sonraki slaytta her adımdan sonra tablodaki değişimler gösterilmiştir.

10 Örnek: begin transaction update kitaplar set s_sayisi=0
Tablonun ilk hali ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 300 312 Programlama 200 begin transaction update kitaplar set s_sayisi=0 update kitaplar set kitap_adi='deneme' select * from kitaplar rollback ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 312 Programlama ISBN Kitap_adi Yayin_tarihi S_sayisi 123 deneme 300 312 200 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 300 312 Programlama 200

11 Save Transaction Uzun transaction işlemleri için transaction kendi içerisinde savepoint adı verilen küçük parçalara ayrılır. Her bir bölüm commit ile veritabanına aktarılabilir veya rollback ile işlem geri alınabilir. Kullanım şu şekildedir. Save transaction savepoint_ismi (sql cümleleri) Commit (yada) rollback transaction savepoint_ismi

12 Örnek : Kitaplar tablosu için aşağıda örnek bir transaction işlemi verilmiştir. Verilen kodlar içerisinde ROLLBACK ve ROLLBACK savepoint işlemlerine örnek teşkil etmektedir.

13 Örnek : Tablonun ilk hali ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 300 312 Programlama 200 begin transaction save transaction deneme update kitaplar set s_sayisi=0 select * from kitaplar rollback transaction deneme update kitaplar set kitap_adi='deneme' rollback ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 312 Programlama ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 300 312 Programlama 200 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 deneme 300 312 200 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 300 312 Programlama 200

14 Örnek : Kodlar incelendiğinde transaction işlemi başladığında değişiklik yapılmamış durumu deneme noktası olarak oluşturulmuştur. Daha sonra kitapların sayfa sayısı sıfır yapılmıştır. Sonra rolback savepoint deneme komut satırı ile yapılan değişiklikler iptal edilmiş olup sayfa sayısı bilgisi ilk haline gelmiştir. Sonra kitap isimleri deneme olarak değiştirilmiştir. Sonra rollback satırı bu işlemde geri alınmıştır. Önceki slaytta her adımdan sonra tablodaki değişimler gösterilmiştir.


"Transaction." indir ppt

Benzer bir sunumlar


Google Reklamları