As a group, the new database structures are known as "NoSQL" (or "Not only SQL"). They donít follow the conventional, relational database model. Data is organized using structures other than the familiar tables, and accessed with methods other than SQL. Why? Purposes vary, but most center on managing very large data stores for real-time applications.
Structures ideal for everyday operations are often slow and impractical for supporting conventional statistical analysis or data mining. So, when NoSQL comes into the picture, data analysts need to be actively involved to ensure that the data management plan provides adequate consideration to supporting analytics.
Major types of NoSQL databases include:
Column Families (Wide Column Store)
- What is it? A database consisting of columns of related data. A group of columns (column family) serves a function similar to a table in a relational database.
- Why use? Column families work well when distributing data across multiple computers is necessary. So, think of them when you have lots and lots and lots of data. They can also shrink query times by reducing the amount of data that must be traversed to reach the data of interest.
- Names to know? Cassandra, HBase (the Hadoop database)
- What is it? A database built around storing documents rather than structured data.
- Why use? Document databases are appropriate for storing semi-structured or complex data that relational databases are not designed to store. Think of document databases when your data isnít fully structured.
- Names to know? MongoDB, Couch DB
- What is it? A database that uses a graph structure to store data. Instead of tables, columns, and cells, it has nodes, edges, and properties. Think of graph databases when you need to power low-latency (in other words, speedy), real-time business operations.
- Why use? Graph databases donít depend on schemas, as relational databases do. They work well in applications where finding associations quickly is a key consideration. They scale to large datasets because graph databases do not depend heavily on computationally costly join operations.
Names to know? Neo4J, Horton
- What is it? Key-value stores are developed for extreme simplicity of their application programming interfaces (API). Think of them when you need to develop an application very quickly.
- Why use? The simple APIs of key-value stores make them a good choice for rapid prototyping of applications. Some were developed specifically for supporting high-speed, high-availability applications.
- Names to know? Riak, Redis
- What is it? A native XML database uses XML as its fundamental unit of storage.
- Why use? If you can put it into a computer, you can put it in an XML database.
- Names to know? MarkLogic, Sedna
If you think "database equals relational database," youíre way behind the times. Much of the hottest action in tech today is in databases. Your organization may just have a business problem that could be solved with the right database technology.
Note: I found the joke that began this article at No-SQL, Your Ultimate Guide to the Non - Relational Universe! You can find information on dozens of NoSQL databases there.
Have you had experience with NoSQL databases? Tell us below.