stringtranslate.com

База данных «ключ-значение»

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

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

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

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

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

Типы и примеры

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

Некоторые хранят данные в оперативной памяти (ОЗУ) , в то время как другие используют твердотельные накопители или вращающиеся диски .

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

Система Unix предоставляет dbm (database manager), которая является библиотекой 1979 года, изначально написанной Кеном Томпсоном . Она также перенесена в Microsoft Windows , предоставляется через языки программирования, такие как Perl для Win32 . dbm управляет ассоциативными массивами произвольных данных с помощью одного ключа (первичного ключа). Современные реализации включают sdbm, GNU dbm и Berkeley DB . Хотя dbm предшествует концепции NoSQL и редко упоминается в современном дискурсе, она используется многими частями программного обеспечения.

Более поздним примером базы данных ключ-значение является RocksDB , которая используется как механизм хранения для других систем управления базами данных, таких как ArangoDB . Другие примеры включают Aerospike (база данных) , Amazon DynamoDB , Memcached , Redis и ScyllaDB .

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

Ссылки

  1. ^ "Storage Engines". ArangoDB . Получено 16 ноября 2020 г. .
  2. ^ База данных Oracle NoSQL.