VERİ TABANI ve YÖNETİMİ

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Saydığımızda 15 tane sayı olduğunu görürüz.
BİLGİ İŞLEM ŞUBE MÜDÜRLÜĞÜ
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
Öğr.Gör. Dr. Şirin KARADENİZ
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
Problemi Çözme Adımları
E-SINAV Sistemi Halil Özmen
Microsoft Danışman Öğrenci
Veri İletiminde Hata Kontrol Yöntemleri
4 Kare Problemi 4 Kare Problemi Hazır mısın? B A Bu şekle iyi bak
BELGELEME Ian Sommerville, “Software Documentation”,
BPR151 ALGORİTMA VE PROGRAMLAMA - I
Verimli Ders Çalışma Teknikleri.
SQL Server da Veritabanı Yönetiminin Otomatikleştirilmesi
VERİ TABANI ve YÖNETİMİ
Üsküdar Halk Eğitim Merkezi Eczane Çalışanlarının Eğitimi
Kaliteli Teknik Resmin Üç Temel Niteliği:
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
VERİ TABANI ve YÖNETİMİ
Transaction.
ARALARINDA ASAL SAYILAR
ZAMBAK 1 SORU BANKASI UĞUR CESUR 1 ZAMBAK 1 SORU BANKASI ÖZEL SORULARI Hazırlayan: UĞUR CESUR.
Gün Kitabın Adı ve Yazarı Okuduğu sayfa sayısı
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.
Problem Çözme Ve Problem Çözme Stratejileri Ödevi Cihan GÖÇ
KISITLAMALAR (Constraints)
TÜRKİYE İSTATİSTİK KURUMU İzmir Bölge Müdürlüğü 1/25.
Formül Hazırlama ve Kullanma
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Operatörler ve Denetim Yapıları
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
Tam sayılarda bölme ve çarpma işlemi
TEFBİSTE KARŞILAŞILAN SORUNLAR VE ÇÖZÜMLER
Strateji Geliştirme Daire Başkanlığı
TEST – 1.
İŞLETİM SİSTEMLERİ WINDOWS 98 KURULUMU VE ÖZELLİKLERİ
VERİ TABANI VE YÖNETİM SİSTEMLERİ
ÖĞRETİCİ PROGRAMLAR.
HABTEKUS' HABTEKUS'08 3.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
ADRES DEFTERİMDE NELER VAR?. Arkadaşlarınızın, akrabalarınızın ve tanıdığınız diğer kişilerin adresleri, telefon numaraları, e-posta adresleri vb. bilgilerini.
Akış Kontrol Mekanizmaları
Dotnetfx (Microsoft.net framework 2.0 kurulumu) Bilnex - Ticari ve Muhasebe Paket Programları1.
Ek-2 Örnekler.
VERİTABANI ve YÖNETİMİ
Database Mirroring Database Mirroring (DM), veritabanının çökme veya süreklili ğ inin aksaması durumlarında ikinci bir kopya üzerinden işlemlere devam.
2014 SAYIM VE YILSONU İŞLEMLERİ
Chapter 11: Exception Handling
Windows XP Konu: Denetim Masası Windows 8 Windows XP Windows 7.
SÜLEYMAN DEMİREL ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
VERİ TABANI ve YÖNETİMİ
İSMİN HALLERİ.
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
Veritabanı Yedekleme (BACKUP)
Emlak Takip Veri Tabanı
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Microsoft Office Access
Veritabanı Yönetim Sistemleri - I
İnsan Kaynakları Bilgi Sistemleri
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
Transaction ve Örnekler
Bilgisayar Bilimi Problem Çözme Süreci-2.
Veri Tabanı Temel Kavramlar.
Transaction.
Sunum transkripti:

VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞLEMLER (TRANSACTIONS) BİL 301 - Veri Tabanı ve Yönetimi BÖLÜM -11- İŞLEMLER (TRANSACTIONS)

Giriş Transaction Nedir? Transaction - Temel Bilgiler 3 BİL 301 - Veri Tabanı ve Yönetimi Giriş Transaction Nedir? Transaction - Temel Bilgiler Örnek: Transaction Transaction Kuralları Transaction Bloğunun Çalışması Transaction İşlem Blokları Server ve Transaction Bu hafta veritabanı yönetim sistemleri için son derece önemli olan transaction’lar konusunu ele alacağız. Transaction‘lar bir veritabanına verilerin ya tamamının kaydedilmesini yada hiçbirinin kaydedilmemesini sağlamaktadır. 3

