A NoSQL database (or non-relational database) stores data in a non-tabular manner, using a storage model geared toward the type of being stored, such as key-value, document, time-series, graph, etc.
Structured Query Language (SQL), the standard language for relational database management systems, is known for its reliability. This stalwart has allowed computers that are processing large and complex data to do it faster and more effectively since it was developed by IBM in the 1970s. But a greater need for faster and more adaptive databases has arisen, which is why the NoSQL system was developed more than a decade ago. Forrester Research calls NoSQL databases “critical for all businesses to support modern business applications” and notes that half of global data and analytics technology decision-makers either have implemented or are implementing NoSQL platforms.
NoSQL databases, also known as non-relational databases, can store and manage data both quickly and flexibly. Google, Amazon, Yahoo, and Facebook have all had a hand in developing these databases as they sought to store their content or processive data for their websites. SQL databases cannot be scaled horizontally across thousands of servers – whereas NoSQL can.
Amazon says that NoSQL databases “are a great fit for many modern applications such as mobile, web and gaming that requires flexible, scalable, high-performance, and highly functional databases to provide great user experience.”
Still, NoSQL isn’t perfect for all situations. For one thing, SQL is seen as having greater data consistency than NoSQL (with only one or two NoSQL systems having strong consistency). For another, some applications, particularly financial, demand the kind of safeguards and consistency that are the hallmarks of SQL. However, other applications can benefit from strong consistency in NoSQL – it simplifies the programming as developers no longer have to account for inconsistent data scenarios. Given the minority of NoSQL systems have the best of both worlds, it’s often up to organizations to determine the right database for the right application.
“The availability of choice in NoSQL databases, is both good and bad at the same time,” says Pramod Sadalage, director of ThoughtWorks Inc. “Good because now we have choice to design the system according to the requirements. Bad because now you have a choice and we have to make a good choice based on requirements and there is a chance where the same database product may be used properly or not used properly.”
As more companies embrace data and all it has to offer, they may be faced with the dilemma of how to choose the right software solution that not only fits their needs, but also supports their business strategy. One of the first steps to making the right choice is understanding the options. Among them:
When organizations are considering NoSQL, it’s often because they fear failure without it. But organizations need to do their homework to ensure they make the right decision. Many organizations will use both SQL and NoSQL databases because there are instances where organizations need the fixed schema, vertical scalability, and predictability of SQL. Then, there are other situations that call for NoSQL with its flexibility and horizontal scalability. The key is defining the requirements needed for a database and then choosing the one that will provide the best support for the project. Here are some common questions about NoSQL: