There are five main types of NoSQL databases:
Document databases, also called document-oriented databases or a document store, are used to store and query semi-structured data. Data is stored in a JSON-like document similar to the data objects that developers use in application code, making it easier to create and update applications without referencing a primary schema. Document databases are most commonly used for blogging platforms, ecommerce, real-time analytics, and content management systems.
The three important representatives of document storage systems, Mon- goDB, SimpleDB, and CouchDB.
Key-value databases, also referred to as key-value stores, are the simplest type of NoSQL databases. Data is stored in a “key-value” structure, where a unique key is paired with a value such as a string, number, boolean, or complex objects. Key-value stores are most commonly used for user preferences, shopping carts, and user profiles in web applications. (e.g., Key: First name; value : Rama; Key: Last name; value: Mainu)
Over the past few years, many key-value databases have appeared as moti- vated by Amazon’s Dynamo system.
Several other representative key-value databases: Dynamo, Voldemort.
Dynamo is a highly available and expandable distributed key-value data storage system. It is used to manage the store status of some core services in the Amazon e-Commerce Platform. Amazon e-Commerce Platform provides multiple services and data storage that can be realized with key access.
Voldemort is also a key-value storage system, which was initially developed for and is still used by LinkedIn. Key words and values in Voldemort are composite objects constituted by tables and images.
The Voldemort interface includes three simple operations: reading, writing, and deletion, all of which are confirmed by key words.
Other key-value storage systems include Redis, Tokyo Cabinet and Tokyo Tyrant, Memcached and MemcacheDB, Riak and Scalaris.
Column-oriented databases, or wide-column stores, store and read data in rows and are organized as a set of columns. They are optimal for analytics use cases, where you may need to query across specific columns in a database and aggregate the value of a given column quickly. The column-oriented databases are mainly inspired by Google’s BigTable. Wide-column stores are most commonly used for catalogs, fraud detection, and recommendation engines.
BigTable
BigTable is a distributed, structured data storage system, which is de- signed to process the large-scale (PB class) data among thousands of commercial servers. The basic data structure of BigTable is a multi- dimension sequenced mapping with sparse, distributed, and persistent stor- age.
BigTable is based on many fundamental components of Google, including GFS, cluster management system, SSTable file format, and Chubby. GFS is used to store data and log files.
Cassandra
Cassandra is a distributed storage system to manage the huge amount of structured data distributed among multiple commercial servers. The system was developed by Facebook and became an open-source tool in 2008.
It adopts the ideas and concepts of both Amazon Dynamo and Google BigTable, especially integrating the distributed system technology of Dy- namo with the BigTable data model.
Tables in Cassandra are in the form of distributed four-dimensional struc- tured mapping, where the four dimensions include row, column family, col- umn, and super column.
Graph databases organize data as nodes in a graph, focusing on the relationships between data elements. The connections between nodes (edges) are stored as first-class elements, enabling richer representations of data relationships while offering more simplified storage and navigation. Graph databases are most commonly used in systems that map relationships, including social media platforms, reservation systems, fraud detection systems, and logistics applications.
In-memory databases store data in memory in order to provide ultra-low latency for real-time applications. Redis and Valkey are examples of in-memory NoSQL databases. In-memory databases are most commonly used for caching, messaging, streaming, and real-time analytics.
Statlearner
Statlearner