4 BİL 301 - Veri Tabanı ve Yönetimi 11.1. Transaction Nedir? Transaction veri tabanındaki verilere erişen ve çoğunlukla bu veriler üzerinde değişiklikler yapan bir program kesimidir. Birçok kullanıcının eşzamanlı olarak işlem yaptığı büyük veri tabanı sistemlerinde daha çok kullanılmaktadır. Bir işlem büyük bir bütünün parçası olabilir. Bu işlemlerden herhangi bir tanesinin gerçekleşmemesi bütün işlemleri anlamsız kılmaktadır. Böyle bir durumda bütün işlemler tek bir işlem gibi ele alınmalıdır. Bu parçalanamaz işlemlerin oluşturduğu yeni tek işleme «transaction» adı verilmektedir. BİRİNCİ MADDEDEN SONRA: Transaction yönetim sistemleri (transaction processing systems) banka, otel rezervasyon, süpermarket gibi birçok kullanıcının eşzamanlı olarak işlem yaptığı büyük veri tabanı sistemleri için geçerlidir. Bu sistemlerin yüksek performansla ve doğrulukla çalışması son derece önemlidir. ÜÇÜNCÜ MADDE İÇİN: Bazı durumlarda yapılan bir işlem büyük bir bütünün parçasıdır. Bu işlemlerden herhangi bir tanesinin gerçekleşmemesi bütün işlemleri anlamsız kılmaktadır. Bu durumda bürün işlemler tek bir işlem gibi ele alınmalıdır. Bu parçalanamaz işlemlerin oluşturduğu yeni tek işleme transaction adı verilmektedir. Bir diğer değişle transaction, daha küçük parçacıklara ayrılamayan işlem bloklarıdır. 4

11.2. Transaction - Temel Bilgiler 5 BİL 301 - Veri Tabanı ve Yönetimi 11.2. Transaction - Temel Bilgiler Önce transaction bloğu çalıştırılır. Transaction bloğunun çalıştırılması ile bütün işlemlerin bir bütünlük arz ettiği ve her an tamamının geçersiz sayılabileceği tanımlanmış olur. Bütün işlemler transaction log’ ların da tutulur ve herhangi bir problemde bu log’ lar dikkate alınır. Transaction bloğu SQL Server tarafından otomatik olarak veya kullanıcı tarafından «BEGIN TRANSACTION» komutu ile başlatılabilir. BEGIN TRANSACTION yerine BEGIN TRAN komutu da kullanılabilmektedir. 5

11.2. Transaction - Temel Bilgiler (devam) 6 BİL 301 - Veri Tabanı ve Yönetimi 11.2. Transaction - Temel Bilgiler (devam) Transaction bloğunda yapılan her işlemin başarılı olup olmadığı, her biten işlem sonunda kontrol edilir. Eğer başarılı olunmadıysa yapılan işlem geri alınır. Geri alma işlemi «ROLLBACK» komutu ile gerçekleştirilir. Başarılı olunduysa bir sonraki işleme geçilir. Bu işlemler kullanıcı tarafından ve SQL Server tarafından gerçekleştirilebilir. 6

11.2. Transaction - Temel Bilgiler (devam) 7 BİL 301 - Veri Tabanı ve Yönetimi 11.2. Transaction - Temel Bilgiler (devam) Tüm işlemler tamamlandığında «COMMIT» işlemi ile tüm veriler yeni hali ile veritabanına kaydedilir. Eğer işlem başarısız olursa «ROLLBACK» komutu ile bütün işlemler tekrar en başa alınır ve yapılacak olan işlem veritabanına yansıtılmaz. 7

8 BİL 301 - Veri Tabanı ve Yönetimi 11.3. Örnek: Transaction Bir banka sistemini ele alarak bir havale işlemini gerçekleştirelim. A kullanıcısı B kullanıcısına havale yaptığında; A kullanıcısının hesabından havale edilecek olan miktar düşülür. Ardından B kullanıcısının hesabına bu havale miktarı eklenir ve havale işlemi gerçekleşmiş olur. Ancak her zaman bu şartlar sağlanamamış olabilmektedir. Örneğin, A kullanıcısı para havale ettiğinde elektrikler kesilebilir yada programda bir hata meydana gelebilir. Bu gibi bir durumda neler olabilir? 8

