What Are Document Databases
A document database is a NoSQL data stores that is designed to store and query data as JSON-like documents. The data in document databases is stored as documents with their metadata. The document stored is in key/value pair where the key is the unique identifier of the document. Unlike relational databases, document databases are faster to load, access, and parse.
Document database are also referred as document database management systems, document-oriented databases, or document store database.
Here are the key characteristics of document databases:
- Document DBMSs are NoSQL databases.
- Document DBMSs use key/value to store and access documents data.
- Document DBMSs have a flexible schema that can be different for each document. For example, one document can be an Author profile, while other document can be a blog.
- Common examples of document DBMS include JSON, XML docs, Catalogs, serialized PDFs and Excel docs, Profile data, and serialized objects.
Document database example
Here is a document that stores a book data. As you can see from this document, it’s a JSON document that has tags and values that defines a book including year published, book title, author, release date, publisher, and price.
[{
"year":2001,
"title":"AProgrammer'sGuidetoADO.NET",
"info":{
"author":"MaheshChand",
"release_date":"2001-02-01",
"publisher":"APress",
"price":"44.95",
"image_url":"ADOBook.jpg"
}
},{
"year":2003,
"title":"GDI+Programming",
"info":{
"author":"MaheshChand",
"release_date":"2003-03-01",
"publisher":"AddisonWesley",
"price":"49.95",
"image_url":"GDIPlusBook.jpg"
}
}]
When to use document databases
Traditional relational DBMSs are not designed to provide efficient access to large documents or unstructured data. In case of catalogs, or profiles, or document storages, we don’t need structured design. For example, storing a document in a CMS does not require a structured format.
Document databases are designed to store large documents in a key/value store that are easy to search and access. The entire document is read into a memory object that is easy to read and present.
User profiles, content management systems, and catalogs are some common use case of document DBMS. One of the perfect example of use of a document database is storing C# Corner articles in a document DB, rather than a DRBMS.
Popular document databases
Here is a list of 7 popular document databases.
1 |
MongoDB |
MongoDB is one of the most popular document databases. MongoDB is a free, distributed database at its core, so high availability, horizontal scaling, and geographic distribution are built in and easy to use. MongoDB stores data in flexible, JSON-like documents, meaning fields can vary from document to document and data structure can be changed over time. The document model maps to the objects in your application code, making data easy to work with. |
2 |
Cosmos DB |
Azure Cosmos DB is Microsoft's globally distributed, multi-model database service. With a click of a button, Cosmos DB enables you to elastically and independently scale throughput and storage across any number of Azure regions worldwide. You can elastically scale throughput and storage, and take advantage of fast, single-digit-millisecond data access using your favorite API including SQL, MongoDB, Cassandra, Tables, or Gremlin. |
3 |
ArangoDB |
ArangoDB is a multi-model database and provides support of graph, document, key/value, columnar, and relational data models. |
4 |
Couchbase Server |
Built on the most powerful NoSQL technology, Couchbase Server delivers unparalleled performance at scale, in any cloud. With features like memory-first architecture, geo-distributed deployments, and workload isolation, Couchbase Server excels at supporting mission-critical applications at scale while maintaining submillisecond latencies and 99.999% availability. Plus, with the most comprehensive SQL-compatible query language (N1QL), migrating from RDBMS to Couchbase Server is easy with ANSI joins. |
5 |
CouchDB |
Apache CouchDB is an open-source document-oriented NoSQL database, implemented in the concurrency-oriented language Erlang; it uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API. |
6 |
Amazon DocumentDB |
Amazon DocumentDB is a fast, scalable, highly available, and fully managed document database service that supports MongoDB workloads. Amazon DocumentDB is designed from the ground-up to give you the performance, scalability, and availability you need when operating mission-critical MongoDB workloads at scale. |
7 |
Elasticsearch |
Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. As the heart of the Elastic Stack, it centrally stores your data so you can discover the expected and uncover the unexpected. |
Here are some more articles that you may be interested in:
- What Are Different Types of Database Management Systems
- What are Hierarchical Databases
- What are Relational Databases
- What are Graph Databases
- What are Network Databases
- What are Document Databases
- What are NoSQL Databases
- What are Column Store Databases
- What is SQL
- What are the Most Popular Databases in the World
References