İşlemleri açıklama
İşlem, birim olarak ele alınan bir veya daha fazla T-SQL deyimidir. Tek bir işlem başarısız olursa, tüm beyanlar da başarısız olur. İşlem başarılı olursa, işlemdeki tüm veri değişikliği deyimlerinin başarılı olduğunu ve veritabanına işlendiğini bilirsiniz.
İşlemler, bir işlem içindeki tüm deyimlerin ya başarıyla tamamlanmasını ya da başarısız olmasını garanti eder, kısmi tamamlamaya izin verilmez. İşlemler, tek bir işlemin parçası olan ilişkili tablolara birden çok giriş gibi mantıksal olarak birlikte gerçekleşmesi gereken işlemleri kapsüller.
Satın almaları Sales.Order tablosunda, ödemeleri ise Sales.Payment tablosunda depolayan bir işletmeyi düşünün. Birisi bir şey satın alırsa her iki tablonun da güncelleştirilmiş olması gerekir. Bu, işlemler olmadan uygulanırsa ve ödeme veritabanına yazılırken bir hata oluşursa Sales.Order ekleme işlemi yine de tamamlanır ve ödeme tablosu bir kayıt olmadan bırakılır.
Bu, işlemlerle uygulandığında, her iki giriş de yapılır veya hiçbir giriş yapılmaz. Ödeme tabloya yazılırken hata oluşursa sipariş ekleme işlemi de geri alınır. Bu, veritabanının her zaman tutarlı bir durumda olduğu anlamına gelir.
Dikkat edilmelidir ki bu, donanım veya ağ hataları gibi ciddi hatalara atıfta bulunmaktadır. SQL deyimlerindeki hatalar yalnızca belirli durumlarda işlemin geri alınmasına neden olur ve işlemleri kullanmanın etkilerini tam olarak anlamak için bu modüldeki sonraki birimleri gözden geçirmek önemlidir.
Farklı işlem türleri vardır:
Açık işlemler
BEGIN TRANSACTION ve COMMIT veya ROLLBACK anahtar kelimeleri, her bir deyim topluluğunu başlatır ve sonlandırır. Bu, hangi deyimlerin işlenmesi veya yeniden bir araya alınması gerektiğini belirtmenize olanak tanır.
Gizli işlemler
Önceki işlem tamamlandığında bir işlem başlatılır. Her işlem bir COMMIT veya ROLLBACK deyimiyle açıkça tamamlanır.
ACID özellikleri
Çevrimiçi İşlem İşleme (OLTP) sistemlerinde işlemlerin "ACID" özelliklerini karşılaması gerekir:
- Bölünmezlik : Her işlem, tamamen başarılı olan veya tamamen başarısız olan tek bir birim olarak kabul edilir. Örneğin, bir hesaptan borç ödeme ve aynı tutarı başka bir hesaba kredilendirme gibi işlemlerin her iki eylemi de tamamlaması gerekir. Herhangi bir eylem tamamlanamazsa, diğer eylemin başarısız olması gerekir.
- Tutarlılık – işlemler veritabanındaki verileri yalnızca geçerli bir durumdan diğerine alabilir. Yukarıdaki borç ve alacak örneğine devam etmek için işlemin tamamlanmış durumunun bir hesaptan diğerine fon aktarımını yansıtması gerekir.
- Yalıtım – eşzamanlı işlemler birbiriyle karışamaz ve tutarlı bir veritabanı durumuyla sonuçlanmalıdır. Örneğin, bir hesaptan diğerine fon aktarma işlemi devam ederken, bu hesapların bakiyesini denetleyan başka bir işlem tutarlı sonuçlar döndürmelidir. Bakiye denetimi işlemi, aktarımdan önceki bakiyeyi yansıtan bir hesap için bir değer ve aktarımdan sonra bakiyeyi yansıtan diğer hesap için bir değer alamaz.
- Dayanıklılık – bir işlem işlendiğinde, işlem kalıcı olarak işlenmiş olur. Hesap aktarımı işlemi tamamlandıktan sonra, veritabanı sistemi kapatılacak olsa bile, yeniden açıldığında işlenen işlemin yansıtılması için düzeltilen hesap bakiyeleri kalıcı hale alınır.