Metakit - Metakit

Metakit
Geliştirici (ler) Jean-Claude Silecek
Kararlı sürüm
2.4.9.8 / 19 Haziran 2015 ; 5 yıl önce  ( 2015-06-19 )
Yazılmış C ++
İşletim sistemi Çapraz platform
Tür Geliştirme Kitaplığı
Lisans MIT Lisansı
İnternet sitesi https://github.com/jcw/jcw.github.io/tree/main/zips

Metakit , az yer kaplayan gömülü bir veritabanı kitaplığıdır. Düz dosya , ilişkisel , nesne yönelimli ve ağaç yapılı veritabanları arasındaki boşluğu doldurur, ilişkisel birleştirmeleri, serileştirmeyi, iç içe geçmiş yapıları ve anlık şema gelişimini destekler. C ++ (yerel), Python ve Tcl için arayüzler en çok kullanılanlardır.

Tarih

Metakit, Hollandalı bir yazılım geliştiricisi olan Jean-Claude Wippler tarafından yazılmıştır . Gelişimi 1997 civarında başladı ve 2001'de MIT X11 lisansı altında açık kaynak olarak yayınlandı . Yazar ticari destek sağlar. Ancak son birkaç yılda Wippler, Metakit için daha az zaman ve diğer projeleri için daha fazla zaman harcadı.

Veritabanı (dahil olmak üzere birçok ticari ürünlerde kullanılan Adres Defteri içinde Mac OS X 10.4 ve öncesi) ve (örneğin birkaç açık kaynak KDE besleme okuyucu Akregator ve şirket içi projelerin) (tipik Python veya TCL arayüzüne kullanarak). Wippler tarafından yazılan ilgili bir proje olan Starkit ( TCL için sanal dosya sistemi ), TCL programcıları arasında popülerliğe ulaştı.

Metakit'in posta listesi aktif abonelere sahiptir ve Wippler tarafından düzenli olarak postalanmaktadır. Diğer geliştiriciler, hata düzeltmeleri ve önerileriyle projeye katkıda bulundular.

Özellikleri

Bir veritabanı tablosunun satırlarını tek bir yerde depolayan diğer birçok veritabanı sisteminin aksine (satır odaklı mimari) Metakit, ayrı sütunları ayrı olarak depolar ( sütun odaklı mimari ). Uzun yıllar boyunca tablolara yalnızca doğrusal erişim mümkündü (erişim için karmaşıklık O (1) ve arama için O (N) ile), daha sonra hash yapıları ve B-ağaç benzeri yapılar eklendi (tipik arama karmaşıklığını O (1) 'e düşürdü. ). İlişkisel işlemler ( gruplama ve birleştirme gibi ) da yıllar içinde eklendi. Tablo verilerini, görünüm adı verilen esnek mekanizmalar aracılığıyla birleştirmek ve işlemek mümkündür . Veritabanı verileri platformlar arasında taşınabilir. Metakit'in disk alanı ek yükü çok düşüktür - mümkün olduğunca azaltmak için otomatik olarak birkaç teknik kullanılır. Metakit veritabanı yapılarının görüntüleyicisi ( Kitview adlı ) sağlanır.

Veritabanı boyutu için pratik sınır yaklaşık 1 GB'dir ( 64 bit platformlarda bile ). Çok iş parçacıklı ve çok kullanıcılı erişim, programcıdan manuel destek gerektirir ve önerilmez (C ++ 'da, TCL ve Python'da bir otomatik olarak global kilit kullanılır). Daha gelişmiş özelliklerin kombinasyonları genellikle test edilmez ve başarısız olabilir. Diğer veri tabanlarına göre biraz daha iyi performans elde etmek mümkündür (yayınlanan karşılaştırmalar SQLite ve Berkeley DB'yi içerir) ancak Metakit içindekiler hakkında çok fazla test ve çok fazla bilgi gerektirir. Metakit en API ile karşılaştırıldığında, düşük seviyesidir SQL .

Metakit'in en büyük zayıflığı, oldukça sivilceli ve bazen eskimiş belgeleridir . API'sinin ve performans ayarlamasının tam olarak anlaşılması, kitaplığın kaynak kodunun derinlemesine çalışılmasını gerektirir. Metakits terminolojisinin, standart veritabanı terminolojisine göre birçok farklılığı vardır. API ve dosya biçimi zaman içinde birkaç kez değişti.

Metakit Windows , Unix ve Mac OS X üzerinde test edilmiştir .

Dil bağlamaları

  • C ++ (yerel): Metakit, C ++ ile yazılmıştır (yeni özelliklerini kullanmadan çok eski derleyiciler bile halledebilir).
  • Python : Mk4py olarak adlandırılır
  • Tcl : Mk4tcl olarak adlandırılır , üstte Oomk adı verilen isteğe bağlı bir OO bağlanması bulunur .
  • Diğer diller SWIG yardımı ile arayüzlenebilir .

Dış bağlantılar

  • Metakit sitesi
  • e4Graph : programların grafik benzeri verileri kalıcı olarak depolamasına ve değiştirmesine izin veren , Metakit üzerine inşa edilen kütüphane