NoSQL describes a “category of databases built on non-relational technology.” Some believe it is more accurate to define NoSQL more about how the data is stored and less about how to query the database.
NoSQL Databases usually fall under four main categories:
- Document: Stores a business subject in one structure called a document instead of breaking it up into multiple relational structures (i.e. different tables). For example, a single document called “Registration” would contain “Student”, “Course”, and “Registration” information instead of putting each in three distinct relational structures.
- Key-Value: Stores data in only two columns (‘key’ and ‘value’). Simple (dates, numbers, codes) and complex information (unformatted text, video, music, documents, and photos) within the ‘key’ and ‘value’ column respectively.
- Column-oriented: Looks as data as rows and columns, like a RDBMS. However, column-oriented structures can handle more ambiguous and complex data types, including unformatted text and imagery. In addition, column-oriented databases store each column in its own structure.
- Graph: Represents data whose relations are well represented as a set of nodes with an undetermined number of connections between these nodes. Good candidates for a graph database include:
- Social relationships (nodes are people)
- Public transport links (node can be bus or train stations)
- Roadmaps (nodes street intersections or highway intersections).
- Anything requiring traversing a graph to find the shortest routes, nearest neighbors, etc.)
Other Definitions of NoSQL Include:
- “Broad class of database management technologies that provide a mechanism for storage and retrieval of data that doesn’t follow tradition relational database methodology.” ( Peter Aiken)
- “Non-relational databases that use horizontal scaling, spreading out storage and work and eliminated the need for Structured Query Language or SQL.” (Keith Foote, DATAVERSITY®)
- “A response to the dramatic growth of unstructured data within the enterprise.” (Matt Asay, TechRepublic)
- “Databases that essentially give up the ability to do joins to be able to avoid huge monolith tables and scale.” They usually have a more flexible scheme. (Gregory Kesden, University of California, San Diego)
- “A wide variety of different database technologies that were developed in response to the demands, with scale and agility challenges that face modern applications” (MongoDB)
Businesses Use NoSQL to:
- Deploy new, innovative applications, in addition to migrating infrastructure from on-premise to cloud.
- Create data models, evaluate alternatives, find problems early, and to think through data processes.
- Satisfy the need for a very agile delivery system that is easily able to process unstructured and dynamic data.
- To prepare unstructured or “messy” data for analysis.
- Implement a scale-out architecture for high performance Data Management needs.
Image used under license from Shutterstock.com