Birisi, bir işlemin hesaplamaya uygulandığı şekliyle (Wikipedia'dan kopyalanmış olsa bile) basit (ancak mümkün olandan daha basit olmayan) bir açıklama sağlayabilir mi?
Birisi, bir işlemin hesaplamaya uygulandığı şekliyle (Wikipedia'dan kopyalanmış olsa bile) basit (ancak mümkün olandan daha basit olmayan) bir açıklama sağlayabilir mi?
Yanıtlar:
İşlem, "bir bütün" olarak ele almak istediğiniz bir iş birimidir. Ya tam olarak gerçekleşmeli ya da hiç olmamalıdır.
Klasik bir örnek, bir banka hesabından diğerine para transferidir. Bunu yapmak için önce miktarı kaynak hesaptan çekmeniz ve ardından hedef hesaba yatırmanız gerekir. Operasyonun tam anlamıyla başarılı olması gerekiyor. Yarı yolda durursanız, para kaybedilecek ve bu Çok Kötü.
Modern veri tabanlarında işlemler başka şeyler de yapar - örneğin başka bir kişinin yarı yolda yazdığı verilere erişememenizi sağlamak gibi. Ancak temel fikir aynıdır - işlemler, ne olursa olsun çalıştığınız verilerin mantıklı bir durumda olmasını sağlamak için vardır . Bir hesaptan para çekilip diğerine yatırılmayan bir durum olmayacağını garanti ederler.
İşlem, bir durum değişikliğini temsil etmenin bir yoludur. İşlemler ideal olarak, genellikle ACID olarak bilinen dört özelliğe sahiptir:
Daha fazla ayrıntı için Wikipedia ACID girişine bakın.
Bu genellikle veritabanlarına uygulanmasına rağmen, olması gerekmez. (Özellikle, bkz. Yazılım İşlem Belleği .)
İşte basit bir açıklama. A hesabından B hesabına 100 dolar aktarmanız gerekiyor. Şunlardan birini yapabilirsiniz:
accountA -= 100;
accountB += 100;
veya
accountB += 100;
accountA -= 100;
Çiftteki birinci ve ikinci operasyon arasında bir şeyler ters giderse, bir sorununuz var - ya 100 dolar kayboldu ya da hiçbir yerde görünmedi.
Bir işlem, bir işlem grubunu işaretlemenize ve bunları, hepsi yürütülecek (kesinleştirecek) veya sistem durumu, hiç çalışmaya başlamamış gibi olacak (geri alma) şekilde yürütmenize olanak tanıyan bir mekanizmadır.
beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
ya 100 dolar aktaracak ya da her iki hesabı da başlangıç durumunda bırakacak.
"Tamamen tamamlanması veya tamamen başarısız olması ve veritabanını tutarlı bir durumda bırakması gereken bir dizi veri işleme ifadesi"
İşlem, birim olarak kabul edilen bir veya daha fazla SQL işlemi dizisidir.
Spesifik olarak, her işlem tek başına çalışıyor gibi görünmektedir ve ayrıca, sistem başarısız olursa, her işlem ya bir bütün olarak yürütülür ya da tamamı yerine getirilmez.
İşlem kavramı, tamamen bağımsız iki kaygı tarafından motive edilir. Birinin birden çok istemcinin veritabanına eşzamanlı erişimiyle ilgisi var, diğeri ise sistem arızalarına karşı dirençli bir sisteme sahip olmak.
İşlem, ACID özellikleri olarak bilinen özellikleri destekler:
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = A tomicity, C onsistency, I solation , D urability
Birden fazla işlem kaynağının tek bir işlemde yer almasını istediğinizde, iki aşamalı kesinleştirme çözümü gibi bir şey kullanmanız gerekecektir . XA oldukça yaygın olarak desteklenmektedir.
Bilgisayar biliminde bir kavram olarak işlemleri kapsadığı için 'işlem işleme' tanımının daha faydalı olacağını öneririm.
Wikipedia'dan:
Bilgisayar biliminde işlem işleme, işlemler adı verilen bireysel, bölünemez işlemlere bölünmüş bilgi işlemedir. Her işlem, eksiksiz bir birim olarak başarılı veya başarısız olmalıdır; ara bir durumda kalamaz.
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
Yukarıdaki yanıtlara ek olarak, en azından teorik olarak, bir işlemde ne tür kaynakların yer aldığına dair herhangi bir kısıtlama olmadığı belirtilmelidir.
Çoğu zaman, bu sadece bir veritabanı veya birden çok farklı veritabanıdır, ancak bir yazıcının bir işlemde yer alması ve örneğin bir kağıt sıkışması durumunda bu işlemin başarısız olmasına neden olması da düşünülebilir.
İş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.
Bir işlemin ana işlemi okuma ve yazmadır.
Doğruluk, eksiksizlik ve veri bütünlüğünü sağlamak amacıyla tüm işlemler yaygın olarak ACID özellikleri olarak bilinen dört özellik içermelidir.
Bir işlemin DBMS açısından atomik bir eylem olduğunu düşünüyorum.
bu, ayrılamayacağı anlamına gelir. evet, bir işlemde, sistemin yürütmesi için birkaç talimat olabilir. ancak tek bir temel görevi bitirmek için birbirine bağlanırlar.
Örneğin. bir köprüden geçmeniz gerekir (hadi bunu bir geçiş olarak ele alalım) ve bunu yapmak için, diyelim ki 100 adıma ihtiyacınız var. genel olarak, bu adımlar birbirinden ayrılamaz. bunların yarısını yaptığınızda, sizin için yalnızca iki seçenek vardır: hepsini bitirmeye devam edin ve başlangıç noktasına geri dönün. tıpkı bir işlemin sonucuna benzer: başarılı (taahhüt edilmiş) ve başarısız (geri alma)
İşlem, bölünmez bir veri işleme birimidir - Tüm işlemler ACID özelliklerine sahip olmalıdır:
Örneğin: Atomiklik, Tutarlılık, İzolasyon ve Dayanıklı İşlem, hepsi ya da hiçbir şeydir, ancak ara değildir (paranızı bir hesaptan başka bir hesaba aktarırsanız, bir hesabın o kadarını kaybetmesi ve diğerinin bu tutarı kazanması gerektiği anlamına gelir, ancak bir hesaptan para transfer ediyorsanız ve başka bir hesap hala boşsa, bu bir işlem olmayacaktır)