Anahtar/değer veritabanı - Key–value database

Babbage'ın Analitik Motoru için bir anahtar-değer çiftini, bu örnekte bir sayıyı ve onun on tabanlı logaritmasını gösteren tablo şeklinde bir veri kartı

Bir anahtar değeri veritabanı veya anahtar değer kayıtlı , depolanması almak ve yönetmek için tasarlanmış bir veri depolama paradigmasıdır ilişkili dizileri ve bir veri yapısı , daha yaygın bir şekilde, bugün bilinen sözlük ya da karma tablo . Sözlükler , her biri veri içeren birçok farklı alana sahip olan bir nesneler veya kayıtlar koleksiyonu içerir . Bu kayıtlar , kaydı benzersiz bir şekilde tanımlayan ve veritabanındaki verileri bulmak için kullanılan bir anahtar kullanılarak saklanır ve alınır .

Farklı anahtarlarla ilişkili farklı biçimlendirilmiş veri değerlerini gösteren bir tablo

Anahtar-değer veritabanları, daha iyi bilinen ilişkisel veritabanlarından (RDB) çok farklı bir şekilde çalışır . RDB'ler, veritabanındaki veri yapısını, iyi tanımlanmış veri türlerine sahip alanları içeren bir dizi tablo olarak önceden tanımlar . Veri türlerini veritabanı programına göstermek, bir dizi optimizasyon uygulamasına izin verir. Buna karşılık, anahtar-değer sistemleri, verileri her kayıt için farklı alanlara sahip olabilen tek bir opak koleksiyon olarak ele alır. Bu, önemli ölçüde esneklik sağlar ve nesne yönelimli programlama gibi modern kavramları daha yakından takip eder . Çoğu RDB'de olduğu gibi, isteğe bağlı değerler yer tutucular veya giriş parametreleri tarafından temsil edilmediğinden, anahtar-değer veritabanları genellikle aynı veritabanını depolamak için çok daha az bellek kullanır ve bu da belirli iş yüklerinde büyük performans kazanımlarına yol açabilir.

Performans, standardizasyon eksikliği ve diğer sorunlar, anahtar-değer sistemlerini uzun yıllar niş kullanımlarla sınırladı, ancak 2010'dan sonra bulut bilişime hızlı geçiş , daha geniş NoSQL hareketinin bir parçası olarak bir rönesansa yol açtı . ArangoDB gibi bazı grafik veritabanları da dahili olarak anahtar-değer veritabanlarıdır ve birinci sınıf bir veri türü olarak kayıtlar arasındaki ilişkiler ( işaretçiler ) kavramını ekler .

Türler ve önemli örnekler

Anahtar değer veritabanları kullanabilirsiniz tutarlılık modelleri arasında değişen nihai tutarlılık için serializability . Bazıları anahtar sıralamasını destekler.

Bazıları verileri bellekte (RAM) tutarken, diğerleri katı hal sürücüleri veya dönen diskler kullanır .

Her varlık (kayıt), bir dizi anahtar-değer çiftidir. Bir anahtarın, sıralı bir liste olarak belirtilen birden çok bileşeni vardır. Ana anahtar, kaydı tanımlar ve anahtarın önde gelen bileşenlerinden oluşur. Sonraki bileşenlere küçük anahtarlar denir. Bu organizasyon, bir dosya sistemindeki bir dizin yolu belirtimine benzer (örneğin, /Major/minor1/minor2/). Anahtar-değer çiftinin "değer" kısmı, basitçe, keyfi uzunluktaki yorumlanmamış bir bayt dizisidir.

Unix sistemi, orijinal olarak Ken Thompson tarafından yazılan 1979 kitaplığı olan dbm'yi (veritabanı yöneticisi) sağlar . Ayrıca, Win32 için Perl gibi programlama dilleri aracılığıyla sağlanan Microsoft Windows'a taşınır . dbm, tek bir anahtar (birincil anahtar) kullanarak ilişkisel rastgele veri dizilerini yönetir. Modern uygulamalar arasında Berkeley DB , sdbm ve GNU dbm bulunur . dbm , NoSQL kavramından önce gelse ve modern söylemde nadiren bahsedilse de, birçok yazılım tarafından kullanılır.

Sağlayıcı Lisans Sonunda tutarlı sipariş edildi Veri deposu Disk
aerospike AGPL Evet Evet
Apache tutuşturmak AL2 Evet Evet
ArangoDB AL2 Evet Evet
Berkeley DB AGPL , Tescilli Evet
CDB Kamu malı
Clusterpoint Veritabanı Sunucusu tescilli
Kanepe Sunucusu tescilli
dinamo tescilli Evet
vb. AL2 Evet
FoundationDB AL2 Evet
GigaSpaces AL2 , Tescilli Evet
Grid Kazanç Sistemleri tescilli Evet
GT.M AGPL , Tescilli
fındık AL2 , Tescilli Evet
Hibari AL2
IBM Informix C-ISAM tescilli Evet
immudb AL2 Evet
InfinityDB tescilli Evet
Kvrock'lar BSD3 Evet
KeyDB BSD3
tuş alanı tescilli
LevelDB BSD3 Evet
LMDB OpenLDAP (BSD benzeri) Evet Evet
memcached BSD3 Evet
MemcacheDB BSD Evet
Microsoft SQL Sunucusu tescilli Evet Evet
NoSQLz ücretsiz yazılım
tutarlılık tescilli Evet
Oracle NoSQL Veritabanı AL2 , Tescilli Evet
Voldemort Projesi AL2 Evet
redis BSD3 Evet
Riak AL2 Evet
RocksDB AL2 veya GPL 2 Evet
Scylla AGPL , Tescilli
Tarantool BSD Evet
trzw AL2 Evet
havalandırma GPLv2 , BSD Evet
OpenLink Virtüözü GPLv2 , tescilli Evet Evet

Ayrıca bakınız

Referanslar