micrososft SQL Database management query function

htutumlu 0 views 19 slides Sep 28, 2025
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

sql database


Slide Content

EBP 242 Veri Tabanı II
TRANSACTION
ÖĞR. GÖR. DR. YUNUS KÖKVER

Transaction İşlemleri
BirtransactionbirveyadahafazlaSQLifadesindenmeydanagelentekbirişlemdir.
SQLifadelerinintamamıbirbütünolarakdüşünülürvedahaküçükişparçalarınaayrılamaz.
Özellikleardıardınagelenvebirbiriylebağımlıbirdenfazlaişlemintekbirişlemolarak
kullanılmasınısağlar.

Transaction İşlemleri
BirtransactioniçerdiğiSQLifadelerininyatamamınıgerçekleştirir,yadahiçbirini
gerçekleştiremez.
SQLifadelerinibirbölümününuygulanmasıgibibirişlemsözkonusuolamaz.
İşlemlerintamamıgerçekleşmediğisüreceişlemlerinhiçbirigerçekleşmemişsayılır.

Örnek Bir Transaction İşlemi
Birmüşterikendihesabındanbaşkabirhesaba1500TLparatransferigerçekleştiriyor.
Öncekişininhesabındantransferedilecekolan1500TLtutardüşülmelidir.
Sonradiğerkişininhesabınatransferedilecekolan1500TLtutareklenmelidir.

UPDATE hesaplar SET bakiye=bakiye-1500
WHERE hesap_no=1453
UPDATE hesaplar SET bakiye=bakiye+1500
WHERE hesap_no=1454

Buişlemlerdenbirincisigerçekleştiktensonraherhangibirsorundandolayıİkinciişlem
gerçekleşmezsehesaplarlailgiliciddisorunlaryaşanabilir.
Göndereninhesabından1500TLtutardüşeramaalıcınınhesabınabuparaaktarılamaz.
Butürsorunlarıönlemekiçintransactionyapılarıkullanılır.

Transactionherikiişlemidetekbirişlemolarakelealacağıiçinherhangibirisigerçekleşmediği
zamandiğergerçekleşenişlemlerideyoksayacaktır.
Yanigerçekleşenişlemigerialacaktır(rollback).
Eğerişlemlerintamamısorunsuzbirşekildegerçekleşirse,tümİşlemlerikalıcı(commit)hale
getirecektir.

Transactionyapılarıtransactionloglarıadıverilenyöntemikullanır.
Buyöntemde,birtransactionbaşladıktansonraSQLifadeleriiçinkullanılanverileritutansayfalar
disktenhafızayaaktarılırveSQLifadesiileistenilendeğişikliklerhafızaüzerindekibilgilerde
yapılır.
Dahasonrayapılandeğişikliklerinaynısınıiçerentransactionloglarıdiskeyazılır.

İlgilitransactionsorunsuzbirşekildegerçekleşirsedisküzerindekiverilerdegüncellenirve
transactionişlemibiter.
TransactionişlemibaşarılıiseCOMMITifadesiiledeğişikliklerkalıcıhalegetirilir.
EğerişlemleresnasındabirsorunoluşmuşsaROLLBACKifadesiileverilerilkbaştakideğişiklik
yapılmamışhalinegeridöner.

Bir Transaction İşlemini Gerçekleştirmek
Transactioniçinkullanılanbazıifadelerveaçıklamaları:
Commit:Oluşturulantransactionişlemibaşarılıbirşekildegerçekleştiğindeyapılan
değişikliklerinveritabanınakalıcıolarakaktarılmasıdır.
Rollback:TransactioniçerisindekiSQLifadelerindenherhangibirisininyapmışolduğu
değişikliklerigerialmaktır.TransactionişlemiiçerisindekiSQLifadelerindenherhangibirisi
işleviniyerinegetiremediğizamanrollbackişlemiileverilerilkhalinegerigetirilir.

Transaction Log: Transaction logdosyası, transaction ile bir veritabanındameydana gelen tüm
değişikliklerin sıralı olarak kaydedildiği dosyadır. Her transaction işleminde, verileri üzerinde
değişiklik yapıldığında ve transaction tarafından yapılan değişikliklere ait bilgiler tutulduğunda
transaction logkayıtları yapılır.

Transaction Hazırlarken Dikkat Edilecek Noktalar
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ı transactionlarabağlıdır.
Bir VTYS başarısızlık sonrasında verileri geri alacağı zaman tüm transactionlarınveritabanına
aktarılıp aktarılmadığını tespit etmek için transaction loglarını kontrol eder. Eğer aktarılmamış
transaction bulursa, onları loglar üzerinden geri veritabanına aktarır.

Transaction Hazırlarken Dikkat Edilecek Noktalar
VTYS yedekleme ve geri yükleme işlemlerini transaction logları üzerinden gerçekleştirir.
Yedekleme birimi düzenli olarak veritabanınıve transaction logları yedekleme diskine yedekler.
Herhangi bir sebepten dolayı mevcut disk zarar gördüğünde veri ve transaction loglar okunamaz
hale gelebilir. Bu durumda yedekleme biriminden yardım alınacaktır. Yedekleme biriminden
veritabanınınçalışan son hali alınabilir veya transaction logları üzerinden de veritabanınınson
durumuna geri dönülebilir. Bu sayede mevcut diskin zarar görmeden önceki son haline geri
dönülmüş olacaktır.
Çeşitli nedenlerden dolayı veritabanınıve ona ait transaction logları ayrı bir disk üzerinde
tutulmalıdır.

Transaction ya hep ya hiç mantığıyla çalıştığı için başlangıç ve bitiş noktaları belirlenmelidir.
Transaction ilk SQL ifadesi veya START(BEGIN) TRANSACTION ifadesi ile başlar ve
COMMIT veya ROLLBACK ifadesi ile son bulur.
◦MSSQL için BEGIN TRANSACTION ile başlar,
◦ORACLE içinÖzel bir ifade yoktur. İlk SQL ifadesi ile başlar,
◦MySQLiçin START TRANSACTION ifadesi ile başlar.

Örnek
Örnek kütüphane veritabanıiçerisinde bulunan KITAPLAR tablosu ve içeriği verilmiştir.

BEGIN TRANSACTION
UPDATE kitaplar SET s_sayisi=0
UPDATE kitaplar SET kitap_adi='Deneme'
SELECT * FROM kitaplar
ROLLBACK
Burada dikkat edilirse, transaction ROLLBACK ile son bulmuştur. Bunun anlamı yapılan tüm
değişiklikleri iptal et anlamındadır.

ROLLBACK ifadesi işletilmeden önceki SELECT ifadesinin sonucu verilmiştir.

ROLLBACK ifadesinden sonra KITAPLAR tablosunu tekrar listelediğimizde tablo üzerinde
herhangi bir değişiklik olmadığı görülecektir.
◦SELECT * FROM KITAPLAR
Eğer transaction işlemi ROLLBACK yerine COMMIT ile bitirilirse yapılan değişikliklerin
tamamı kalıcı olarak veritabanına aktarılacaktır.

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)
Tags