What is 'document data store' and 'key

2019-08-01 04:05发布

What is document data store? What is key-value data store?

Please, describe in very simple and general words the mechanisms which stand behind each of them.

3条回答
▲ chillily
2楼-- · 2019-08-01 04:23

Here's a description of a few common data models:

  • Relational systems are the databases we've been using for a while now. RDBMSs and systems that support ACIDity and joins are considered relational.
  • Key-value systems basically support get, put, and delete operations based on a primary key.
  • Column-oriented systems still use tables but have no joins (joins must be handled within your application). Obviously, they store data by column as opposed to traditional row-oriented databases. This makes aggregations much easier.
  • Document-oriented systems store structured "documents" such as JSON or XML but have no joins (joins must be handled within your application). It's very easy to map data from object-oriented software to these systems.

From this blog post I wrote: Visual Guide to NoSQL Systems.

查看更多
该账号已被封号
3楼-- · 2019-08-01 04:26

In a document data store each record has multiple fields, similar to a relational database. It also has secondary indexes.

Example record:

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

Then you could query by id, name, age, or email.

A key/value store is more like a big hash table than a traditional database: each key corresponds with a value and looking things up by that one key is the only way to access a record. This means it's much simpler and often faster, but it's difficult to use for complex data.

Example record:

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

You can only use 12345 for your query criteria. You can't query for name, email, or age.

查看更多
Rolldiameter
4楼-- · 2019-08-01 04:28

From wikipedia:

  • Document data store: As opposed to relational databases, document-based databases do not store data in tables with uniform sized fields for each record. Instead, each record is stored as a document that has certain characteristics. Any number of fields of any length can be added to a document. Fields can also contain multiple pieces of data.
  • Key Value: An associative array (also associative container, map, mapping, dictionary, finite map, and in query-processing an index or index file) is an abstract data type composed of a collection of unique keys and a collection of values, where each key is associated with one value (or set of values). The operation of finding the value associated with a key is called a lookup or indexing, and this is the most important operation supported by an associative array. The relationship between a key and its value is sometimes called a mapping or binding. For example, if the value associated with the key "bob" is 7, we say that our array maps "bob" to 7.

More examples at NoSQL.

查看更多
登录 后发表回答