База данных "ключ-значение" - Key–value database

Табличная карта данных, предложенная Бэббиджу Аналитическая машина показывает пару "ключ-значение", в данном случае число и его десятичный логарифм

А база данных "ключ-значение", или же хранилище ключей и значений, представляет собой парадигму хранения данных, предназначенную для хранения, извлечения и управления ассоциативные массивы, а структура данных более известный сегодня как толковый словарь или же хеш-таблица. Словари содержат коллекция из объекты, или же записи, которые, в свою очередь, имеют много разных поля внутри них каждый содержит данные. Эти записи хранятся и извлекаются с помощью ключ однозначно идентифицирует запись и используется для поиска данных в база данных.

Таблица, показывающая разные форматированные значения данных, связанные с разными ключами

Базы данных типа "ключ-значение" работают совсем иначе, чем более известные реляционные базы данных (РБД). РБД предопределяют структуру данных в базе данных в виде серии таблиц, содержащих поля с четко определенными типы данных. Предоставление типов данных программе базы данных позволяет ей применить ряд оптимизаций. Напротив, системы "ключ-значение" обрабатывают данные как одну непрозрачную коллекцию, которая может иметь разные поля для каждой записи. Это обеспечивает значительную гибкость и более точно соответствует современным концепциям, таким как объектно-ориентированного программирования. Поскольку необязательные значения не представлены заполнителями или входными параметрами, как в большинстве RDB, базы данных ключ-значение часто используют гораздо меньше объем памяти хранить одну и ту же базу данных, что может привести к значительному увеличению производительности при определенных рабочих нагрузках.[нужна цитата ]

Производительность, отсутствие стандартизации и другие проблемы на долгие годы ограничили использование систем "ключ-значение" нишевым использованием, но быстрый переход к облачные вычисления после 2010 г. привел к возрождению как части более широкого NoSQL движение. Немного графовые базы данных, Такие как ArangoDB,[1] также являются внутренними базами данных «ключ-значение», добавляя концепцию отношений (указатели ) между записями как тип данных первого класса.

Типы и примечательные примеры

Базы данных "ключ-значение" могут использовать модели согласованности начиная с возможная последовательность к сериализуемость. Некоторые поддерживают заказ ключей.

Некоторые поддерживают данные в памяти (RAM), в то время как другие используют твердотельные накопители или же вращающиеся диски.

Каждая сущность (запись) представляет собой набор пар ключ-значение. Ключ состоит из нескольких компонентов, указанных в виде упорядоченного списка. Главный ключ определяет запись и состоит из ведущих компонентов ключа. Последующие компоненты называются второстепенными ключами. Эта организация аналогична спецификации пути к каталогу в файловой системе (например, / Major / minor1 / minor2 /). «Значение» пары «ключ-значение» - это просто неинтерпретируемая строка байтов произвольной длины.[2]

Система Unix предоставляет dbm (менеджер баз данных), библиотека 1979 года, изначально написанная Кен Томпсон. Он также портирован на Майкрософт Виндоус, предоставляемый с помощью языков программирования, таких как Perl для Win32. Dbm управляет ассоциативными массивами произвольных данных с помощью одного ключа (первичного ключа). Современные реализации включают Berkeley DB, SDBM, и GNU dbm. Несмотря на то что dbm предшествует концепции NoSQL и редко упоминается в современном дискурсе, он используется во многих программах.

ПровайдерЛицензияВ конечном итоге последовательныйУпорядоченныйбаранДиск
AerospikeAGPLдада
Apache IgniteAL2дада
ArangoDBAL2дада
Berkeley DBAGPL, Проприетарныйда
CDBВсеобщее достояние
Сервер базы данных ClusterpointПроприетарный
Сервер CouchbaseПроприетарный
ДинамоПроприетарныйда
etcdAL2да
FoundationDBAL2да
GigaSpacesAL2, Проприетарныйда
Системы GridGainПроприетарныйда
GT.M[3]AGPL, Проприетарный
HazelcastAL2, Проприетарныйда
ХибариAL2
IBM Informix C-ISAMПроприетарныйда
InfinityDBПроприетарныйда
KeyspaceПроприетарный
LevelDBBSD3да
LMDBOpenLDAP (В стиле BSD)да
memcachedBSD3да
MemcacheDBBSDда
NoSQLzбесплатное ПО
СогласованностьПроприетарныйда
База данных Oracle NoSQLAL2, Проприетарныйда
Проект Волан-де-МортAL2да
RedisBSD3да
Риак[4]AL2да
RocksDBAL2 или же GPL 2да
ТарантоолBSDда
TkrzwAL2да
VentiGPLv2, BSDда
OpenLink VirtuosoGPLv2, проприетарныйдада

Смотрите также

Рекомендации

  1. ^ «Двигатели хранения». ArangoDB. Получено 16 ноября 2020.
  2. ^ База данных Oracle NoSQL.
  3. ^ Твид, Роб; Джеймс, Джордж (2010). «Универсальный движок NoSQL, использующий испытанную технологию» (PDF). п. 25. Все без исключения самые успешные и известные базы данных NoSQL были разработаны с нуля всего за последние несколько лет. Как ни странно, кажется, что никто не оглядывался вокруг, чтобы увидеть, существуют ли какие-либо существующие, успешно реализованные технологии баз данных, которые могли бы обеспечить прочную основу для удовлетворения требований веб-масштаба. Если бы они сделали это, они могли бы открыть для себя два продукта, GT.M и Caché ..... *
  4. ^ «Riak: масштабируемое хранилище данных с открытым исходным кодом». 28 ноября 2010. Архивировано с оригинал 31 декабря 2010 г.. Получено 28 ноября 2010.