Baza danych klucz-wartość — Key–value database

Tabelaryczna karta danych zaproponowana dla Babbage's Analytical Engine przedstawiająca parę klucz-wartość, w tym przypadku liczbę i jej logarytm dziesiętny

Baza klucz-wartość , lub sklep klucz-wartość , jest paradygmatem przechowywania danych przeznaczone do przechowywania, pobierania i zarządzania tablic asocjacyjnych , a struktura danych bardziej znany dziś jako słowniku lub tablica mieszająca . Słowniki zawierają kolekcję z obiektów lub rekordów , które z kolei mają wiele różnych pól wewnątrz nich, każdy zawierający dane. Rekordy te są przechowywane i pobierane przy użyciu klucza, który jednoznacznie identyfikuje rekord i służy do wyszukiwania danych w bazie danych .

Tabela przedstawiająca różne sformatowane wartości danych powiązane z różnymi kluczami

Bazy danych klucz-wartość działają w zupełnie inny sposób niż lepiej znane relacyjne bazy danych (RDB). Bazy danych RDB wstępnie definiują strukturę danych w bazie danych jako serię tabel zawierających pola z dobrze zdefiniowanymi typami danych . Udostępnienie typów danych programowi bazy danych pozwala na zastosowanie szeregu optymalizacji. W przeciwieństwie do tego systemy klucz-wartość traktują dane jako pojedynczy nieprzejrzysty zbiór, który może mieć różne pola dla każdego rekordu. Zapewnia to znaczną elastyczność i ściślej podąża za nowoczesnymi koncepcjami, takimi jak programowanie obiektowe . Ponieważ wartości opcjonalne nie są reprezentowane przez symbole zastępcze ani parametry wejściowe, jak w większości baz danych RDB, bazy danych klucz-wartość często używają znacznie mniej pamięci do przechowywania tej samej bazy danych, co może prowadzić do znacznego wzrostu wydajności w przypadku niektórych obciążeń.

Wydajność, brak standaryzacji i inne problemy przez wiele lat ograniczały systemy typu klucz-wartość do zastosowań niszowych, ale szybkie przejście na przetwarzanie w chmurze po 2010 r. doprowadziło do renesansu w ramach szerszego ruchu NoSQL . Niektóre grafowe bazy danych , takie jak ArangoDB , są również wewnętrznie bazami danych klucz-wartość, dodając pojęcie relacji ( wskaźniki ) między rekordami jako typ danych pierwszej klasy.

Rodzaje i godne uwagi przykłady

Bazy danych klucz-wartość mogą używać modeli spójności , od spójności ostatecznej po możliwość serializacji . Niektóre wspierają zamawianie kluczy.

Niektóre przechowują dane w pamięci (RAM) , podczas gdy inne wykorzystują dyski półprzewodnikowe lub dyski obrotowe .

Każda jednostka (rekord) to zestaw par klucz-wartość. Klucz ma wiele składników określonych jako uporządkowana lista. Klucz durowy identyfikuje rekord i składa się z głównych elementów tonacji. Kolejne składniki nazywane są klawiszami molowymi. Ta organizacja jest podobna do specyfikacji ścieżki katalogu w systemie plików (np. /Major/minor1/minor2/). Część „wartość” pary klucz-wartość to po prostu niezinterpretowany ciąg bajtów o dowolnej długości.

System Unix udostępnia dbm (menedżer bazy danych), która jest biblioteką z 1979 roku, napisaną oryginalnie przez Kena Thompsona . Jest również przeniesiony do Microsoft Windows , dostarczany przez języki programowania, takie jak Perl dla Win32 . dbm zarządza tablicami asocjacyjnymi dowolnych danych za pomocą jednego klucza (klucza podstawowego). Nowoczesne implementacje obejmują Berkeley DB , sdbm i GNU dbm . Chociaż dbm poprzedza koncepcję NoSQL i jest rzadko wspominane we współczesnym dyskursie, jest używane przez wiele programów.

Dostawca Licencja W końcu spójny Zamówione Baran Dysk
Aerospike AGPL tak tak
Apache zapalają się AL2 tak tak
ArangoDB AL2 tak tak
Berkeley DB AGPL , zastrzeżony tak
CDB Domena publiczna
Serwer bazy danych Clusterpoint Prawnie zastrzeżony
Serwer Couchbase Prawnie zastrzeżony
Dynamo Prawnie zastrzeżony tak
etcd AL2 tak
FundacjaDB AL2 tak
GigaSpaces AL2 , zastrzeżony tak
Systemy wzmocnienia siatki Prawnie zastrzeżony tak
GT.M AGPL , zastrzeżony
Leszczyna AL2 , zastrzeżony tak
Hibari AL2
IBM Informix C-ISAM Prawnie zastrzeżony tak
immudb AL2 tak
Nieskończoność Prawnie zastrzeżony tak
Kvrocks BSD3 tak
KeyDB BSD3
Przestrzeń klawiszy Prawnie zastrzeżony
Poziom DB BSD3 tak
LMDB OpenLDAP (podobny do BSD) tak tak
memcached BSD3 tak
MemcacheDB BSD tak
Microsoft SQL Server Prawnie zastrzeżony tak tak
NoSQLz darmowy
Konsekwencja Prawnie zastrzeżony tak
Baza danych Oracle NoSQL AL2 , zastrzeżony tak
Projekt Voldemort AL2 tak
Redis BSD3 tak
Riak AL2 tak
RocksDB AL2 lub GPL 2 tak
Scylla AGPL , zastrzeżony
Tarantol BSD tak
Tkrzw AL2 tak
Venti GPLv2 , BSD tak
Wirtuoz OpenLink GPLv2 , zastrzeżona tak tak

Zobacz też

Bibliografia