Açıköğretim ders notları öğrenciler tarafından ders çalışma esnasında hazırlanmakta olup diğer ders çalışacak öğrenciler için paylaşılmaktadır. Sizlerde hazırladığınız ders notlarını paylaşmak istiyorsanız bizlere iletebilirsiniz.
Açıköğretim derslerinden Veritabanı Programlama Dersi 5. Ünite Özet için hazırlanan ders çalışma dokümanına (ders özeti / sorularla öğrenelim) aşağıdan erişebilirsiniz. AÖF Ders Notları ile sınavlara çok daha etkili bir şekilde çalışabilirsiniz. Sınavlarınızda başarılar dileriz.
Hareket, temel olarak daha küçük parçalara bölünemeyen en küçük işlem grubudur. Veritabanı üzerinde gerçekleştirilen bir dizi SQL işlemini (SELECT,INSERT,UPDATE ve DELETE) kapsayan işlemler grubuna verilen isimdir.
Hareket bloğu içinde yer alan SQL ifadelerin tamamının başarılı olarak çalıştırılması ya da hiçbirinin çalıştırılmadan hareket bloğu başlangıç durumuna geri dönülmesidir
Veritabanında gerçekleştirilen işlemler sonucunda oluşan yeni veriler arasındaki tutarlılığı ifade eder.
İzolasyon, veri erişim kontrolü amacıyla kullanılan bir mekanizmadır
Tamamlanmış olan ya da devam eden hareketlerin gerçekleştirdiği veri değişikliklerinin VTYS’de bir arıza meydana gelse bile kalıcı olarak kaydedildiğinden emin olunması beklenmektedir. MS SQL Server VTYS’nin en önemli özelliklerinden biri, bu amaçla hareket günlüğü dosyası tutmasıdır.
MS SQL Server VTYS, otokayıt (autocommit), açık (explicit) ve örtük (implicit) olmak üzere üç farklı modda hareket desteği sağlamaktadır.
MS SQL Server VTYS’nin varsayılan hareket yönetim modudur.
Açık hareketler kullanıcıların kendilerinin başlatıp sonlandırdığı hareket bloklarıdır.
Günümüzde birçok kurumsal uygulama, çok sayıda kullanıcı tarafından kullanılmaktadır. Kullanıcıların sahip olduğu cihazların çeşitliliği ise oldukça fazladır. Bu sebeplerden dolayı kurumsal uygulama diğer uygulamalara, hizmetlere veya raporlama ihtiyaçlarına aynı anda cevap verme yeteneğine sahip olmalıdır. Bu uygulamaların verileri saklamak için kullandıkları VTYS, birbirinden farklı hizmetlerin veri okuma ve veri yazma ihtiyaçlarını aynı anda karşılayabilmelidir. VTYS’lerde eş zamanlılık kavramı, birden fazla oturum üzerinden aynı kaynaklara erişimi ve kullanımı tanımlamaktadır
Oturum bir veritabanına farklı kullanıcılar tarafından gerçekleştirilen erişimdir.
Bir hareket tarafından değiştirilmiş fakat kalıcı olarak veritabanına kaydedilmemiş bir verinin başka bir hareket tarafından geçerli bir veri gibi okunması kirli okuma olarak ifade edilmektedir.
Bir veri ya da veri grubuna bir hareket içinde birden fazla kez erişim gerçekleştirilebilir. Bu erişimler arasında eş zamanlı olarak başka bir hareket güncelleme veya silme işlemi gerçekleştirebilmektedir. Bu durumda tekrarlanamayan okuma problemi ile karşı karşıya kalınmış olunmaktadır.
Aynı hareket içinde ve aynı tablo üzerinde aynı WHERE ifadesi ile iki farklı sorgulama yapıldığını varsayalım. Bu iki sorgulama arasında eş zamanlı olarak başka bir hareket, okunan aralık içindeki veri kümesine yeni bir kayıt eklemiş olsun. Bu durumda ikinci sorgulamada birinciye göre daha fazla kayıt okunmuş olur. Fazla kayıt okuma işlemine hayalet okuma adı verilmektedir.
İzolasyon düzeyleri, eş zamanlı olarak çalışan hareketlerin birbirlerini nasıl etkilemesi gerektiğinin belirtilmesinde kullanılmaktadır.
Kaydedilmiş okuma varsayılan MS SQL Server VTYS izolasyon düzeyidir. Kaydedilmemiş veri değişiklikleri okunamaz. Sorgu esnasında paylaşılan kilitler kullanılır ve bir hareket okuma gerçekleştirirken eş zamanlı olarak başka bir hareket aynı veri üzerinde değişiklik gerçekleştiremez. Aynı tablo üzerinde veri ekleme ve değişikliğine izin verilir. Bu izolasyon düzeyi kirli okuma problemine engel olur. Fakat, tekrarlanamayan okuma ve hayalet okuma eş zamanlılık problemlerine sebep olabilmektedir.
Kaydedilmemiş okuma, en düşük kısıtlamaya sahip izolasyon düzeyidir. Hareket tarafından seçilmiş olan veri üzerine herhangi bir kilit uygulanmaz.
Tekrarlanabilir okuma, aktif edildiğinde kirli okuma ve tekrarlanamayan okuma eş zamanlılık problemleri ortadan kaldırılabilmektedir. Okunan tüm kaynaklara paylaşılan (S) kilit uygulanır.
Serileştirilebilir izolasyon düzeyi en kısıtlayıcı izolasyon düzeyidir. Bir hareket bir kayıt üzerinde okuma işlemi gerçekleştirdiği sırada başka bir hareketin okunan kayıtlar üzerinde değişiklik yapmasına izin verilmez.
Anlık görüntü izolasyon düzeyi hareketin başladığı sırada okunan verinin hareket içinde tutarlı bir değerinin kullanılmasına imkan vermektedir.
Kilitleme çok kullanıcılı veritabanı yönetim sistemlerinin vazgeçilemez parçasıdır. Kilitleme yönetimi sayesinde VTYS’ler, farklı hareketlerin aynı veriye eş zamanlı olarak güncelleme yapmalarına izin vermemektedir.
Paylaşılan kilit, değişikliğin gerçekleşmediği salt okunur sorgular esnasında otomatik olarak oluşmaktadır. Bu kilit modunda okuma yapılan sorgu ve hareketlerin verilere erişimine izin verilir.
MS SQL Server VTYS, insert, update veya delete işlemleri tarafından veri değişikliği yapılırken ayrıcalıklı kilit modunu otomatik olarak oluşturmaktadır. Aynı anda eş zamanlı olarak sadece bir hareket, veri kaynağı üzerinde ayrıcalıklı kilit bulundurabilir. Bir veri kaynağı ayrıcalıklı kilit modunda ise eş zamanlı hareketler bu veri kaynağı üzerine başka hiçbir kilit modu uygulayamaz.
Güncelleştirme kilit modu aslında ayrı bir kilit modu değil, paylaşılan ve ayrıcalıklı kilit modlarının birleşimidir. MS SQL Server VTYS veri değişikliği gerçekleştireceği zaman öncelikle değişikliğin gerçekleşeceği veriyi bulmak zorundadır. Verinin bulunması sırasında eş zamanlı olarak diğer hareketler okuma işlemi gerçekleştirebilirler.
Amaç kilit modu, kilit kuyruğu yaratır. Bu kilit kuyruğu, bağlantı sıralarını ve bu bağlantılar ile ilişki kullanılan kaynakların okuma ve güncelleme haklarını gösterir.
Özel kilit modları şunlardır:
Kilitlenme, iki ya da daha fazla hareketin aynı kaynaklara erişim gerçekleştirmek istediği durumlarda meydana gelmektedir. Bu olasılığı azaltmak amacıyla farklı yöntem ve yaklaşımlar kullanılmaktadır. Bunlardan bazıları;
Kilitlenme izleyicisi: Kilitlenmeyi önlemek amacıyla kilitlenme izleyicisi adındaki sistem görev izleyicisi her beş saniyede bir yürütülür. Böylece sistemde bir kilitlenme olup olmadığı kontrol edilmiş olur.
Hareket, temel olarak daha küçük parçalara bölünemeyen en küçük işlem grubudur. Veritabanı üzerinde gerçekleştirilen bir dizi SQL işlemini (SELECT,INSERT,UPDATE ve DELETE) kapsayan işlemler grubuna verilen isimdir.
Hareket bloğu içinde yer alan SQL ifadelerin tamamının başarılı olarak çalıştırılması ya da hiçbirinin çalıştırılmadan hareket bloğu başlangıç durumuna geri dönülmesidir
Veritabanında gerçekleştirilen işlemler sonucunda oluşan yeni veriler arasındaki tutarlılığı ifade eder.
İzolasyon, veri erişim kontrolü amacıyla kullanılan bir mekanizmadır
Tamamlanmış olan ya da devam eden hareketlerin gerçekleştirdiği veri değişikliklerinin VTYS’de bir arıza meydana gelse bile kalıcı olarak kaydedildiğinden emin olunması beklenmektedir. MS SQL Server VTYS’nin en önemli özelliklerinden biri, bu amaçla hareket günlüğü dosyası tutmasıdır.
MS SQL Server VTYS, otokayıt (autocommit), açık (explicit) ve örtük (implicit) olmak üzere üç farklı modda hareket desteği sağlamaktadır.
MS SQL Server VTYS’nin varsayılan hareket yönetim modudur.
Açık hareketler kullanıcıların kendilerinin başlatıp sonlandırdığı hareket bloklarıdır.
Günümüzde birçok kurumsal uygulama, çok sayıda kullanıcı tarafından kullanılmaktadır. Kullanıcıların sahip olduğu cihazların çeşitliliği ise oldukça fazladır. Bu sebeplerden dolayı kurumsal uygulama diğer uygulamalara, hizmetlere veya raporlama ihtiyaçlarına aynı anda cevap verme yeteneğine sahip olmalıdır. Bu uygulamaların verileri saklamak için kullandıkları VTYS, birbirinden farklı hizmetlerin veri okuma ve veri yazma ihtiyaçlarını aynı anda karşılayabilmelidir. VTYS’lerde eş zamanlılık kavramı, birden fazla oturum üzerinden aynı kaynaklara erişimi ve kullanımı tanımlamaktadır
Oturum bir veritabanına farklı kullanıcılar tarafından gerçekleştirilen erişimdir.
Bir hareket tarafından değiştirilmiş fakat kalıcı olarak veritabanına kaydedilmemiş bir verinin başka bir hareket tarafından geçerli bir veri gibi okunması kirli okuma olarak ifade edilmektedir.
Bir veri ya da veri grubuna bir hareket içinde birden fazla kez erişim gerçekleştirilebilir. Bu erişimler arasında eş zamanlı olarak başka bir hareket güncelleme veya silme işlemi gerçekleştirebilmektedir. Bu durumda tekrarlanamayan okuma problemi ile karşı karşıya kalınmış olunmaktadır.
Aynı hareket içinde ve aynı tablo üzerinde aynı WHERE ifadesi ile iki farklı sorgulama yapıldığını varsayalım. Bu iki sorgulama arasında eş zamanlı olarak başka bir hareket, okunan aralık içindeki veri kümesine yeni bir kayıt eklemiş olsun. Bu durumda ikinci sorgulamada birinciye göre daha fazla kayıt okunmuş olur. Fazla kayıt okuma işlemine hayalet okuma adı verilmektedir.
İzolasyon düzeyleri, eş zamanlı olarak çalışan hareketlerin birbirlerini nasıl etkilemesi gerektiğinin belirtilmesinde kullanılmaktadır.
Kaydedilmiş okuma varsayılan MS SQL Server VTYS izolasyon düzeyidir. Kaydedilmemiş veri değişiklikleri okunamaz. Sorgu esnasında paylaşılan kilitler kullanılır ve bir hareket okuma gerçekleştirirken eş zamanlı olarak başka bir hareket aynı veri üzerinde değişiklik gerçekleştiremez. Aynı tablo üzerinde veri ekleme ve değişikliğine izin verilir. Bu izolasyon düzeyi kirli okuma problemine engel olur. Fakat, tekrarlanamayan okuma ve hayalet okuma eş zamanlılık problemlerine sebep olabilmektedir.
Kaydedilmemiş okuma, en düşük kısıtlamaya sahip izolasyon düzeyidir. Hareket tarafından seçilmiş olan veri üzerine herhangi bir kilit uygulanmaz.
Tekrarlanabilir okuma, aktif edildiğinde kirli okuma ve tekrarlanamayan okuma eş zamanlılık problemleri ortadan kaldırılabilmektedir. Okunan tüm kaynaklara paylaşılan (S) kilit uygulanır.
Serileştirilebilir izolasyon düzeyi en kısıtlayıcı izolasyon düzeyidir. Bir hareket bir kayıt üzerinde okuma işlemi gerçekleştirdiği sırada başka bir hareketin okunan kayıtlar üzerinde değişiklik yapmasına izin verilmez.
Anlık görüntü izolasyon düzeyi hareketin başladığı sırada okunan verinin hareket içinde tutarlı bir değerinin kullanılmasına imkan vermektedir.
Kilitleme çok kullanıcılı veritabanı yönetim sistemlerinin vazgeçilemez parçasıdır. Kilitleme yönetimi sayesinde VTYS’ler, farklı hareketlerin aynı veriye eş zamanlı olarak güncelleme yapmalarına izin vermemektedir.
Paylaşılan kilit, değişikliğin gerçekleşmediği salt okunur sorgular esnasında otomatik olarak oluşmaktadır. Bu kilit modunda okuma yapılan sorgu ve hareketlerin verilere erişimine izin verilir.
MS SQL Server VTYS, insert, update veya delete işlemleri tarafından veri değişikliği yapılırken ayrıcalıklı kilit modunu otomatik olarak oluşturmaktadır. Aynı anda eş zamanlı olarak sadece bir hareket, veri kaynağı üzerinde ayrıcalıklı kilit bulundurabilir. Bir veri kaynağı ayrıcalıklı kilit modunda ise eş zamanlı hareketler bu veri kaynağı üzerine başka hiçbir kilit modu uygulayamaz.
Güncelleştirme kilit modu aslında ayrı bir kilit modu değil, paylaşılan ve ayrıcalıklı kilit modlarının birleşimidir. MS SQL Server VTYS veri değişikliği gerçekleştireceği zaman öncelikle değişikliğin gerçekleşeceği veriyi bulmak zorundadır. Verinin bulunması sırasında eş zamanlı olarak diğer hareketler okuma işlemi gerçekleştirebilirler.
Amaç kilit modu, kilit kuyruğu yaratır. Bu kilit kuyruğu, bağlantı sıralarını ve bu bağlantılar ile ilişki kullanılan kaynakların okuma ve güncelleme haklarını gösterir.
Özel kilit modları şunlardır:
Kilitlenme, iki ya da daha fazla hareketin aynı kaynaklara erişim gerçekleştirmek istediği durumlarda meydana gelmektedir. Bu olasılığı azaltmak amacıyla farklı yöntem ve yaklaşımlar kullanılmaktadır. Bunlardan bazıları;
Kilitlenme izleyicisi: Kilitlenmeyi önlemek amacıyla kilitlenme izleyicisi adındaki sistem görev izleyicisi her beş saniyede bir yürütülür. Böylece sistemde bir kilitlenme olup olmadığı kontrol edilmiş olur.