Veritabanı işlemi - Database transaction

Bir veritabanı işlemi bir içinde gerçekleştirilen iş birimini sembolize eder veritabanı Yönetim sistemi (veya benzer bir sistem) bir veritabanına karşı ve diğer işlemlerden bağımsız olarak tutarlı ve güvenilir bir şekilde ele alınır. Bir işlem genellikle bir veritabanındaki herhangi bir değişikliği temsil eder. Veritabanı ortamındaki işlemlerin iki ana amacı vardır:

  1. Hatalardan doğru kurtarmaya olanak tanıyan ve bir veritabanını, yürütme durduğunda (tamamen veya kısmen) ve bir veritabanı üzerindeki birçok işlem net olmayan durumda tamamlanmadan kaldığında bile tutarlı bir şekilde tutan güvenilir çalışma birimleri sağlamak.
  2. Bir veritabanına aynı anda erişen programlar arasında izolasyon sağlamak için. Bu izolasyon sağlanmadıysa, programların sonuçları muhtemelen hatalıdır.

Bir veritabanı yönetim sisteminde işlem, bazen birden çok işlemden oluşan tek bir mantık veya iş birimidir. Bir veritabanında tutarlı bir modda yapılan herhangi bir mantıksal hesaplama işlem olarak bilinir. Bir örnek, bir banka hesabından diğerine yapılan transferdir: tam işlem, bir hesaptan transfer edilecek tutarın çıkarılmasını ve aynı tutarı diğerine eklemeyi gerektirir.

Tanım gereği bir veritabanı işlemi, atomik (ya bütünüyle tamamlanmalı ya da hiçbir etkisi olmamalıdır), tutarlı (veri tabanındaki mevcut kısıtlamalara uymalıdır), yalıtılmış (diğer işlemleri etkilememelidir) ve dayanıklı (kalıcı depolamaya yazılmalıdır).[1] Veritabanı uygulayıcıları, veritabanı işlemlerinin bu özelliklerine genellikle kısaltmayı kullanarak atıfta bulunur. ASİT.

Amaç

Veritabanları ve diğer veri depoları bütünlük Verilerin en önemli özelliği, genellikle verilerin bütünlüğünü korumak için işlemleri gerçekleştirme becerisini içerir. Tek bir işlem, her biri bir veri tabanına veya başka bir veri deposuna bilgi okuyan ve / veya yazan bir veya daha fazla bağımsız çalışma biriminden oluşur. Böyle bir durumda, tüm bu tür işlemlerin veritabanını veya veri deposunu tutarlı bir durumda bırakmasını sağlamak genellikle önemlidir.

Örnekler çift ​​girişli muhasebe sistemleri genellikle işlem kavramını gösterir. Çift girişli muhasebede her borç, ilişkili bir kredinin kaydedilmesini gerektirir. Yiyecek satın almak için 100 $ 'lık bir çek yazıyorsa, işlemsel çift girişli bir muhasebe sistemi, tek işlemi kapsayacak şekilde aşağıdaki iki girişi kaydetmelidir:

  1. Bakkaliye Gider Hesabına 100 $ Borç Kaydet
  2. Vadesiz Hesaba 100 $ Kredi

İşlemsel bir sistem her iki girişi de geçirir veya her iki giriş de başarısız olur. Birden fazla girişin kaydını atomik işlemsel bir iş birimi olarak ele alarak sistem, kaydedilen verilerin bütünlüğünü korur. Başka bir deyişle, hiç kimse bir borcun kaydedildiği ancak ilişkili bir kredinin kaydedilmediği veya tam tersi bir durumla sonuçlanmaz.

İşlem veritabanları

Bir işlem veritabanı bir DBMS sağlayan ACID özellikleri parantez içine alınmış bir dizi veritabanı işlemi için (başla-kaydet). Bir işlemdeki tüm yazma işlemlerinin ya hep ya hiç etkisi vardır, yani ya işlem başarılı olur ve tüm yazmalar yürürlüğe girer ya da başka bir şekilde veri tabanı işlemin herhangi bir yazısını içermeyen bir duruma getirilir. . İşlemler ayrıca, eşzamanlı işlemlerin etkisinin belirli garantileri karşılamasını da sağlar. izolasyon seviyesi. En yüksek izolasyon seviyesi serileştirilebilirlik, eşzamanlı işlemlerin etkisinin seri (yani sıralı) yürütülmesine eşdeğer olduğunu garanti eder.

En modern ilişkisel veritabanı yönetim sistemleri işlemleri destekleyen veritabanları kategorisine girer. NoSQL veri depoları, eşzamanlı güncelleme ve erişim durumunda veri tutarlılığını garanti etmek için ölçeklenebilirliğe ve destek işlemlerine öncelik verir.

Bir veritabanı sisteminde, bir işlem, her biri veritabanında bilgi okuyan ve / veya yazan bir veya daha fazla veri işleme ifadesi ve sorgusundan oluşabilir. Kullanıcıları veritabanı sistemleri düşünmek tutarlılık ve bütünlük çok önemli veri. Basit bir işlem genellikle veritabanı sistemine aşağıdaki gibi bir dilde yapılır: SQL aşağıdakine benzer bir model kullanarak bir işleme sarılır:

  1. İşleme başlayın.
  2. Bir dizi veri işleme ve / veya sorgu yürütün.
  3. Herhangi bir hata oluşmazsa işlemi gerçekleştirin.
  4. Bir hata oluşursa, işlemi geri alın.