11.4. Transaction Kuralları 9 BİL 301 - Veri Tabanı ve Yönetimi 11.4. Transaction Kuralları Bir veritabanı veriler üzerinde değişiklik yaparken dört kuralı sağlamak zorundadır. Sağlanması gereken bu dört kural aşağıdaki gibidir. Bölünmezlik (Atomicity) Tutarlılık (Consistency) İzolasyon (Isolation) Dayanıklılık (Durability) 9

11.4.1. Bölünmezlik (Atomicity) 10 BİL 301 - Veri Tabanı ve Yönetimi 11.4.1. Bölünmezlik (Atomicity) Bir transaction bloğu asla yarım kalamaz. Ya hepsi gerçekleşmiş sayılır yada hiçbir işlem gerçekleşmemiş kabul edilerek başa dönülür. Başka bir ifade ile transaction, daha küçük parçalara ayrılamayan işlem birimi olarak ele alınır. 10

11.4.2. Tutarlılık (Consistency) BİL 301 - Veri Tabanı ve Yönetimi 11.4.2. Tutarlılık (Consistency) Transaction veritabanının yapısını bozmadan işlem bloğunu terk etmelidir. Yani ara işlemler yapılırken işlem bloğunun etkisini veritabanına yansıtarak transaction’ı terk edemez. Örneğin A kullanıcısının hesabından parayı azaltıp B kullanıcısına eklemeden işlemi sonlandırmaz. Veritabanının mutlaka tutarlı olması gerekmektedir. 11

11.4.3. İzolasyon (Izolation) 12 BİL 301 - Veri Tabanı ve Yönetimi 11.4.3. İzolasyon (Izolation) Farklı transaction’lar birbirinden farklı olarak ele alınmalıdırlar. Her transaction için veritabanının yapısı ayrı ayrı korunmalıdır. İlk transaction tarafından yapılan değişiklikler ikinci transaction’da görülmemelidir. Ancak işlem bittiğinde bir bütün olarak görülmelidirler. 12

11.4.4. Dayanıklılık (Durability) 13 BİL 301 - Veri Tabanı ve Yönetimi 11.4.4. Dayanıklılık (Durability) Tamamlanmış bir transaction’nın hatalara karşı esnek olması gerekmektedir. Elektrik kesilmesi, herhangi bir donanım arızası gibi nedenlerden dolayı yapılacak işlemlerin gerçekleşmesine engel olması gerekmektedir. Bunun için gerçekleşmiş ve başarılı olmuş transaction’nın değişikliklerinin diske kalıcı olarak yansıtılması gerekmektedir. 13

11.5. Transaction Bloğunun Çalışması 14 BİL 301 - Veri Tabanı ve Yönetimi 11.5. Transaction Bloğunun Çalışması SQL Server üzerinde herhangi bir veride değişiklik yapıldığı zaman, ilgili sayfalar daha önce diskten hafızaya çağrılmamış ise öncelikle tampon belleğe alınır. Daha sonra üstünde değişiklikler yapılır. Yapılan değişiklikler diske hemen yansıtılmaz. Bu şekilde içeriği denenmiş ama henüz diske kaydedilmemiş sayfalara kirli sayfa adı verilmektedir. Sayfada meydana gelen her değişiklik *.ldb uzantılı transaction log dosyalarına kaydedilir. Kirli sayfaların diske kaydedilmesi işlemine «arındırma» adı verilmektedir. 14

11.5. Transaction Bloğunun Çalışması (devam) 15 BİL 301 - Veri Tabanı ve Yönetimi 11.5. Transaction Bloğunun Çalışması (devam) Arındırma işlemi gerçekleşmeden önce kirli sayfalardaki tüm değişiklikler log dosyasına yansıdığı için işlem gerçekleşirken ortaya çıkacak olan istenmeyen durumlardan sonra eski haline dönmek mümkün olmaktadır. Eğer herhangi bir sorun ortaya çıkmaz ise arındırma işlemi düzgün olarak gerçekleşir ve veriler diske yazılır. 15

11.6. Transaction İşlem Blokları 16 BİL 301 - Veri Tabanı ve Yönetimi 11.6. Transaction İşlem Blokları Transaction’lar içerdikleri tüm işlemleri başarıyla gerçekleştiren ya da veri tabanı üzerinde hiçbir değişiklik yapmayan atomik yapılardır. Olası bir durumda kurtarma işlemlerinin gerçekleştirilebilmesi için her işlemin ne zaman başladığı, ne zaman bittiği ve başarılı bir şekilde tamamlanıp tamamlanmadığı bilgisinin sistemde tutulması gereklidir. Bu sebeple kurtarma yöneticisi (recovery manager) şu bilgileri saklamaktadır 16

