Что такое «хранилище данных документа» и «хранилище данных ключ-значение»? - PullRequest
1 голос
/ 02 апреля 2010

Что такое хранилище данных документа ? Что такое хранилище данных значения ключа ?

Пожалуйста, опишите очень простыми и общими словами механизмы, стоящие за каждым из них.

Ответы [ 3 ]

9 голосов
/ 04 апреля 2010

В хранилище данных документа каждая запись имеет несколько полей, аналогично реляционной базе данных. У него также есть вторичные индексы.

Пример записи:

"id" => 12345,
"name" => "Fred",
"age" => 20,
"email" => "fred@example.com"

Затем вы можете запросить по идентификатору, имени, возрасту или электронной почте.

Хранилище ключей / значений больше похоже на большую хеш-таблицу, чем на традиционную базу данных: каждый ключ соответствует значению, и поиск по этому ключу - единственный способ получить доступ к записи. Это означает, что это намного проще и часто быстрее, но его трудно использовать для сложных данных.

Пример записи:

12345 => "Fred,fred@example.com,20"

Вы можете использовать только 12345 для ваших критериев запроса. Вы не можете запросить имя, адрес электронной почты или возраст.

5 голосов
/ 07 апреля 2010

Вот описание нескольких распространенных моделей данных:

  • Реляционные системы - это базы данных, которые мы используем уже некоторое время. СУБД и системы, поддерживающие ACIDity и объединения, считаются реляционными.
  • Системы ключ-значение в основном поддерживают операции get, put и delete на основе первичного ключа.
  • Системы, ориентированные на столбцы, по-прежнему используют таблицы, но не имеют объединений (объединения должны обрабатываться в вашем приложении). Очевидно, они хранят данные по столбцам, в отличие от традиционных баз данных, ориентированных на строки. Это значительно упрощает агрегацию.
  • Документно-ориентированные системы хранят структурированные «документы», такие как JSON или XML, но не имеют объединений (объединения должны обрабатываться в вашем приложении). Очень легко отобразить данные из объектно-ориентированного программного обеспечения в эти системы.

Из этого поста в блоге я написал: Визуальное руководство по системам NoSQL .

2 голосов
/ 03 апреля 2010

Из википедии:

  • Хранилище данных документа : В отличие от реляционных баз данных, базы данных на основе документов не хранят данные в таблицах с полями одинакового размера для каждой записи. Вместо этого каждая запись сохраняется как документ, который имеет определенные характеристики. Любое количество полей любой длины может быть добавлено в документ. Поля также могут содержать несколько частей данных.
  • Значение ключа : Ассоциативный массив (также ассоциативный контейнер, карта, отображение, словарь, конечная карта и при обработке запроса индекс или файл индекса) - это абстрактный тип данных, состоящий из набора уникальные ключи и набор значений, где каждый ключ связан с одним значением (или набором значений). Операция поиска значения, связанного с ключом, называется поиском или индексированием, и это наиболее важная операция, поддерживаемая ассоциативным массивом. Связь между ключом и его значением иногда называется отображением или связыванием. Например, если значение, связанное с ключом «bob», равно 7, мы говорим, что наш массив отображает «bob» в 7.

Больше примеров на NoSQL .

...