Transaction.

Slides:



Advertisements
Benzer bir sunumlar
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
Advertisements

III.Oturum: SQL ile Verileri İşlemek
SQL (Structured Query Language)
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
SQL’e Giriş.
VERİ TABANI II- 4.HAFTA ALT SORGULAR Türetilmiş ve İLİntİlİ tablolar
SQL de Değişken Tanımlama
SQL Komutlar 5 Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
VERİ TABANI ve YÖNETİMİ
Alt Sorgular Veritabanı 2.
Veri Tabanı Yönetim Sistemleri
Tek Tablo İçinde Sorgulamalar
Fonksiyonlar Hafta 4.
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
T-SQL-2.Konu Akış Kontrolleri.
VERİ TABANI ve YÖNETİMİ
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
SQL (STRUCTURED QUERY LANGUAGE)
SQL ve JavaScript Akademik Bilişim 2003 Adana, Şubat 2003 Fırat Tiryaki.
Bilgisayar Mühendisliği Bölümü
1.  Bazı durumlarda, birden fazla işlem bir bütünün parçasıdır. Bu işlemlerden biri bile gerçekleşmese bütün işlemler anlamsız kalabilir  Bu türden.
Veritabanı Temel Kavramlar ve
VERİ TABANI ve YÖNETİMİ
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
SQL Dili ve MySQL Komutları
SQL’e Giriş ve SELECT Komutu
SQL de Değişken Tanımlama
ÇOKLU TABLOLAR.
VeriTabanı Uygulama.
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
RAISE RECORD/CURSOR TRIGGER
Veritabanı Yedekleme (BACKUP)
Bilgisayar Mühendisliği Bölümü
GRANT RESOURCE TO ayse; GRANT CONNECT TO ayse;
SQL’ e Giriş Uzm. Murat YAZICI.
Bölüm 4: İleri SQL.
Bölüm 8: SQL’de Yetkilendirmeler (Veri Kontrol Dili – DCL)
SİSTEM VERİTABANLARI. Sistem veritabanlarını tanıma. Kendi Login’imizi oluşturma Neler İşleyeceğiz?
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
GÜVENL İ K. Sunucu Seviyesinde Güvenlik Master Veritabanı (Kullanıcının gerekli yetkileri var mı?) Authentication Mod ◦ Windows Authentication Mod  Varsayılan.
Yeni Veritabanı Oluşturma
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
Sunum Planı 2 Veri Temelleri Veri & Bilgi Dijital Veri & Sayısallaştırma Dijital Veri Saklama Veritabanı Veri Saklama VTYS SQL Veri Yönetimi Veri Ambarı.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
VIEW lerle çalışmak 11.BÖLÜM.
Transaction ve Örnekler
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
TETİKLEYİCİ ( Trigger)
14.DERS Örnekler, Sorular BUKET DOĞAN.
5. HAFTA Öğr. Gör. Yunus KÖKVER
SQL SERVER STORED PROCEDURE
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
Sorgu / dml / ddl komutları
SQL (STRUCTURED QUERY LANGUAGE)
SQL Server - Triggers.
SQL Server - Stored Procedures
Transaction.
SQL VIEW.
Sunum transkripti:

Transaction

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.

Ö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

Ö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. )

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.

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.

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.

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.

Ö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.

Örnek: begin transaction update kitaplar set s_sayisi=0 Tablonun ilk hali ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 1.1.2010 300 312 Programlama 2.1.2010 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 1.1.2010 312 Programlama 2.1.2010 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 deneme 1.1.2010 300 312 2.1.2010 200 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 1.1.2010 300 312 Programlama 2.1.2010 200

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

Ö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.

Örnek : Tablonun ilk hali ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 1.1.2010 300 312 Programlama 2.1.2010 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 1.1.2010 312 Programlama 2.1.2010 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 1.1.2010 300 312 Programlama 2.1.2010 200 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 deneme 1.1.2010 300 312 2.1.2010 200 ISBN Kitap_adi Yayin_tarihi S_sayisi 123 Algoritma 1.1.2010 300 312 Programlama 2.1.2010 200

Ö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.