20 Important things about NoSQL databases for cloud applications
Data storage and performance
Written by: Jason Spight
You may have heard about NoSQL with respect to data storage for cloud applications. Over the last few years, the rise of these databases has tested the supremacy of relational databases. The following list will throw light on the subject of these databases.
20. NoSQL databases were originally referred to as “no Standard Query Language” or “non-relational models” since they do not have a pre-defined schema and thus their data schemes are open and flexible when compared to SQL databases. Sometimes, they are also referred to as “Unstructured Query Languages” as their syntax varies from database to database; they have a dynamic syntax.
19. In the recent past, they have been referred to as “not only SQL” implying that more than one mechanism can be used to store and retrieve data depending on the design needs of the software product.
18. NoSQL has four types of databases depending on their ways of data storage. They are Key-value store , document, columnar key-value stored and graph databases.
17. They store data in a simple combination of key to value
16. Supports client interfaces from an API perspective. Clients can get a value for the key, give a value for a key, or even delete a key from the data store. It just stores the data without knowing what is inside; it is the responsibility of the application to know what is stored.
15. Graph databases are used to store information about data networks, for instance, social connections. Their vendors include Amazon Dynamo DB, Cassandra, Redis, Azure Table Storage, Memcached and Riak. Graph stores also include Giraph and Neo4j.
14. These databases store information/data in entities, also known as nodes. These entities coordinate to synchronize replicas of data. This is known as peer-to-peer replication.
13. Applying big data to Master Data Management (MDM) systems have always been a challenge especially when it comes to distinguishing relevant unstructured data relating to Master Data, from which do not. These type of databases offer a solution for this by using persistent objects to return node to node relationships, rather using runtime queries.
12. Document Databases group every key with a complex data structure called a document. Documents can contain varying key-array pairs, or key-value pairs, or even nested documents. Document database vendors include the open-sourced Titan, Orient DB and Neo4j.
11. In these types of databases, data is stored in defined documents or patterns carrying various formats such as BSON, JSON and XML. These formats are basically, hierarchical data structures that comprise of collections, maps and scalar values.
10. The dynamic syntax, document formats and markup languages make it easier to integrate data from these databases to COTS and relational databases.
9. Columnar Databases, also known as wide column databases, are designed to optimize queries over large data sets and store columns of information together, instead of rows. Vendors in this case include the open-sourced Mongo DB, Elastic search, Hyper Table, Couch DB and Document DB.
8. They store data in groups of related rows and columns.
6. Key-value store databases are the simplest. In these types, each item is stored as an attribute identifier/name, also called key with its value. Such key value stores include Berkeley DB and Riak. To add on value functionality, some key value stores allow each value to have a type, for instance, an integer (for instance, Riak).
5. They are not ready to replace traditional relational databases. Relational database management systems are strongly in existence and both can be used to meet the varying needs of various design systems. These two types of databases complement each other and the main differences between them are schema flexibility and scalability.
4. They have storage concerns for large volumes of data; they can efficiently handle large data volumes as they run on clusters.
3. They are designed with web technologies in mind; for instance, they are designed to allow elastic scaling. Therefore, they cannot scale out in case availability requirements and transaction rates increase. They expand transparently.
2. They support fast data retrieval from Micro-services and Cloud Design Patterns. The ease and speed with which they capture, processes, analyses and releases data makes it possible for Big Data.
1. Implementing NoSQL technologies and systems, as well as successful migration from a relational database system, is not easy and requires careful planning and organizational buy-in.