What is NoSQL?

NoSQL databases and data storagesOne 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 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 inclusive attitude about NoSQL and recognize SQL solutions as viable options. To the NoSQL community, NoSQL means “Not only SQL.”

What is NoSQL databases?

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 initiatives. 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 systems 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.

 

Table 1. Types of NoSQL data stores - the four main categories of NoSQL systems, and sample products for each data store type

Type

Typical usage

Examples

Key-value store - A simple data stor-age system that uses a key to access a value

  • Image stores
  • Key-based filesystems
  • Object cache
  • Systems designed to scale
  •  Berkeley DB
  • Memcache
  • Redis
  • Riak
  • DynamoDB

Column family store - A sparse matrix system that uses a row and a column as keys

  •  Web crawler results
  • Big data problems that can relax consistency rules
 
  • Apache HBase
  • Apache Cassandra
  • Hypertable
  • Apache Accumulo

Graph store - For relationshipintensive
problems

  • Social networks
  • Fraud detection
  • Relationship-heavy data
  • Neo4j
  • AllegroGraph
  • Bigdata (RDF data store)
  • InfiniteGraph (Objectivity)

Document store - Storing hierarchical
data structures directly in the database

  • High-variability data
  • Document search
  • Integration hubs
  • Web content management
  • Publishing
  • MongoDB (10Gen)
  • CouchDB
  • Couchbase
  • MarkLogic
  • eXist-db
  • Berkeley DB XML

 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.

 

 

Вас заинтересует / Intresting for you:

NoSQL case studies
NoSQL case studies 1130 views Aida Mon, 18 Jun 2018, 10:58:54
Types of NoSQL Databases
Types of NoSQL Databases 596 views Валерий Павлюков Wed, 13 Jun 2018, 19:12:01
Big Data and NoSQL: Characteri...
Big Data and NoSQL: Characteri... 602 views sepia Wed, 13 Jun 2018, 04:26:10
Choosing a database for your a...
Choosing a database for your a... 724 views Валерий Павлюков Mon, 27 Aug 2018, 14:12:09