Veritabanı işlemi nedir?


Yanıtlar:


239

İş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.


Çok basit örnek için teşekkürler
Nomadme

güzel açıklama!
Yan Myo Aung

81

İşlem, bir durum değişikliğini temsil etmenin bir yoludur. İşlemler ideal olarak, genellikle ACID olarak bilinen dört özelliğe sahiptir:

  • Atomik (değişiklik yapılırsa, bir hamlede gerçekleşir; "yarım bir değişiklik" asla göremezsiniz)
  • Tutarlı (değişiklik yalnızca sistemin yeni durumu geçerli olacaksa gerçekleşebilir; geçersiz bir değişiklik yapmaya yönelik herhangi bir girişim başarısız olur ve sistemi önceki geçerli durumunda bırakır)
  • İzole (başka hiç kimse tamamlanana kadar işlemin herhangi bir bölümünü görmez)
  • Dayanıklı (değişiklik gerçekleştiğinde - sistem işlemin gerçekleştirildiğini söylüyorsa, müşterinin değişikliği "kalıcı hale getirmek" için sistemi "temizlemek" konusunda endişelenmesine gerek yoktur)

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 .)


46

İş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.


31

"Tamamen tamamlanması veya tamamen başarısız olması ve veritabanını tutarlı bir durumda bırakması gereken bir dizi veri işleme ifadesi"


2
Sadece veritabanı değil. Bu konsepti, kuyruk servisi veya harici sistemlerin durumu gibi diğer bileşenlere genişletebiliriz. Dolayısıyla, "Tamamen tamamlanması veya tamamen başarısız olması ve sistemi tutarlı bir durumda bırakması gereken bir dizi veri işleme ifadesi"
Michał Chaniewski

10

İş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:

  • A: Atomiklik;
  • C: Tutarlılık;
  • I: İzolasyon;
  • D: Dayanıklılık.


1

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


1

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.


1

İş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.


0

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)


0

İş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)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.