Stop Thinking, Just Do!

Sungsoo Kim's Blog

What is NoSQL?

tagsTags

12 July 2013


One of the challenges with NoSQL is defining it. The term NoSQL is problematic since it doesn’t really describe the core themes in the NoSQL movement. The term origi- nated from a group in the Bay Area who met regularly to talk about common con- cerns and issues surrounding scalable open source databases, and it stuck. Descriptive or not, it seems to be everywhere: in trade press, product descriptions, and confer- ences. We’ll use the term NoSQL in this article as a way of differentiating a system from a traditional relational database management system (RDBMS).

For our purpose, we define NoSQL in the following way:

NoSQL is a set of concepts that allows the rapid and efficient processing of data sets with a focus on performance, reliability, and agility.

Seems like a broad definition, right? It doesn’t exclude SQL or RDBMS systems, right? That’s not a mistake. What’s important is that we identify the core themes behind NoSQL, what it is, and most importantly what it isn’t.

So what is NoSQL?

  • It’s more than rows in tables—NoSQL systems store and retrieve data from many formats: key-value stores, graph databases, column-family (Bigtable) stores, doc- ument stores, and even rows in tables.

  • It’s free of joins—NoSQL systems allow you to extract your data using simple interfaces without joins.

  • It’s schema-free—NoSQL systems allow you to drag-and-drop your data into a folder and then query it without creating an entity-relational model.

  • It works on many processors—NoSQL systems allow you to store your database on multiple processors and maintain high-speed performance.

  • It uses shared-nothing commodity computers—Most (but not all) NoSQL systems leverage low-cost commodity processors that have separate RAM and disk.

  • It supports linear scalability—When you add more processors, you get a consistent increase in performance.

  • It’s innovative—NoSQL offers options to a single way of storing, retrieving, and manipulating data. NoSQL supporters (also known as NoSQLers) have an inclu- sive attitude about NoSQL and recognize SQL solutions as viable options. To the NoSQL community, NoSQL means “Not only SQL.”

Equally important is what NoSQL is not:

  • It’s not about the SQL language—The definition of NoSQL isn’t an application that uses a language other than SQL. SQL as well as other query languages are used with NoSQL databases.

  • It’s not only open source—Although many NoSQL systems have an open source model, commercial products use NOSQL concepts as well as open source initia- tives. You can still have an innovative approach to problem solving with a com- mercial product.

  • It’s not only big data—Many, but not all, NoSQL applications are driven by the inability of a current application to efficiently scale when big data is an issue. Though volume and velocity are important, NoSQL also focuses on variability and agility.

  • It’s not about cloud computing—Many NoSQL systems reside in the cloud to take advantage of its ability to rapidly scale when the situation dictates. NoSQL sys- tems can run in the cloud as well as in your corporate data center.

  • It’s not about a clever use of RAM and SSD—Many NoSQL systems focus on the effi- cient use of RAM or solid state disks to increase performance. Though this is important, NoSQL systems can run on standard hardware.

  • It’s not an elite group of products—NoSQL isn’t an exclusive club with a few prod- ucts. There are no membership dues or tests required to join. To be considered a NoSQLer, you only need to convince others that you have innovative solutions to their business problems.

NoSQL applications use a variety of data store types (databases). From the simple key- value store that associates a unique key with a value, to graph stores used to associate relationships, to document stores used for variable data, each NoSQL type of data store has unique attributes and uses as identified in table 1.1.

http://sungsoo.github.com/images/nosql-datastores.png

NoSQL systems have unique characteristics and capabilities that can be used alone or in conjunction with your existing systems. Many organizations considering NoSQL sys- tems do so to overcome common issues such as volume, velocity, variability, and agility, the business drivers behind the NoSQL movement.

###NoSQL case studies Our economy is changing. Companies that want to remain competitive need to find new ways to attract and retain their customers. To do this, the technology and people who create it must support these efforts quickly and in a cost-effective way. New thoughts about how to implement solutions are moving away from traditional meth- ods toward processes, procedures, and technologies that at times seem bleeding-edge.

The following case studies demonstrate how business problems have successfully been solved faster, cheaper, and more effectively by thinking outside the box. Table 1.2 summarizes five case studies where NoSQL solutions were used to solve particular busi- ness problems. It presents the problems, the business drivers, and the ultimate findings. As you view subsequent sections, you’ll begin to see a common theme emerge: some business problems require new thinking and technology to provide the best solution.

http://sungsoo.github.com/images/nosql-casestudy01.png http://sungsoo.github.com/images/nosql-casestudy02.png

###References

[1] DAN MCCREARY ANN KELLY, Making Sense of NoSQL: A GUIDE FOR MANAGERS AND THE REST OF US, pp.4-9, MANNING Publications, 2014.


comments powered by Disqus