11.6. Transaction İşlem Blokları (devam) 17 BİL 301 - Veri Tabanı ve Yönetimi 11.6. Transaction İşlem Blokları (devam) BEGIN TRANSACTION: Transaction’ ın başlangıcını işaretler. READ/WRITE: Transaction’ın içeriğinde gerçekleştirilen işlemlerin bilgisini içerir. END TRANSACTION: Transaction’ın bitişini işaretler. COMMIT: Transaction’ın başarıyla sonuçlandığı bilgisini içerir. ROLLBACK/ABORT: Transaction’ın başarısız olduğu bilgisini içerir. 17

11.6. Transaction İşlem Blokları (devam) 18 BİL 301 - Veri Tabanı ve Yönetimi 11.6. Transaction İşlem Blokları (devam) Bir transaction’ın çalışması aşağıdaki gibidir. 18

11.7. SQL Server ve Transaction 19 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction SQL Transaction’ları da diğer işlemlerden farksız olarak atomik bir yapıya sahiptir. Herhangi bir SQL sorgusu da aynı yapıda olduğu için ya tüm komut/sorgu başarıyla çalıştırılır ve sonucu alınır ya da veri tabanında hiçbir değişiklik yapılmadan işlem sonuçlandırılır. Dolayısı ile bunları Transaction yapıları içinde kullanmak mümkündür. 19

11.7. SQL Server ve Transaction (devam) 20 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) SQL Server’ da transaction’ın genel yapısı aşağıdaki gibidir. BEGIN TRANSACTION Transaction komutları COMMIT TRANSACTION / ROLLBACK 20

11.7. SQL Server ve Transaction (devam) 21 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Örnek: Aşağıdaki niteliklere sahip banka hesaplarının tutulduğu bir tablo oluşturalım. 21

11.7. SQL Server ve Transaction (devam) 22 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Oluşturduğumuz bu tabloya iki adet kayıt ekleyelim. Dilerseniz daha fazla kayıtta ekleyebilirsiniz. 22

11.7. SQL Server ve Transaction (devam) 23 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Oluşturduğumuz bu tablo üzerinde bir Stored Procedure (SP) tanımlayalım. Bu SP dışarıdan havale yapanın hesap numarasını, havaleyi alacak olan kişinin hesap numarasını ve havale miktarını alacak ve Transaction başladıktan sonra havale işlemini gerçekleştirecektir. Eğer havalede bir sorun çıkmaz ise işlem geçerli olacaktır. Bir sorun oluşur ise, her aşamada «ROLLBACK» komutu ile bütün işlemler geri alacaktır. 23

11.7. SQL Server ve Transaction (devam) 24 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Oluşturduğumuz «havale» procedure’ü aşağıdaki gibidir. 24

11.7. SQL Server ve Transaction (devam) 25 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) SP’yi bir havale işlemi gerçekleştirerek test ederek sonuçlarına baktığımızda havale işleminin sorunsuz gerçekleştiği görülmektedir. 25

11.7. SQL Server ve Transaction (devam) 26 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Bu transaction bloğu çalıştırıldığında hesap numaralarının herhangi birinin yanlış girilmesi durumunda dikkat edilirse herhangi bir uyarının verilmediği görülür. Bu gibi durumlarda hata yakalama komutu olan "TRY- CATCH" yapısına ihtiyaç vardır. Bu yapı oluşacak hataları kullanıcının görmesini ve gerekli düzeltmeleri yapmasını sağlamaktadır. TRY-CATCH bloğunu ekleyerek SP’yi yeniden düzenleyelim. 26

11.7. SQL Server ve Transaction (devam) 27 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Yeni SP aşağıdaki gibi olacaktır. 27

11.7. SQL Server ve Transaction (devam) 28 BİL 301 - Veri Tabanı ve Yönetimi 11.7. SQL Server ve Transaction (devam) Eğer herhangi bir hata meydana gelirse bir hata kodu üretilerek kullanıcı bilgilendirilecektir. Bu hata elektrik kesintisi, donanımsal yada programlama ile ilgili bir hata olabilmektedir. 28