База данных "ключ-значение" - 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 и редко упоминается в современном дискурсе, он используется во многих программах.

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

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

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