DBM (bilgi işlem) - DBM (computing)
Bilgi işlemde DBM , verilere hızlı, tek anahtarlı erişim sağlayan bir kitaplık ve dosya biçimidir . Bir anahtar değeri veritabanı orijinal Unix , DBM , bir erken örneği NoSQL sistemi.
Tarih
Orijinal dbm kitaplığı ve dosya formatı , ilk olarak Ken Thompson tarafından yazılmış ve 1979'da AT&T tarafından piyasaya sürülen basit bir veritabanı motoruydu . Ad, Veritabanı Yöneticisi için üç harfli bir kısaltmadır ve ayrıca API'leri ve özellikleri olan veritabanı motorları ailesine atıfta bulunabilir. orijinal dbm'den türetilmiştir .
DBM kütüphane mağazalar tek anahtarın kullanımı ile veri (bir keyfi birincil anahtar sabit boyutlu olarak) kovalar ve kullanım karma anahtar tarafından verilerin hızlı erişim sağlamak için teknikler.
Kullanılan karma şeması, bir genişletilebilir karma biçimidir , böylece karma şeması, veritabanına yeni kovalar eklendikçe genişler, yani, neredeyse boş olduğunda, veritabanı bir kova ile başlar ve daha sonra dolduğunda bölünür. Ortaya çıkan iki alt grup dolduğunda kendileri bölünür, böylece anahtarlar eklendikçe veritabanı büyür.
DBM kütüphane ve türevlerinin öncesi olan ilişkisel veri tabanları - yönettikleri ilişkilendirilebilir diziler Disktekiler olarak uygulanır, karma tablolar . Uygulamada, bağlantı kurma ve sorgu hazırlama gibi bir ek yük gerektirmediğinden, anahtarla erişilen yüksek hızlı depolama için daha pratik bir çözüm sunabilirler. Bu, genellikle aynı anda yalnızca tek bir işlemle yazıya açılabilmeleri gerçeğiyle dengelenir. Bir aracı arka plan programı , birden çok işlemden gelen istekleri işleyebilir, ancak IPC ek yükü getirir.
Uygulamalar
Orijinal AT&T dbm kitaplığının yerini birçok ardıl uygulaması almıştır. Önemli örnekler şunları içerir:
- ndbm ("yeni dbm"), bazı yeni özelliklerle orijinal dbm'ye dayanmaktadır.
- GDBM ("GNU dbm"), ndbm özelliklerini ve kendi arabirimini uygulayan kitaplığın GNU'nun yeniden yazılması . Ayrıca veri tutarlılığını garanti etmek için çökme toleransı gibi yeni özellikler sağlar.
- SDBM ( "küçük DBM"), bir kamu malı ait yeniden yazma dbm . Perl ve Ruby için standart dağıtımların bir parçasıdır .
- qdbm ("Hızlı Veritabanı Yöneticisi"), Tokyo/Kyoto Kabini ile aynı tekniklerin çoğunu kullanan daha yüksek performanslı bir dbm . Dolaplara geçmeden önce aynı yazar tarafından yazıldı.
- tdb ("Trivial Database"), Samba tarafından kullanılan ve birden çok yazarı destekleyen basit bir veritabanı . gdbm tabanlı bir API'ye sahiptir.
- Berkeley DB , 1991 ndbm'nin BSD üzerindeki AT&T Unix telif hakkını aşmak için yaratılan Sleepycat Yazılımı (şimdi Oracle ) ile değiştirilmesi . Paralellik, işlem kontrolü, karma ve B ağacı depolaması gibi birçok uzantıya sahiptir.
- LMDB : Berkeley tarzı bir API ile C'de yazma üzerine kopyalama bellek eşlemeli B+ ağacı uygulaması .
Aşağıdaki veritabanları dbm'den esinlenmiştir, ancak birini sarmak önemsiz olsa da doğrudan bir dbm arabirimi sağlamazlar:
- cdb ("sabit veritabanı"), veritabanı Daniel J. Bernstein , veritabanı dosyaları yalnızca oluşturulabilir ve okunabilir, ancak asla değiştirilemez
- Tkrzw , Kyoto Kabinesi ve Tokyo Kabinesinin Apache 2.0 lisanslı halefi
- WiredTiger : geleneksel satır yönelimli ve sütun yönelimli depolamaya sahip veritabanı.
kullanılabilirlik
2001 itibariyle, DBM'nin ndbm uygulaması Solaris ve IRIX'te standart iken, gdbm Linux'ta her yerde bulunur . Berkeley DB uygulamaları bazı ücretsiz işletim sistemlerinde standarttı. 2013 yılında Berkeley DB'nin lisansının GNU AGPL olarak değiştirilmesinden sonra , Debian gibi projeler LMDB'ye taşındı.
Güvenilirlik
Birçok DBM ailesi veritabanlarına karşı 2018 AFL bulanıklaştırma testi, bozuk veya geçersiz veritabanı dosyaları söz konusu olduğunda uygulamalarda birçok sorunu ortaya çıkardı. Sadece freecdb tarafından Daniel J. Bernstein hiçbir çökme gösterdi. gdbm, tdb ve lmdb yazarlarından yanıt vermeleri istendi. Berkeley DB, çok sayıda başka sorun nedeniyle geride kaldı; Düzeltmeler, lisans değişikliği nedeniyle onları eski bir sürüme kilitleyen açık kaynaklı yazılım kullanıcıları için alakasız olacaktır.
Ayrıca bakınız
- Gömülü veritabanı
- Düz dosya veritabanı
- ISAM
- Anahtar/değer veritabanı
- Mobil veritabanı
- NoSQL
- Semafor (programlama)
Referanslar
bibliyografya
- Hazel, Philip (2001). Exim: Posta Aktarım Aracısı . O'Reilly.
- Lad, Eric; O'Donnell, Jim (2001). XHTML, XML ve Java 2 Kullanımı: Platinum Edition . Que. ISBN'si 9780789724731.
- Kew, Nick (2007). Apache Modülleri Kitabı: Apache ile Uygulama Geliştirme . Prentice Salonu Profesyonel. ISBN'si 9780132704502.
- SDBM kitaplığı @ Apache
- Matta, Nil; Taşlar, Richard (2008). "Veritabanları". Linux Programlamaya Başlamak . Wiley.
- Olson, Michael A.; Bostic, Keith; Seltzer, Margo (1999). "Berkeley DB" (PDF) . FREENIX Track Bildirileri: 1999 USENIX Yıllık Teknik Konferansı .