Bir işlem gerçekleştirme işlemi, veri tabanına yapılan işlem kapsamında veri işlemelerinin tüm sonuçlarını sürdürür. Bir işlem geri alma işlemi, veri tabanına işlemin kapsamı dahilindeki veri işlemlerinin kısmi sonuçlarını sürdürmez. Veritabanını tutarsız bir durumda bırakacağından, hiçbir durumda veritabanına kısmi bir işlem gerçekleştirilemez.

Dahili olarak, çok kullanıcılı veritabanları genellikle bir işlem kullanarak işlemleri depolar ve işler. İD veya XID.

Yukarıda belgelenen basit yol dışında, işlemlerin uygulanması için çok sayıda farklı yol vardır. İç içe geçmiş işlemler örneğin, içinde yeni işlemler başlatan ifadeler içeren işlemlerdir (yani alt işlemler). Çok seviyeli işlemler alt işlemlerin katmanlı bir sistem mimarisinin farklı düzeylerinde gerçekleştiği iç içe geçmiş işlemlerin bir çeşididir (örneğin, veritabanı motoru düzeyinde bir işlem, işletim sistemi düzeyinde bir işlem).[2] Başka bir işlem türü de tazminat işlemi.

SQL'de

İşlemler, birçok SQL veritabanı uygulamasında, farklı düzeylerde sağlamlık olsa da mevcuttur. Örneğin, MySQL 3.23 sürümünden itibaren işlemleri desteklemeye başladı, ancak InnoDB depolama motoru, sürüm 5.5'ten önce varsayılan değildi. Daha önceki mevcut depolama motoru, MyISAM işlemleri desteklemez.

Bir işlem genellikle şu komut kullanılarak başlatılır BAŞLA (SQL standardı belirtmesine rağmen İŞLEMİ BAŞLAT). Sistem bir KOMİTE ifadesi, işlem başarıyla tamamlandığında sona erer. Bir GERİ DÖNÜŞ ifade ayrıca işlemi sona erdirebilir ve şu tarihten beri yapılan herhangi bir işi geri alabilir. BAŞLA. Eğer otomatik tamamlama bir işlemin başlangıcında devre dışı bırakılırsa, otomatik taahhüt de işlemin sonunda yeniden etkinleştirilecektir.

Biri ayarlanabilir izolasyon seviyesi bireysel işlem operasyonları için olduğu kadar küresel olarak. En üst düzeyde (TAMAMLANDI OKUYUN), bir işlem başladıktan sonra gerçekleştirilen herhangi bir işlemin sonucu, işlem bitene kadar diğer veritabanı kullanıcıları tarafından görünmez kalacaktır. En düşük seviyede (TAMAMLANMADI OKUYUN), yüksek eşzamanlılığı sağlamak için ara sıra kullanılabilen bu tür değişiklikler hemen görünür olacaktır.

Nesne veritabanları

İlişkisel veritabanları geleneksel olarak sabit boyutlu alanlar ve kayıtlar içeren tablolardan oluşur. Nesne veritabanları değişken boyutludur lekeler, muhtemelen serileştirilebilir veya bir mime türü. İlişkisel ve Nesne veritabanları arasındaki temel benzerlikler, başlangıç ​​ve işlemek veya geri alma.

Bir işlem başlatıldıktan sonra, veritabanı kayıtları veya nesneleri salt okunur veya okunur-yazılır olarak kilitlenir. Okumalar ve yazmalar daha sonra gerçekleşebilir. İşlem tam olarak tanımlandıktan sonra, değişiklikler yapılır veya geri alınır atom olarak, öyle ki işlemin sonunda hiçbir tutarsızlık.

Dağıtılmış işlemler

Veritabanı sistemleri uygulamak dağıtılmış işlemler[3] verilere birden çok düğüm üzerinden erişen işlemler olarak. Dağıtılmış bir işlem, ACID özelliklerini birden çok düğüm üzerinde zorlar ve veritabanları, depolama yöneticileri, dosya sistemleri, mesajlaşma sistemleri ve diğer veri yöneticileri gibi sistemleri içerebilir. Dağıtılmış bir işlemde, işlemin tüm bölümlerinin tüm ilgili sistemlere uygulanmasını sağlamak için tipik olarak tüm süreci koordine eden bir varlık vardır.

İşlem dosya sistemleri

Namesys Reiser4 dosya sistemi Linux[4] işlemleri destekler ve itibariyle Microsoft Windows Vista, Microsoft NTFS dosya sistemi[5] destekler dağıtılmış işlemler ağlar arasında. Daha tutarlı veri dosya sistemlerine yönelik araştırmalar var. Warp İşlem Dosya Sistemi (O NE LAN).[6]

Ayrıca bakınız

Referanslar

  1. ^ "İşlem Nedir? (Windows)". msdn.microsoft.com.
  2. ^ Beeri, C .; Bernstein, P. A .; Goodman, N. (1989). "İç içe geçmiş işlem sistemlerinde eşzamanlılık modeli". ACM Dergisi. 36 (1): 230–269. doi:10.1145/62044.62046. S2CID  12956480.
  3. ^ Özsu, M. Tamer; Valduriez Patrick (2011). Dağıtık Veritabanı Sistemlerinin İlkeleri, Üçüncü Baskı. Springer. doi:10.1007/978-1-4419-8834-8. ISBN  978-1-4419-8833-1.
  4. ^ "Linux.org". Linux.org.
  5. ^ "MSDN Kitaplığı". Alındı 16 Ekim 2014.
  6. ^ https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-escriva.pdf

daha fazla okuma

Dış bağlantılar