База даних «ключ—значення»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Унікальному ключу відповідають різні колекції.

Ба́за да́них «клю́ч—зна́чення» (англ. key-value database або англ. key–value store) — парадигма сховищ даних, створена для зберігання, виймання та керування асоціативними масивами — структурою даних, більш знаною як словник або геш. Словники містять колекції[en] об'єктів або записів, які можуть мати багато різних полів з даними. Ці записи зберігаються та виймаються за допомогою ключа, який однозначно позначає записи, також він використовується для швидкого пошуку базою даних.

База даних «ключ—значення» працює зовсім інакше ніж реляційні бази даних (РБД). РБД попередньо визначають структуру даних у базі даних як сукупність таблиць, які містять поля (колонки) з чітко визначеними типами даних. Попередній опис типу даних дозволяє застосовувати численні оптимізації при програмуванні бази даних. На відміну від цього, системи «ключ—значення» ставляться до даних як до єдиної непрозорої колекції, яка може мати різні поля для кожного запису. Це забезпечує значну гнучкість і точніше слідує сучасним концепціям, таким як об'єктно-орієнтоване програмування. Оскільки необов'язкові значення не представлено заповнювачами, як це зроблено в більшості РБД, бази даних «ключ—значення» зазвичай використовують набагато менше пам'яті для зберігання такої ж бази даних, що може призводити до значного збільшення продуктивності при певних робочих навантаженнях.

Продуктивність, відсутність стандартизації та інші недоліки зробили використання систем «ключ—значення» нішевим протягом багатьох років, проте стрімкий перехід до хмарних обчислень після 2010 року призвів до ренесансу як частини ширшого руху NoSQL. Деякі графові бази даних за внутрішньою побудовою також є базами даних «ключ—значення», з додатковою концепцією відношення (вказівників) між записами як тип даних першого класу.

Типи та визначні приклади[ред. | ред. код]

Бази даних «ключ—значення» можуть використовувати різні рівні узгодженості, починаючи від випадкової[en] і завершуючи серіалізованими[en] даними.

Деякі бази даних підтримують впорядковані ключі.

Існують різні реалізації апаратного забезпечення, і деякі користувачі підтримують дані в пам'яті (RAM), в той час як інші зберігають на файловій системі, використовуючи твердотільні (SSD) накопичувачі або класичні обертові (HDD) диски.

Для Unix в 1979 році Кен Томпсон написав менеджер баз даних dbm, а також бібліотеку яка була широко розповсюджена на інші операційні системи та мови програмування. DBM працює з асоціативними масивами довільних даних, до яких можна отримати доступ за допомогою ключа. Хоча dbm з'явився задового до поняття NoSQL, він заклав основу для розвитку баз Ключ-значення.

Приклади реалізації[ред. | ред. код]

Типи[ред. | ред. код]

  • Персистентність:
    • в оперативній пам'яті - зміни відбуваються в оперативній пам'яті, опціонально зберігаються на диску.
    • на дисковій системи - зміни вібдуваються на диску. сервер реалізує оптимізацію зберігання змін.
  • Горизонтальне масштабування, та модель узгодженості.
    • не дозволяє конкурентний доступ
    • дозволяє конкурентний доступ
    • масштабується горизонтально

Примітки[ред. | ред. код]

  1. Архівована копія. Архів оригіналу за 19 вересня 2018. Процитовано 23 травня 2018.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Джерела[ред. | ред. код]