ACID ve veritabanı işlemi arasındaki ilişki nedir?
ACID veritabanı işlemi yapıyor mu yoksa aynı şey mi?
Birisi bu konuyu aydınlatabilir mi?
ACID ve veritabanı işlemi arasındaki ilişki nedir?
ACID veritabanı işlemi yapıyor mu yoksa aynı şey mi?
Birisi bu konuyu aydınlatabilir mi?
Yanıtlar:
ACID , veritabanını değiştirirken uygulamak istediğiniz bir dizi özelliktir.
İşlem, bazı ACID özelliklerine ulaşmak için kullanılan bir dizi ilgili değişikliktir. İşlemler, ACID özelliklerini elde etmek için kullanılan araçlardır.
Atomisite, tüm işlemlerin gerçekleştiğini veya hiçbirinin gerçekleşmeyeceğini garanti edebileceğiniz anlamına gelir; karmaşık işlemleri tek bir birim, tümü veya hiçbir şey olarak yapabilirsiniz ve bir çökme, elektrik kesintisi, hata veya başka bir şey, yalnızca ilgili değişikliklerin bazılarının gerçekleştiği bir durumda olmanıza izin vermez.
Tutarlılık, verilerinizin tutarlı olacağını garanti ettiğiniz anlamına gelir; ilgili veriler üzerinde sahip olduğunuz kısıtlamaların hiçbiri ihlal edilmeyecektir.
Yalıtım, bir işlemin henüz tamamlanmamış başka bir işlemden veri okuyamayacağı anlamına gelir. İki işlem eşzamanlı olarak yürütülüyorsa, her biri dünyayı sırayla yürütüyormuş gibi görür ve birinin diğeri tarafından yazılan verileri okuması gerekiyorsa, diğerinin bitmesini beklemek gerekir.
Dayanıklılık, bir işlem tamamlandığında, tüm değişikliklerin dayanıklı bir ortama (sabit disk gibi) kaydedildiği ve işlemin tamamlanmış olduğu gerçeğinin kaydedildiği anlamına gelir.
Dolayısıyla, işlemler bu özellikleri garanti altına almak için bir mekanizmadır; bunlar, bir bütün olarak, bir grup işlemin atomik olabileceği, tutarlı sonuçlar üretebileceği, diğer işlemlerden izole edilebileceği ve kalıcı olarak kaydedilebileceği şekilde ilgili eylemleri gruplamanın bir yoludur.
ACID, herhangi bir işlem işleme motorunun istenen özellikleridir.
Bir DBMS (eğer iyi ise), genellikle çok büyük ölçüde ama tamamen değil, bu özellikleri ortaya çıkaran belirli bir tür işlem işleme motorudur.
Ancak bu özellikleri ortaya çıkaran başka motorlar da vardır. Eskiden "TP monitörler" olarak adlandırılan bir yazılım söz konusudur (günümüzde çoğunlukla web sunucularıdır).
Bu tür TP monitörler, DBMS (örneğin bir yazıcı) dışındaki kaynaklara erişebilir ve yine de kullanıcılarına karşı ACID'i garanti edebilir. Yazıcı bir işleme dahil olduğunda ACID'nin ne anlama gelebileceğine örnek olarak:
Yazıcı örneğini daha açık hale getirmek için biraz değiştirdim
2 sayfa içeriği olan 1 belge yazıcıya gönderildi
İşlem - belge yazıcıya gönderildi
Umarım bu ASID kavramının asılmasına yardımcı olur
ACID ve veritabanı işlemi arasındaki ilişki nedir?
İlişkisel bir veritabanında, her SQL ifadesi bir işlem kapsamında yürütülmelidir.
İşlem sınırlarını açıkça tanımlamaksızın, veritabanı her bir ifadeyi saran örtük bir işlem kullanacaktır.
Örtük işlem, deyim yürütülmeden önce başlar ve deyim yürütüldükten sonra sona erer (kesinleştirme veya geri alma). Örtük işlem modu yaygın olarak otomatik taahhüt olarak bilinir.
Bu makalede açıklandığı gibi , bir işlem yalnızca içerilen tüm işlemler başarılı olduğunda başarılı olan okuma / yazma işlemlerinin bir koleksiyonudur.
Doğal olarak bir işlem dört özellik ile karakterize edilir (genel olarak ACID olarak adlandırılır):
ACID veritabanı işlemi yapıyor mu yoksa aynı şey mi?
İlişkisel bir veritabanı sistemi için bu doğrudur, çünkü SQL Standardı bir işlemin ACID garantileri sağlaması gerektiğini belirtir:
Atomisite bireysel operasyonlar alır ve bunları ya hep ya hiç çalışma birimine dönüştürür, ancak içerilen tüm işlemler başarılı olursa ve ancak başarılı olur.
Bir işlem, durum değişikliğini kapsayabilir (salt okunur değilse). Bir işlem, herhangi bir zamanda kaç eşzamanlı işlemin aralıklı olarak ayrıldığına bakılmaksızın, sistemi her zaman tutarlı bir durumda bırakmalıdır.
Tutarlılık, taahhüt edilen her işlem için kısıtlamaların uygulandığı anlamına gelir. Bu, tüm Anahtarlar, Veri türleri, Kontroller ve Tetikleyicilerin başarılı olduğunu ve herhangi bir kısıtlama ihlali tetiklenmediğini gösterir.
İşlemler eşzamanlılık kontrol mekanizmaları gerektirir ve serpiştirilmiş olsalar bile doğruluğu garanti ederler. Yalıtım bize taahhüt edilmemiş devlet değişikliklerini dış dünyadan saklamanın faydasını getirir, çünkü başarısız işlemler sistemin durumunu asla bozmamalıdır. İzolasyon, kötümser veya iyimser kilitleme mekanizmaları kullanılarak eşzamanlılık kontrolü ile elde edilir.
Başarılı bir işlem bir sistemin durumunu kalıcı olarak değiştirmelidir ve bitirmeden önce durum değişiklikleri kalıcı bir işlem günlüğüne kaydedilir. Sistemimiz bir sistem çökmesinden veya bir elektrik kesintisinden aniden etkilenirse, tamamlanmamış tüm işlemler yeniden oynatılabilir.
Dayanıklılık ve Yineleme Günlüğü hakkında daha fazla bilgi için bu makaleye göz atın .
ASİT özellikleri veritabanı teorisi için çok eski ve önemli bir kavramdır. Bu konuda çok sayıda yayın bulabileceğinizi biliyorum, ancak yine de bu konuda cevap vermeye başlamak istiyorum, çünkü bu RDBMS'nin çok önemli bir konusudur.
Veritabanı Sistemi, tüm işlemlerin belirli özelliklere sahip olduğu birçok farklı işlem türüyle oynar. Bu özellik ACID Özellikleri olarak bilinir. ACID Özellikleri, tüm görevleri gerçekleştirmek için tüm veritabanı işlemleri için yetkilendirilir.
Atomisite: Ya tamamen ya da hiçbir şeyi taahhüt edin.
Tutarlılık: İşlemin tüm kuralını ve kısıtlamasını doğrulamak için tutarlı bir kayıt yapın.
Yalıtım: İki işlemin birbirinden habersiz olduğundan emin olun.
Dayanıklılık: sonsuza kadar saklanan kararlı veriler. Bu makaleden alınan referans:
Vikipedi teklifi yapmak için :
ASİT (atomisite, tutarlılık, izolasyon, dayanıklılık), veritabanı işlemlerinin güvenilir bir şekilde işlenmesini garanti eden bir dizi özelliktir.
İşlemleri destekleyen bir DBMS, bu özelliklerin tümünü desteklemek için çaba gösterecektir - herhangi bir ticari DBMS (ayrıca birkaç açık kaynaklı DBMS) tam ACID 'desteği' sağlar - genellikle mümkün olmasına rağmen (örneğin, MSSQL'de değişen yalıtım düzeyleriyle) ACIDness'i azaltın - böylece tam işlem davranışı garantisini kaybedin.
[Gri] 1981'de bir işlem için ACD özelliklerini tanıttı. 1983'te [Haerder], İzolasyon özelliğini ekledi. Bence, ACD özelliklerinin tartışılması daha yararlı bir özellik kümesi olacaktır. Atomikliğin bir yorumu (işlemin herhangi bir müşteriden herhangi bir zamanda görüldüğü gibi atomik olması) aslında izolasyon özelliğini ima eder. "İzolasyon" özelliği, işlem olmadığında yararlıdır izole; izolasyon özelliği gevşediğinde. ANSI SQL'de konuşun: yalıtım seviyesi zayıfsa SERIALIZABLE. Ancak izolasyon seviyesi SERİLEŞTİRİLEBİLİR olduğunda, izolasyon özelliği gerçekten ilgi çekici değildir.
Bu konuda bir blog yazısında daha fazla yazdım: "ASİT Mantıklı Değil".
http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html
[Gri] İşlem Kavramı, Jim Gray, 1981. http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf
[Haerder] İşlem Odaklı Veritabanı Kurtarma İlkeleri, Haerder ve Reuter, 1983. http://www.stanford.edu/class/cs340v/papers/recovery.pdf
İşlem, minimum işlem birimi olarak kabul edilen bir görev koleksiyonu olarak tanımlanabilir. Her minimum işlem birimi daha fazla bölünemez.
Tüm işlemler, genel olarak ACID özellikleri olarak bilinen dört özellik içermelidir. ACID, herhangi bir işlemin özellik grubudur.