База данных «ключ-значение»
База данных «клю́ч-значе́ние» (англ. key-value database или англ. key–value store) — парадигма хранения данных, предназначенная для хранения, извлечения и управления ассоциативными массивами, структура данных, более известная сегодня как словарь или хеш-таблица. Словари содержат коллекцию объектов или записей, которые, в свою очередь, содержат множество различных полей, каждое из которых содержит данные. Эти записи хранятся и извлекаются с использованием ключа, который однозначно идентифицирует запись и используется для быстрого поиска данных в базе данных.
Базы данных «ключ-значение» работают совершенно иначе, чем более известные реляционные базы данных (РБД). В РБД предварительно определяют структуру данных в базе данных как последовательность таблиц, содержащих поля с четко определенными типами данных. Экспонирование типов данных в базе данных позволяет применить ряд оптимизаций. Напротив, системы «ключ-значение» обрабатывают данные как одну непрозрачную коллекцию, которая может иметь разные поля для каждой записи. Это обеспечивает значительную гибкость и более точно следует современным концепциям, таким как объектно-ориентированное программирование. Поскольку необязательные значения не представлены заполнителями или входными параметрами, как в большинстве РБД, базы данных «ключ-значение» часто используют гораздо меньше памяти для хранения одной и той же базы данных, что может привести к значительному увеличению производительности при определенных рабочих нагрузках.
Низкая производительность, отсутствие стандарта и другие недостатки ограничивали использование систем «ключ-значение» в течение многих лет, но быстрое развитие облачных вычислений после 2010 года привело к их возрождению в рамках более широкого движения NoSQL. Некоторые графовые базы данных также являются базами данных ключей, добавляя концепцию отношений (указателей) между записями как тип данных первого класса.
Базы данных «ключ-значение» могут использовать модель согласованности, начиная от возможной согласованности до сериализации. Некоторые поддерживают упорядочение ключей. Некоторые хранят данные в оперативной памяти (ОЗУ), в то время как другие используют твердотельные накопители или жёсткие диски.
Самой популярной реализацией базы данных «ключ-значение», согласно рейтингу DB-Engines, на данный момент (2019 год) является Redis[1].
См. также
Примечания
- DB-Engines Ranking of Key-value Stores (англ.). DB-Engines (15 августа 2019). Дата обращения: 15 августа 2019.